涉及内容:
分类——————数据集生成器、KNN拟合数据
多元分类————生成数据集、KNN拟合
回归分析————用于回归分析的数据集生成器、KNN拟合、调整近邻数
KNN实战—酒的分类————数据集有哪些键、生成训练集和测试集、KNN拟合、新样本的分类进行预测
不适用:
- 需要对数据集认真的预处理
- 对规模超大的数据集拟合的时间较长
- 对高维数据集拟合欠佳
- 对稀疏数据集无能为力
涉及内容:
线性模型的图形表示————导入线性模型、拟合数据点、拟合新加的数据点、训练数据集的属性“xx_”
线性模型特点—————用于回归分析的好几种线性模型之间的区别
最基本的线性模型:线性回归————
使用L2正则化的线性模型:岭回归————线性回归和岭回归之间的重要结论
使用L1正则化的线性模型:套索回归————
套索回归和岭回归的区别————
适用:
- 对于特征变量较多的数据集,线性模型会十分强大【尤其是训练集的特征变量 > 数据点的数量时,可以达到近乎完美的预测】
优点:
- 线性模型的训练非常快
- 过程也很容易被人理解
缺点:
- 数据集的特征比较少的时候,线性模型的表现就会相对偏弱
- 使用线性模型的前提条件是假设目标y是数据特征的线性组合
涉及内容:
基本概念————原理、贝叶斯定理、对天气的简单预测
贝努利朴素贝叶斯————适合符合贝努利分布【二项分布】的数据集
高斯朴素贝叶斯————适用样本的特征符合高斯分布【正态分布】
多项式朴素贝叶斯————用于拟合多项式分布的数据集、数据预处理工具MinMaxScaler
实战:判断肿瘤良性还是恶性————导入、拆分、拟合、随机预测、高斯朴素贝叶斯的学习曲线
适用:
- 不考虑样本之间特征的关系——> 朴素贝叶斯分类器效率极高
- 高斯朴素贝叶斯在预测方面,对于样本数量的要求不苛刻
优点:
- 高斯朴素贝叶斯 可以应用于任何连续数值型的数据集中,如果是符合正态分布的数据集的话,得分会更高
- 相对于线性模型,朴素贝叶斯效率更高——> 把数据集中的各个特征看作完全独立的,不考虑特征之间的关联关系,但同时,泛化能力更弱
- 大数据时代,很多数据集的样本特征成千上万,这种情况下,模型的效率要比泛化性能多零点几个百分点的得分更重要
缺点:
- 是相当好的分类器,但对于预测具体的数值并不是很擅长
- 泛化能力弱
涉及内容:
原理————if/else推导
决策树构建————用决策树分类器分类【设定最大深度】、分类器表现、加大深度
优点:
- 很容易将模型可视化
- 由于决策树算法对每个样本特征单独处理——> 不需要对数据进行转换
- 不需要对数据预处理
缺点:
- 即使有预剪枝处理【使用max_depth、max_leaf_nodes参数】,还是不可避免出现过拟合问题
- 泛化性能大打折扣
涉及内容:
简介————是一种集合学习算法,可以用于分类,也可以用于回归、可解决过拟合问题
随机森林构建 ————bootstrap 、max_features、n_estimators、图形看看随机分类的表现
实战:判断月薪是否>5万————载入数据集、用get_dummies处理数据、用决策树建模并预测
额外功能:在数据集中对数据特征的重要性进行判断————可以通过这两个算法对高维数据进行分析,在诸多特征中保留最重要的,也便于对数据降维处理
优点:
- 不要求对数据预处理
- 集成决策树所有优点,弥补了不足
- 支持并行处理【实现方式是n_jobs参数,记得此参数要和cpu内核数一致,多了无意义,n_jobs=-1,使用全部内核】
- 注意随机森林生成每棵树的方法是随机的,不同的random_state会导致模型完全不同,要固化其值
缺点:
- 对于超高维数据集、稀疏数据集,线性模型更好
- 更消耗内存,速度慢,若要省内存+时间,用线性模型
涉及内容:
SVM原理————核函数、数据投射至高维空间、多项式内核、RBF内核
支持向量机的SVM核函数————创建一个线性内核的支持向量机模型、SVM内核换成RBF
SVM的核函数和参数选择————不同核函数的SVM对比、linearSVM算法
RBF内核SVC的gamma参数调节————结果分析
注意事项————3个非常重要的参数
SVM在回归分析中的应用:波士顿房价数据集——————了解数据集、SVR算法建立房价预测模型、StandardScaler数据预处理
优点:
- 可应对高维数据集和低维数据集
- 即使数据集中样本特征的测度都比较接近,如图像识别领域,以及样本特征数和样本数比较接近的时候,都游刃有余
缺点:
- 当数据集中特征数量在1万以内,SVM可以驾驭,但数量大于10万,就非常占内存和耗费时间
- 对数据预处理和参数调节要求很高
原理————MLP算法
神经网络中的非线性矫正————非线性矫正 rele 、进行双曲正切处理 tanh
神经网络的参数设置————各个参数的含义、图像展示MLP分类的情况、减少隐藏层的节点、给MLP分类器增加隐藏层数量、设计激活函数为tanh、修改alpha参数
实战——手写识别————MNIST数据集、识别
优点
- 计算能力充足且参数设置合适情况下,神经网络表现特优异
- 对于特征类型单一的数据,变现不错
缺点
- 训练时间长、对数据预处理要求高
- 数据特征类型差异较大,随机森林或梯度上升随机决策树算法更好
- MLP仅限于处理小数据集,对于更大或更复杂的数据集,可以进军深度学习
涉及内容:
数据预处理————StandardScaler预处理数据、MinMaxScaler数据预处理、RobustScaler数据预处理、Normalizer数据预处理
通过数据预处理提高模型准确率————训练一个MLP神经网络、使用MinMaxScaler进行数据预处理
数据降维————PCA主成分分析原理
对数据降维以便于进行可视化————
原始特征与PCA主成分之间的关系————
特征提取————PCA主成分分析法用于特征提取、使用一些方法来提升模型的表现、PCA中的数据白化功能、非负矩阵分解用于特征提取
聚类算法————K均值算法、凝聚聚类算法、DBSCAN算法、eps参数、min_samples参数
适用数据降维的情况:
- 超高维度数据
- 特征之间有非常强烈的相关性【比如,人口数据中,男性为1,女性为0,去掉其中任何一列,不会丢失任何信息,可以降维,以降低模型的复杂度】
对于机器学习来说,合理有效地对数据进行表达是至关重要的
对于没有分类标签的数据来说,无监督学习的聚类算法可以帮助我们更好的理解数据集,并且为进一步训练模型打好基础
涉及内容:
数据表达————类型特征、连续特征、使用哑变量转换类型特征、get_dummies的使用、把数值特征也进行get_dummies转换、装箱处理【离散化处理】、用新的方法来表达已经装箱的数据——OneHotEncoder,独热编码、
数据“升维”————向数据集添加交互式特征、Numpy中的hstack函数、对特征进行交互式操作对模型产生的影响、向数据集添加多项式特征、PolynomialFeatures、处理后机器学习的模型的变化
自动特征选择————使用单一变量法进行特征选择、使用SelectPercentile进行特征选择、基于模型的特征选择、迭代式特征选择、递归特征剔出法RFE
对样本特征进行装箱的好处:
- 纠正模型过拟合和欠拟合问题
- 尤其针对大规模高纬度的数据集使用线性模型的时候,可以大幅度提高预测的准确率
涉及内容:
使用交叉验证对模型进行评估————sklearn中的交叉验证法、K折叠交叉验证法、随机拆分和“挨个儿试”
使用网格搜索寻找模型的最优参数————简单网格搜索、局限性、与交叉验证结合的网格搜索、GridSearchCV进行参数调优的过程
对分类模型的可信度进行评估————分类模型中的预测准确率、分类模型中的决定系数、.score给分类、回归模型评分的方法、GridSearchCV改变评分的方式
在sklearn中,cross_val_score对于分类模型默认使用的是K折叠交叉验证,而对于分类模型则默认使用分层K交叉验证法
涉及内容:
基本概念和使用————在数据预处理中遇到的问题及使用管道模型解决
使用管道模型进行网格搜索————
管道模型不仅可以把 数据预处理和模型训练集结合一起,也可以将很多不同的算法打包
涉及内容:
整理数据集————删除无效数值、去掉冗余信息、考虑是否把字符串类型的特征通过get_dummies转化成整型数值
.建立包含数据预处理和MLP模型的管道模型————使用make_pipeline便捷的建立管道模型
向管道模型添加特征选择步骤————提取管道模型每个步骤的属性
使用管道模型进行模型选择和参数调优————