近年来,Python语言成为了广受欢迎的编程语言,而它在机器学习领域也有很好的表现。scikit-learn是一个用Python语言编写的机器学习算法库,它可以实现一系列常用的机器学习算法,是一个好工具。
本书通过14章内容,详细地介绍了一系列机器学习模型和scikit-learn的使用技巧。本书从机器学习的基础理论讲起,涵盖了简单线性回归、K-近邻算法、特征提取、多元线性回归、逻辑回归、朴素贝叶斯、非线性分类、决策树回归、随机森林、感知机、支持向量机、人工神经网络、K-均值算法、主成分分析等重要话题。
本书适合机器学习领域的工程师学习,也适合想要了解scikit-learn的数据科学家阅读。通过阅读本书,读者将有效提升自己在机器学习模型的构建和评估方面的能力,并能够高效地解决机器学习难题。
机器学习是一个非常热门的技术,本书内容涵盖多种机器学习模型,包括流行的机器学习算法,例如K近邻算法、逻辑回归、朴素贝叶斯、K 均值算法、决策树以及人工神经网络。与此同时,还讨论了数据预处理、超参数优化和集成方法等主题。
阅读完本书之后,读者将学会构建用于文档分类、图像识别、广告检测等任务的系统,还将学到如何使用scikit-learn类库的API从类别变量、文本和图像中提取特征,如何评估模型的性能,并对如何提升模型的性能建立直觉。除此之外,还将掌握在实践中运用scikit-learn构建高效模型所需的技能,并能够通过实用的策略完成高级任务。
Gavin Hackeling 是一名数据科学家和作家。他研究过各种各样的机器学习问题,包括自动语音识别、文档分类、目标识别、以及语义切分。Gavin Hackeling 毕业于北卡罗来纳大学和纽约大学,目前和他的妻子和猫生活在布鲁克林。
第 1章 机器学习基础 1
1.1 定义机器学习 1
1.2 从经验中学习 2
1.3 机器学习任务 3
1.4 训练数据、测试数据和验证数据 4
1.5 偏差和方差 6
1.6 scikit-learn简介 8
1.7 安装scikit-learn 8
1.7.1 使用pip安装 9
1.7.2 在Windows系统下安装 9
1.7.3 在Ubuntu 16.04系统下安装 10
1.7.4 在Mac OS系统下安装 10
1.7.5 安装Anaconda 10
1.7.6 验证安装 10
1.8 安装pandas、Pillow、NLTK和matplotlib 11
1.9 小结 11
第 2章 简单线性回归 12
2.1 简单线性回归 12
2.1.1 用代价函数评价模型的拟合性 15
2.1.2 求解简单线性回归的OLS 17
2.2 评价模型 19
2.3 小结 21
第3章 用K-近邻算法分类和回归 22
3.1 K-近邻模型 22
3.2 惰性学习和非参数模型 23
3.3 KNN模型分类 23
3.4 KNN模型回归 31
3.5 小结 36
第4章 特征提取 37
4.1 从类别变量中提取特征 37
4.2 特征标准化 38
4.3 从文本中提取特征 39
4.3.1 词袋模型 39
4.3.2 停用词过滤 42
4.3.3 词干提取和词形还原 43
4.3.4 tf-idf权重扩展词包 45
4.3.5 空间有效特征向量化与哈希技巧 48
4.3.6 词向量 49
4.4 从图像中提取特征 52
4.4.1 从像素强度中提取特征 53
4.4.2 使用卷积神经网络激活项作为特征 54
4.5 小结 56
第5章 从简单线性回归到多元线性回归 58
5.1 多元线性回归 58
5.2 多项式回归 62
5.3 正则化 66
5.4 应用线性回归 67
5.4.1 探索数据 67
5.4.2 拟合和评估模型 69
5.5 梯度下降法 72
5.6 小结 76
第6章 从线性回归到逻辑回归 77
6.1 使用逻辑回归进行二元分类 77
6.2 垃圾邮件过滤 79
6.2.1 二元分类性能指标 81
6.2.2 准确率 82
6.2.3 精准率和召回率 83
6.2.4 计算F1值 84
6.2.5 ROC AUC 84
6.3 使用网格搜索微调模型 86
6.4 多类别分类 88
6.5 多标签分类和问题转换 93
6.6 小结 97
第7章 朴素贝叶斯 98
7.1 贝叶斯定理 98
7.2 生成模型和判别模型 100
7.3 朴素贝叶斯 100
7.4 在scikit-learn中使用朴素贝叶斯 102
7.5 小结 106
第8章 非线性分类和决策树回归 107
8.1 决策树 107
8.2 训练决策树 108
8.2.1 选择问题 109
8.2.2 基尼不纯度 116
8.3 使用scikit-learn类库创建决策树 117
8.4 小结 120
第9章 集成方法:从决策树到随机森林 121
9.1 套袋法 121
9.2 推进法 124
9.3 堆叠法 126
9.4 小结 128
第 10章 感知机 129
10.1 感知机 129
10.1.1 激活函数 130
10.1.2 感知机学习算法 131
10.1.3 使用感知机进行二元分类 132
10.1.4 使用感知机进行文档分类 138
10.2 感知机的局限性 139
10.3 小结 140
第 11章 从感知机到支持向量机 141
11.1 核与核技巧 141
11.2 最大间隔分类和支持向量 145
11.3 用scikit-learn分类字符 147
11.3.1 手写数字分类 147
11.3.2 自然图片字符分类 150
11.4 小结 152
第 12章 从感知机到人工神经网络 153
12.1 非线性决策边界 154
12.2 前馈人工神经网络和反馈人工神经网络 155
12.3 多层感知机 155
12.4 训练多层感知机 157
12.4.1 反向传播 158
12.4.2 训练一个多层感知机逼近XOR函数 162
12.4.3 训练一个多层感知机分类手写数字 164
12.5 小结 165
第 13章 K-均值算法 166
13.1 聚类 166
13.2 K-均值算法 168
13.2.1 局部最优值 172
13.2.2 用肘部法选择K值 173
13.3 评估聚类 176
13.4 图像量化 178
13.5 通过聚类学习特征 180
13.6 小结 184
第 14章 使用主成分分析降维 185
14.1 主成分分析 185
14.1.1 方差、协方差和协方差矩阵 188
14.1.2 特征向量和特征值 190
14.1.3 进行主成分分析 192
14.2 使用PCA对高维数据可视化 194
14.3 使用PCA进行面部识别 196
14.4 小结 199