目录
第1章机器学习概述1
1.1人工智能的概念和发展1
1.2机器学习的概念和发展6
1.3机器学习的应用9
1.3.1七大应用模式9
1.3.2经典应用11
1.4实现框架11
1.4.1机器学习框架11
1.4.2深度学习框架12
1.5小结15
第2章Python基础16
2.1认识Python16
2.1.1Python简介16
2.1.2Python开发环境16
2.1.3安装Python与选择编译器16
2.2Python语法特点17
2.2.1保留字17
2.2.2标识符18
2.2.3注释18
2.2.4代码缩进19
2.2.5数据类型20
2.2.6命名规则23
2.2.7运算符23
2.2.8input()和print()的用法26
2.3流程控制语句27
2.3.1判断语句28
2.3.2循环语句29
2.4序列类型及操作292.4.1序列处理函数和方法29
2.4.2列表31
2.4.3元组32
2.4.4字典33
2.4.5集合34
2.4.6列表、元组、字典、集合的区别35
2.5函数的定义与使用35
2.5.1函数的理解与定义35
2.5.2函数的调用35
2.5.3函数的参数传递和返回值36
2.5.4局部变量和全局变量37
2.6类和对象37
2.6.1定义类37
2.6.2创建类的实例38
2.6.3创建__init__()方法38
2.7模块39
2.7.1创建模块39
2.7.2导入模块39
2.8文件操作40
2.8.1创建和打开文件40
2.8.2关闭文件41
2.8.3写入文件内容41
2.8.4读取文件内容42
2.9小结42
目录〖3〗第3章NumPy基础43
3.1Matplotlib基础43
3.1.1绘图43
3.1.2显示图片45
3.2NumPy预备知识46
3.2.1NumPy简介46
3.2.2NumPy的安装46
3.2.3NumPy中的数组47
3.3NumPy语法49
3.3.1数组基础49
3.3.2数组的使用53
3.3.3索引进阶54
3.3.4广播55
3.4创建NumPy数组的3种方法57
3.4.1使用NumPy内部功能函数58
3.4.2从Python列表转换62
3.4.3使用特殊的库函数63
3.5小结63
第4章线性回归算法64
4.1概述64
4.1.1线性回归定义64
4.1.2线性回归的求解66
4.1.3线性回归的拟合问题72
4.1.4线性回归与正则化73
4.2实例分析74
4.2.1简单线性回归模型实例——最小二乘法74
4.2.2波士顿房价预测75
4.3小结80
第5章逻辑回归算法81
5.1导读81
5.1.1逻辑回归基本概念81
5.1.2逻辑回归应用82
5.2概述82
5.2.1probability和odds定义82
5.2.2logit函数和sigmoid函数及其特性83
5.2.3最大似然估计84
5.2.4参数的获取: 梯度下降法优化参数86
5.2.5模型评估方法87
5.2.6调参与最终模型90
5.2.7模型性能度量91
5.3实例分析92
5.3.1创建数据集并使用逻辑回归算法进行分类92
5.3.2简单逻辑回归模型实例95
5.4小结97
第6章k近邻算法99
6.1k近邻算法的基本概念100
6.2暴力搜索算法100
6.2.1距离度量100
6.2.2k值的选择101
6.2.3分类决策规则102
6.3实例分析: Iris数据集分类103
6.3.1Iris数据集103
6.3.2算法实现103
6.4小结108
第7章经典贝叶斯算法109
7.1数学回顾111
7.1.1条件概率111
7.1.2全概率公式111
7.1.3贝叶斯定理112
7.2朴素贝叶斯算法112
7.2.1基本概念112
7.2.2算法流程114
7.2.3拉普拉斯平滑115
7.3实例分析: 挑选西瓜115
7.4实例分析: 判断是否患有糖尿病119
7.4.1数据集简介119
7.4.2算法实现119
7.5小结125
第8章决策树126
8.1决策树原理127
8.1.1决策树模型127
8.1.2决策树的构建过程128
8.2决策树的特征选择128
8.2.1信息增益129
8.2.2信息增益率132
8.2.3基尼指数132
8.3决策树的构建134
8.3.1ID3算法134
8.3.2C4.5算法135
8.3.3CART生成算法136
8.4决策树的剪枝策略138
8.5随机森林141
8.6实例分析: 从零开始实现ID3算法143
8.6.1数据集143
8.6.2算法实现143
8.7实例分析: 用泰坦尼克号数据集实现随机森林148
8.7.1泰坦尼克号数据集简介148
8.7.2算法实现149
8.8小结152
第9章支持向量机153
9.1最优化方法: 拉格朗日乘数法154
9.1.1等式约束条件下的拉格朗日乘数法154
9.1.2拉格朗日对偶性及KKT条件155
9.2支持向量机157
9.2.1线性支持向量机157
9.2.2非线性支持向量机163
9.2.3SMO算法165
9.3实例分析: 乳腺癌数据集分类168
9.3.1乳腺癌数据集简介169
9.3.2算法实现169
9.4小结177
第10章Kmeans算法178
10.1概述179
10.1.1Kmeans算法180
10.1.2Kmeans++算法183
10.1.3评估指标185
10.2实例分析186
10.2.1对简单样本进行Kmeans聚类186
10.2.2创建数据集并进行Kmeans聚类187
10.2.3对MNIST数据集进行Kmeans聚类193
10.3小结195
第11章主成分分析算法197
11.1概述198
11.1.1PCA算法原理199
11.1.2PCA算法流程204
11.2实例分析204
11.2.1对简单样本进行PCA降维204
11.2.2对鸢尾花数据集进行PCA降维205
11.2.3对MNIST数据集进行PCA降维和Kmeans聚类210
11.3小结215
第12章深度学习216
12.1概述216
12.1.1神经网络简史216
12.1.2深度学习的应用——计算机视觉223
12.2计算机视觉中常用的神经网络层226
12.2.1全连接神经网络226
12.2.2卷积神经网络232
12.2.3权重初始化235
12.2.4优化算法237
12.2.5深度学习中的正则化240
12.3从零开始构建卷积神经网络模型243
12.3.1LeNet243
12.3.2AlexNet245
12.3.3ResNet250
12.3.4MNIST数据集分类257
12.4小结273
第13章生成对抗网络274
13.1生成对抗网络的提出与发展274
13.1.1生成对抗网络简史274
13.1.2生成对抗网络的提出者Ian Goodfellow274
13.1.3生成对抗网络应用——计算机视觉276
13.2生成对抗网络原理277
13.2.1生成对抗网络简介277
13.2.2带有条件约束的生成对抗网络280
13.3实例分析284
13.3.1手写体生成284
13.3.2人脸生成292
13.3.3条件生成对抗网络296
13.4小结303