目 录章 机器学习绪论11.1 机器学习的定义11.1.1 绪论11.1.2 机器学习发展历程21.1.3 机器学习算法的分类31.2 学习算法41.2.1 监督学习41.2.2 无监督学习51.3 机器学习应用程序的步骤61.4 Python语言71.4.1 Python的风格71.4.2 Python的优势71.4.3 Python语言的缺点81.5 Python的环境搭建91.5.1 安装101.5.2 使用pip安装第三方库131.6 NumPy函数库基础141.7 Python的基础知识161.7.1 数和表达式161.7.2 Python的标识符181.7.3 Python的保留字符191.7.4 行和缩进191.7.5 多行语句201.7.6 Python引号201.7.7 Python空行201.7.8 同一行显示多条语句201.7.9 Print输出21第2章 线性模型222.1 一般线性回归232.1.1 线性回归公式表示法232.1.2 线性回归的Python实现252.2 局部加权线性回归272.3 广义线性模型302.4 逻辑回归分析362.5 牛顿法402.5.1 基本牛顿法的原理402.5.2 基本牛顿法的流程402.5.3 全局牛顿法402.5.4 Armijo搜索422.5.5 全局牛顿法求解线性回归模型422.6 缩减法432.6.1 岭回归442.6.2 lasso回归462.7 利用线性回归进行预测472.7.1 训练线性回归模型472.7.2 对新数据的预测49第3章 树回归513.1 构建决策树的准备工作523.1.1 特征选择523.1.2 决策树的生成和修剪603.2 Matplotlib注释绘制树形图603.3 使用决策树执行分类673.4 决策树的存储713.5 Sklearn使用决策树预测隐形眼镜类型733.5.1 实战背景733.5.2 使用Sklearn构建决策树733.6 复杂数据的局部性建模803.7 连续型和离散型特征的树构建813.8 分类回归树823.8.1 构建树833.8.2 剪枝853.8.3 模型树873.8.4 分类回归的Python实现88第4章 K-means聚类算法924.1 K-means聚类算法的概述924.2 相似性的度量934.2.1 闵可夫斯基距离934.2.2 曼哈顿距离934.2.3 欧氏距离934.3 K-means聚类算法的原理944.3.1 K-means聚类算法的步骤944.3.2 K-means算法与矩阵分解954.3.3 K-means聚类算法的实现964.4 K-近邻算法1044.5 各种聚类算法1074.5.1 划分聚类法1074.5.2 层次聚类法1084.5.3 密度聚类法1114.5.4 谱聚类法1164.5.5 Birch聚类1194.5.6 混合高斯模型1214.6 K-means++算法1224.6.1 K-means算法存在的问题1224.6.2 K-means++算法的思路123第5章 朴素贝叶斯1275.1 朴素贝叶斯理论1275.1.1 贝叶斯决策理论1275.1.2 条件概率1285.1.3 全概率公式1285.1.4 贝叶斯推断1295.1.5 朴素贝叶斯推断1305.2 朴素贝叶斯算法1315.3 朴素贝叶斯算法的优缺点140第6章 数据降维1416.1 维度灾难与降维1416.2 高维数据降维的方法1416.2.1 线性降维1426.2.2 非线性降维1466.2.3 SVD降维1536.2.4 流形学习降维1596.2.5 多维缩放降维166第7章 支持向量机1707.1 支持向量机概述1707.2 分类间隔1717.2.1 函数间距1727.2.2 几何间距1737.3 拉格朗日乘子1757.3.1 拉格朗日对偶性1757.3.2 优化间隔分类器1767.4 核函数1787.4.1 核函数的选择1807.4.2 松弛向量与软间隔优选化1807.5 SOM算法1817.5.1 坐标上升算法1827.5.2 SOM1827.6 SVM的优缺点1857.7 SVM的Python实现185第8章 随机森林1928.1 什么是随机森林1928.2 集成学习1928.2.1 集成学习的思想1938.2.2 集成学习中的典型方法1938.3 Stacking1948.3.1 Stacking的基本思想1948.3.2 Stacking的实现1958.4 随机森林算法1988.4.1 随机森林的特点1988.4.2 随机森林算法流程1998.5 随机森林算法实践2018.6 美国人口普查年收入50k分类2078.6.1 数据预处理2088.6.2 模型训练及验证212第9章 人工神经网络2179.1 感知机模型2179.1.1 感知机的定义2179.1.2 感知机的学习策略2189.1.3 感知机学习算法2189.1.4 感知机的Python实现2269.2 从感知机到神经网络2369.3 多层前馈神经网络2389.3.1 BP网络算法2419.3.2 BP神经网络的学习过程2449.3.3 BP神经网络中参数的设置2499.4 神经网络的Python实现2530章 协同过滤算法27210.1 协同过滤的核心27210.2 协同过滤的分类27210.3 相似性的度量方法27310.3.1 欧氏距离27310.3.2 皮尔逊相关系数27310.3.3 余弦相似度27410.3.4 用Python实现余弦相似度的计算27410.4 基于用户的协同过滤算法27510.4.1 基于物品的协同过滤算法27510.4.2 基于矩阵分解的协同过滤算法27610.4.3 Python实现27610.5 基于项的协同过滤算法28010.6 利用协同过滤算法进行推荐28110.6.1 导入用户-商品数据28110.6.2 利用基于用户的协同过滤算法进行推荐28210.6.3 利用基于项的协同过滤算法进行推荐2831章 基于矩阵分解的推荐算法28511.1 矩阵分解28511.2 利用矩阵分解进行预测28611.2.1 损失函数28611.2.2 损失函数的求解28611.2.3 加入正则项的损失函数即求解方法28611.2.4 预测28811.2.5 程序实现28911.3 非负矩阵分解29111.3.1 非负矩阵分解的形式定义29111.3.2 损失函数29111.3.3 优化问题的求解29211.3.4 利用乘法规则进行分解和预测29411.4 基于矩阵分解的推荐方法29511.4.1 LFM法29511.4.2 SVD法29811.4.3 SVD++法3002章 集成学习30412.1 集成学习的原理及误差30412.2 集成学习方法30512.2.1 Boosting算法30512.2.2 AdaBoost算法30512.2.3 AdaBoost与加法模型30912.2.4 提升树31012.2.5 Bagging算法31312.2.6 误差-分歧分解31412.2.7 多样性增强31512.2.8 Stacking算法31612.3 Python实现3173章 数据预处理32213.1 数据预处理概述32213.1.1 为什么要对数据进行预处理32213.1.2 数据预处理的主要任务32313.2 去除唯一属性32313.3 处理缺失值32413.3.1 直接使用32413.3.2 删除特征32413.3.3 缺失值补全32413.3.4 数据清理32813.3.5 特征编码33013.3.6 数据标准化33113.3.7 正则化33213.3.8 特征选择33313.3.9 稀疏表示和字典学习33513.4 Python实现337参考文献352