• 机器学习 涉及内容、模型适用范围 、优缺点总结


    机器学习【一】K最近邻算法

    涉及内容:

    分类——————数据集生成器、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——专治线性不可分

    涉及内容:
    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便捷的建立管道模型

    向管道模型添加特征选择步骤————提取管道模型每个步骤的属性

    使用管道模型进行模型选择和参数调优————

  • 相关阅读:
    Linux的各个文件夹名称解释(FHS)
    ThinkPHP3.1URL分发BUG修正
    HTTP响应头缓存控制
    Web性能测试工具:http_load安装&使用简介
    无法登陆github官网的解决办法
    次梯度(Subgradient)
    科普帖:深度学习中GPU和显存分析
    关于图像分类的问题
    深度学习中的多尺度模型设计
    Pytorch模型定义的三要
  • 原文地址:https://www.cnblogs.com/expedition/p/10847659.html
Copyright © 2020-2023  润新知