Python数据挖掘入门与实践.pdf
Python数据挖掘入门与实践.pdf
PDF: https://github.com/jash-git/Jash-good-idea-20200304-001
第1 章 开始数据挖掘之旅 ………………………. 1
1.1 数据挖掘简介 ……………………………………. 1
1.2 使用Python 和IPython Notebook ………… 2
1.2.1 安装Python …………………………….. 2
1.2.2 安装IPython …………………………… 4
1.2.3 安装scikit-learn 库 ……………. 5
1.3 亲和性分析示例 ………………………………… 5
1.3.1 什么是亲和性分析 …………………… 5
1.3.2 商品推荐 ………………………………… 6
1.3.3 在NumPy 中加载数据集 ………….. 6
1.3.4 实现简单的排序规则 ……………….. 8
1.3.5 排序找出最佳规则 ………………….. 10
1.4 分类问题的简单示例 …………………………. 12
1.5 什么是分类 ………………………………………. 12
1.5.1 准备数据集 ……………………………. 13
1.5.2 实现OneR 算法 ……………………… 14
1.5.3 测试算法 ……………………………….. 16
1.6 小结 ………………………………………………… 18
第2 章 用scikit-learn 估计器分类 ….. 19
2.1 scikit-learn 估计器 ……………………… 19
2.1.1 近邻算法 ……………………………….. 20
2.1.2 距离度量 ……………………………….. 20
2.1.3 加载数据集 ……………………………. 22
2.1.4 努力实现流程标准化 ………………. 24
2.1.5 运行算法 ……………………………….. 24
2.1.6 设置参数 ……………………………….. 25
2.2 流水线在预处理中的应用 ………………….. 27
2.2.1 预处理示例 ……………………………. 28
2.2.2 标准预处理 ……………………………. 28
2.2.3 组装起来 ……………………………….. 29
2.3 流水线 …………………………………………….. 29
2.4 小结 ………………………………………………… 30
第3 章 用决策树预测获胜球队 ……………… 31
3.1 加载数据集 ………………………………………. 31
3.1.1 采集数据 ……………………………….. 31
3.1.2 用pandas 加载数据集 ……………… 32
3.1.3 数据集清洗 ……………………………. 33
3.1.4 提取新特征 ……………………………. 34
3.2 决策树 …………………………………………….. 35
3.2.1 决策树中的参数 …………………….. 36
3.2.2 使用决策树 ……………………………. 37
3.3 NBA 比赛结果预测 …………………………… 37
3.4 随机森林 ………………………………………….. 41
3.4.1 决策树的集成效果如何 …………… 42
3.4.2 随机森林算法的参数 ………………. 42
3.4.3 使用随机森林算法 ………………….. 43
3.4.4 创建新特征 ……………………………. 44
3.5 小结 ………………………………………………… 45
第4 章 用亲和性分析方法推荐电影 ………. 46
4.1 亲和性分析 ………………………………………. 46
4.1.1 亲和性分析算法 …………………….. 47
4.1.2 选择参数 ……………………………….. 47
4.2 电影推荐问题 …………………………………… 48
4.2.1 获取数据集 ……………………………. 48
4.2.2 用pandas 加载数据…………………. 49
4.2.3 稀疏数据格式 ………………………… 49
4.3 Apriori 算法的实现 …………………………… 50
4.3.1 Apriori 算法 …………………………… 51
4.3.2 实现………………………………………. 52
2 目 录
4.4 抽取关联规则 …………………………………… 54
4.5 小结 ………………………………………………… 60
第5 章 用转换器抽取特征 ……………………… 62
5.1 特征抽取 …………………………………………. 62
5.1.1 在模型中表示事实 ………………….. 62
5.1.2 通用的特征创建模式 ………………. 64
5.1.3 创建好的特征 ………………………… 66
5.2 特征选择 …………………………………………. 67
5.3 创建特征 …………………………………………. 71
5.4 创建自己的转换器 ……………………………. 75
5.4.1 转换器API ……………………………. 76
5.4.2 实现细节 ……………………………….. 76
5.4.3 单元测试 ……………………………….. 77
5.4.4 组装起来 ……………………………….. 79
5.5 小结 ………………………………………………… 79
第6 章 使用朴素贝叶斯进行社会
媒体挖掘 …………………………………….. 80
6.1 消歧 ………………………………………………… 80
6.1.1 从社交网站下载数据 ………………. 81
6.1.2 加载数据集并对其分类 …………… 83
6.1.3 Twitter 数据集重建 …………………. 87
6.2 文本转换器 ………………………………………. 90
6.2.1 词袋 ……………………………………… 91
6.2.2 N 元语法 ……………………………….. 92
6.2.3 其他特征 ……………………………….. 93
6.3 朴素贝叶斯 ………………………………………. 93
6.3.1 贝叶斯定理 ……………………………. 93
6.3.2 朴素贝叶斯算法 …………………….. 94
6.3.3 算法应用示例 ………………………… 95
6.4 应用 ………………………………………………… 96
6.4.1 抽取特征 ……………………………….. 97
6.4.2 将字典转换为矩阵 ………………….. 98
6.4.3 训练朴素贝叶斯分类器 …………… 98
6.4.4 组装起来 ……………………………….. 98
6.4.5 用F1 值评估 ………………………….. 99
6.4.6 从模型中获取更多有用的
特征 ……………………………………. 100
6.5 小结 ………………………………………………. 102
第7 章 用图挖掘找到感兴趣的人 ………… 104
7.1 加载数据集 ……………………………………. 104
7.1.1 用现有模型进行分类 …………….. 106
7.1.2 获取Twitter 好友信息 …………… 107
7.1.3 构建网络 ……………………………… 110
7.1.4 创建图 ………………………………… 112
7.1.5 创建用户相似度图 ……………….. 114
7.2 寻找子图 ……………………………………….. 117
7.2.1 连通分支 ……………………………… 117
7.2.2 优化参数选取准则 ……………….. 119
7.3 小结 ………………………………………………. 123
第8 章 用神经网络破解验证码 ……………. 124
8.1 人工神经网络 …………………………………. 124
8.2 创建数据集 ……………………………………. 127
8.2.1 绘制验证码 ………………………….. 127
8.2.2 将图像切分为单个的字母 ……… 129
8.2.3 创建训练集 ………………………….. 130
8.2.4 根据抽取方法调整训练数据集 .. 131
8.3 训练和分类 ……………………………………. 132
8.3.1 反向传播算法 ………………………. 134
8.3.2 预测单词 ……………………………… 135
8.4 用词典提升正确率 ………………………….. 138
8.4.1 寻找最相似的单词 ……………….. 138
8.4.2 组装起来 ……………………………… 139
8.5 小结 ………………………………………………. 140
第9 章 作者归属问题 …………………………… 142
9.1 为作品找作者 …………………………………. 142
9.1.1 相关应用和使用场景 …………….. 143
9.1.2 作者归属 ……………………………… 143
9.1.3 获取数据 ……………………………… 144
9.2 功能词 …………………………………………… 147
9.2.1 统计功能词 ………………………….. 148
9.2.2 用功能词进行分类 ……………….. 149
9.3 支持向量机 ……………………………………. 150
9.3.1 用SVM 分类 ……………………….. 151
9.3.2 内核 ……………………………………. 151
9.4 字符N 元语法 ………………………………… 152
9.5 使用安然公司数据集 ………………………. 153
—
第1 章 開始資料採擷之旅 ………………………. 1
1.1 資料採擷簡介 ……………………………………. 1
1.2 使用Python 和IPython Notebook ………… 2
1.2.1 安裝Python …………………………….. 2
1.2.2 安裝IPython …………………………… 4
1.2.3 安裝scikit-learn 庫 ……………. 5
1.3 親和性分析示例 ………………………………… 5
1.3.1 什麼是親和性分析 …………………… 5
1.3.2 商品推薦 ………………………………… 6
1.3.3 在NumPy 中載入資料集 ………….. 6
1.3.4 實現簡單的排序規則 ……………….. 8
1.3.5 排序找出最佳規則 ………………….. 10
1.4 分類問題的簡單示例 …………………………. 12
1.5 什麼是分類 ………………………………………. 12
1.5.1 準備資料集 ……………………………. 13
1.5.2 實現OneR 演算法 ……………………… 14
1.5.3 測試演算法 ……………………………….. 16
1.6 小結 ………………………………………………… 18
第2 章 用scikit-learn 估計器分類 ….. 19
2.1 scikit-learn 估計器 ……………………… 19
2.1.1 近鄰演算法 ……………………………….. 20
2.1.2 距離度量 ……………………………….. 20
2.1.3 載入資料集 ……………………………. 22
2.1.4 努力實現流程標準化 ………………. 24
2.1.5 運行演算法 ……………………………….. 24
2.1.6 設置參數 ……………………………….. 25
2.2 流水線在預處理中的應用 ………………….. 27
2.2.1 預處理示例 ……………………………. 28
2.2.2 標準預處理 ……………………………. 28
2.2.3 組裝起來 ……………………………….. 29
2.3 流水線 …………………………………………….. 29
2.4 小結 ………………………………………………… 30
第3 章 用決策樹預測獲勝球隊 ……………… 31
3.1 載入資料集 ………………………………………. 31
3.1.1 採集資料 ……………………………….. 31
3.1.2 用pandas 載入資料集 ……………… 32
3.1.3 資料集清洗 ……………………………. 33
3.1.4 提取新特徵 ……………………………. 34
3.2 決策樹 …………………………………………….. 35
3.2.1 決策樹中的參數 …………………….. 36
3.2.2 使用決策樹 ……………………………. 37
3.3 NBA 比賽結果預測 …………………………… 37
3.4 隨機森林 ………………………………………….. 41
3.4.1 決策樹的集成效果如何 …………… 42
3.4.2 隨機森林演算法的參數 ………………. 42
3.4.3 使用隨機森林演算法 ………………….. 43
3.4.4 創建新特徵 ……………………………. 44
3.5 小結 ………………………………………………… 45
第4 章 用親和性分析方法推薦電影 ………. 46
4.1 親和性分析 ………………………………………. 46
4.1.1 親和性分析演算法 …………………….. 47
4.1.2 選擇參數 ……………………………….. 47
4.2 電影推薦問題 …………………………………… 48
4.2.1 獲取資料集 ……………………………. 48
4.2.2 用pandas 載入數據…………………. 49
4.2.3 稀疏資料格式 ………………………… 49
4.3 Apriori 演算法的實現 …………………………… 50
4.3.1 Apriori 演算法 …………………………… 51
4.3.2 實現………………………………………. 52
2 目 錄
4.4 抽取關聯規則 …………………………………… 54
4.5 小結 ………………………………………………… 60
第5 章 用轉換器抽取特徵 ……………………… 62
5.1 特徵抽取 …………………………………………. 62
5.1.1 在模型中表示事實 ………………….. 62
5.1.2 通用的特徵創建模式 ………………. 64
5.1.3 創建好的特徵 ………………………… 66
5.2 特徵選擇 …………………………………………. 67
5.3 創建特徵 …………………………………………. 71
5.4 創建自己的轉換器 ……………………………. 75
5.4.1 轉換器API ……………………………. 76
5.4.2 實現細節 ……………………………….. 76
5.4.3 單元測試 ……………………………….. 77
5.4.4 組裝起來 ……………………………….. 79
5.5 小結 ………………………………………………… 79
第6 章 使用樸素貝葉斯進行社會
媒體挖掘 …………………………………….. 80
6.1 消歧 ………………………………………………… 80
6.1.1 從社交網站下載數據 ………………. 81
6.1.2 載入資料集並對其分類 …………… 83
6.1.3 Twitter 資料集重建 …………………. 87
6.2 文本轉換器 ………………………………………. 90
6.2.1 詞袋 ……………………………………… 91
6.2.2 N 元語法 ……………………………….. 92
6.2.3 其他特徵 ……………………………….. 93
6.3 樸素貝葉斯 ………………………………………. 93
6.3.1 貝葉斯定理 ……………………………. 93
6.3.2 樸素貝葉斯演算法 …………………….. 94
6.3.3 演算法應用示例 ………………………… 95
6.4 應用 ………………………………………………… 96
6.4.1 抽取特徵 ……………………………….. 97
6.4.2 將字典轉換為矩陣 ………………….. 98
6.4.3 訓練樸素貝葉斯分類器 …………… 98
6.4.4 組裝起來 ……………………………….. 98
6.4.5 用F1 值評估 ………………………….. 99
6.4.6 從模型中獲取更多有用的
特徵 ……………………………………. 100
6.5 小結 ………………………………………………. 102
第7 章 用圖挖掘找到感興趣的人 ………… 104
7.1 載入資料集 ……………………………………. 104
7.1.1 用現有模型進行分類 …………….. 106
7.1.2 獲取Twitter 好友資訊 …………… 107
7.1.3 構建網路 ……………………………… 110
7.1.4 創建圖 ………………………………… 112
7.1.5 創建用戶相似度圖 ……………….. 114
7.2 尋找子圖 ……………………………………….. 117
7.2.1 連通分支 ……………………………… 117
7.2.2 優化參數選取準則 ……………….. 119
7.3 小結 ………………………………………………. 123
第8 章 用神經網路破解驗證碼 ……………. 124
8.1 人工神經網路 …………………………………. 124
8.2 創建資料集 ……………………………………. 127
8.2.1 繪製驗證碼 ………………………….. 127
8.2.2 將圖像切分為單個的字母 ……… 129
8.2.3 創建訓練集 ………………………….. 130
8.2.4 根據抽取方法調整訓練資料集 .. 131
8.3 訓練和分類 ……………………………………. 132
8.3.1 反向傳播演算法 ………………………. 134
8.3.2 預測單詞 ……………………………… 135
8.4 用詞典提升正確率 ………………………….. 138
8.4.1 尋找最相似的單詞 ……………….. 138
8.4.2 組裝起來 ……………………………… 139
8.5 小結 ………………………………………………. 140
第9 章 作者歸屬問題 …………………………… 142
9.1 為作品找作者 …………………………………. 142
9.1.1 相關應用和使用場景 …………….. 143
9.1.2 作者歸屬 ……………………………… 143
9.1.3 獲取資料 ……………………………… 144
9.2 功能詞 …………………………………………… 147
9.2.1 統計功能詞 ………………………….. 148
9.2.2 用功能詞進行分類 ……………….. 149
9.3 支持向量機 ……………………………………. 150
9.3.1 用SVM 分類 ……………………….. 151
9.3.2 內核 ……………………………………. 151
9.4 字元N 元語法 ………………………………… 152
9.5 使用安然公司資料集 ………………………. 153