本书通过通俗易懂的语言、丰富的图示和生动的实例,破除了笼罩在机器学习上方复杂的数学乌云,让读者以较低的代价和门槛入门机器学习。本书共分为12章,介绍了在Python环境下学习scikit-learn机器学习框架的相关知识,涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法、线性回归算法、逻辑回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA 算法和k-均值算法等。
本书适合有一定编程基础的读者阅读,尤其适合想从事机器学习、人工智能、深度学习及机器人相关技术的程序员和爱好者阅读。另外,相关院校和培训机构也可以将本书作为教材使用。
封面图
目录
- 前言
- 第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 Score67
- 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 自助聚合算法Bagging131
- 7.5.2 正向激励算法boosting131
- 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里的SVM144
- 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 使用sklearn进行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 Index200
- 11.4.2 齐次性和完整性201
- 11.4.3 轮廓系数203
- 11.5 复习题204
- 后记205