第1章 机器学习介绍 1
1.1什么是机器学习 1
1.2机器学习有什么用 2
1.3机器学习的分类 3
1.4机器学习应用开发的典型步骤 4
1.4.1数据采集和标记 4
1.4.2数据清洗 5
1.4.3特征选择 5
1.4.4模型选择 5
1.4.5模型训练和测试 5
1.4.6模型性能评估和优化 5
1.4.7模型使用 6
1.5复习题 6
第2章 Python机器学习软件包 7
2.1开发环境搭建 7
2.2 IPython简介 8
2.2.1 IPython基础 8
2.2.2 IPython图形界面 13
2.3 Numpy简介 15
2.3.1 Numpy数组 15
2.3.2 Numpy运算 19
2.4 Pandas简介 32
2.4.1基本数据结构 32
2.4.2数据排序 34
2.4.3数据访问 34
2.4.4时间序列 36
2.4.5数据可视化 36
2.4.6文件读写 38
2.5 Matplotlib简介 38
2.5.1图形样式 38
2.5.2图形对象 40
2.5.3画图操作 46
2.6 scikit-learn简介 51
2.6.1 scikit-learn示例 51
2.6.2 scikit-learn一般性原理和通用规则 55
2.7复习题 56
2.8拓展学习资源 57
第3章 机器学习理论基础 58
3.1过拟合和欠拟合 58
3.2成本函数 59
3.3模型准确性 60
3.3.1模型性能的不同表述方式 61
3.3.2交叉验证数据集 61
3.4学习曲线 62
3.4.1实例:画出学习曲线 62
3.4.2过拟合和欠拟合的特征 65
3.5算法模型性能优化 65
3.6查准率和召回率 66
3.7 F1 Score 67
3.8复习题 67
第4章 k-近邻算法 69
4.1算法原理 69
4.1.1算法优缺点 69
4.1.2算法参数 70
4.1.3算法的变种 70
4.2示例:使用k-近邻算法进行分类 70
4.3示例:使用k-近邻算法进行回归拟合 72
4.4实例:糖尿病预测 74
4.4.1加载数据 74
4.4.2模型比较 75
4.4.3模型训练及分析 77
4.4.4特征选择及数据可视化 78
4.5拓展阅读 80
4.5.1如何提高k-近邻算法的运算效率 80
4.5.2相关性测试 80
4.6复习题 81
第5章 线性回归算法 83
5.1算法原理 83
5.1.1预测函数 83
5.1.2成本函数 84
5.1.3梯度下降算法 84
5.2多变量线性回归算法 86
5.2.1预测函数 86
5.2.2成本函数 87
5.2.3梯度下降算法 88
5.3模型优化 89
5.3.1多项式与线性回归 89
5.3.2数据归一化 89
5.4示例:使用线性回归算法拟合正弦函数 90
5.5示例:测算房价 92
5.5.1输入特征 92
5.5.2模型训练 93
5.5.3模型优化 94
5.5.4学习曲线 95
5.6拓展阅读 96
5.6.1梯度下降迭代公式推导 96
5.6.2随机梯度下降算法 96
5.6.3标准方程 97
5.7复习题 97
第6章 逻辑回归算法 98
6.1算法原理 98
6.1.1预测函数 98
6.1.2判定边界 99
6.1.3成本函数 100
6.1.4梯度下降算法 102
6.2多元分类 102
6.3正则化 103
6.3.1线性回归模型正则化 103
6.3.2逻辑回归模型正则化 104
6.4算法参数 104
6.5实例:乳腺癌检测 106
6.5.1数据采集及特征提取 106
6.5.2模型训练 108
6.5.3模型优化 110
6.5.4学习曲线 111
6.6拓展阅读 113
6.7复习题 114
第7章 决策树 115
7.1算法原理 115
7.1.1信息增益 116
7.1.2决策树的创建 119
7.1.3剪枝算法 120
7.2算法参数 121
7.3实例:预测泰坦尼克号幸存者 122
7.3.1数据分析 122
7.3.2模型训练 123
7.3.3优化模型参数 124
7.3.4模型参数选择工具包 127
7.4拓展阅读 130
7.4.1熵和条件熵 130
7.4.2决策树的构建算法 130
7.5集合算法 131
7.5.1自助聚合算法Bagging 131
7.5.2正向激励算法boosting 131
7.5.3随机森林 132
7.5.4 ExtraTrees算法 133
7.6复习题 133
第8章 支持向量机 134
8.1算法原理 134
8.1.1大间距分类算法 134
8.1.2松弛系数 136
8.2核函数 138
8.2.1最简单的核函数 138
8.2.2相似性函数 140
8.2.3常用的核函数 141
8.2.4核函数的对比 142
8.3 scikit-learn里的SVM 144
8.4实例:乳腺癌检测 146
8.5复习题 149
第9章 朴素贝叶斯算法 151
9.1算法原理 151
9.1.1贝叶斯定理 151
9.1.2朴素贝叶斯分类法 152
9.2一个简单的例子 153
9.3概率分布 154
9.3.1概率统计的基本概念 154
9.3.2多项式分布 155
9.3.3高斯分布 158
9.4连续值的处理 159
9.5实例:文档分类 160
9.5.1获取数据集 160
9.5.2文档的数学表达 161
9.5.3模型训练 163
9.5.4模型评价 165
9.6复习题 167
第10章 PCA算法 168
10.1算法原理 168
10.1.1数据归一化和缩放 169
10.1.2计算协方差矩阵的特征向量 169
10.1.3数据降维和恢复 170
10.2 PCA算法示例 171
10.2.1使用Numpy模拟PCA计算过程 171
10.2.2使用skleam进行PCA降维运算 173
10.2.3 PCA的物理含义 174
10.3 PCA的数据还原率及应用 175
10.3.1数据还原率 175
10.3.2加快监督机器学习算法的运算速度 176
10.4实例:人脸识别 176
10.4.1加载数据集 176
10.4.2一次失败的尝试 179
10.4.3使用PCA来处理数据集 182
10.4.4最终结果 185
10.5拓展阅读 189
10.6复习题 189
第11章 k-均值算法 190
11.1算法原理 190
11.1.1 k-均值算法成本函数 191
11.1.2随机初始化聚类中心点 191
11.1.3选择聚类的个数 192
11.2 scikit-learn里的k-均值算法 192
11.3使用k-均值对文档进行聚类分析 195
11.3.1准备数据集 195
11.3.2加载数据集 196
11.3.3文本聚类分析 197
11.4聚类算法性能评估 200
11.4.1 Adjust Rand Index 200
11.4.2齐次性和完整性 201
11.4.3轮廓系数 203
11.5复习题 204
后记 205