Python算法总结(十)// 优点、缺点和参数

注:本文总结参考《Python机器学习基础教程》及老师课件,感谢作者!

算法一
逻辑回归
算法优点
(1)模型简单、易于理解、计算代价低
算法缺点
(1)容易欠拟合
关键参数
(1)penalty参数,取值“l1”和 “l2”,如果只是为了解决过拟合,采用L2正则化即可;如果进一步希望一些不重要特征的系数归于零,让模型系数稀疏化,则采用L1正则化。
(2)C参数,取值越大,正则化强度越小。
(3)class_weight参数,调和样本不均衡。
(4)multi_class参数,分类方式的选择,在多元分类问题中需要设置。本案例不涉及。
。。。。。。。。。。。。。。。。。。。
算法二
决策树
算法优点
(1)易于理解和解释
(2)能够同时处理数值型和分类型特征
(3)对数据规范性要求低,无需太多的数据预处理步骤
算法缺点
(1)但sklearn中决策树不支持对缺失值的处理
(2)容易过拟合
(3)决策树不稳定
(4)在拟合决策树时要考虑样本不均衡
关键参数
(1)criterion参数,取值“entropy”和’gini’,衡量不纯度指标。
(2)max_depth参数,剪枝参数,控制树的深度。
(3)min_samples_split参数,剪枝参数,分支节点的最小样本量。
(4)min_samples_leaf参数,剪枝参数,叶子节点的最小样本量。
(5)class_weight参数,调和样本不均衡。
。。。。。。。。。。。。。。。。。。。
算法三
XGBoost
因tree booster强大而闻名
算法优点
(1)并行处理,速度快
(2)内置缺失值处理
(3)XGBoost 允许用户定义自定义优化目标和评价标准
(4)正则化
算法缺点

关键参数
(1)max_depth参数,树的最大深度,典型值:3-10。
(2)learning_rate参数,
(3)n_estimators参数,弱学习器的数量
(4)lambda参数,权重的L2正则化项。
(5)alpha参数,权重的L1正则化项。

附参考XGBoost 的参数介绍
。。。。。。。。。。。。。。。。。。。
算法四
神经网络MLP
算法优点
(1)给定足够的计算时间和数据,仔细调节参数,神经网络相对其他机器学习算法表现往往最好。
算法缺点
(1)需要很长的训练时间
(2)MLP在均匀数据上性能最好。如果数据包含不同种类的特征,基于树的模型可能表现更好。
(3)隐层层权重可视化,但难以解释
关键参数
(1)hidden_layer_sizes参数,层数和每层的隐单元个数。每个隐层的结点个数通常与输入特征个数相近。
(2)activation参数,激活函数
参考这里
(3)alpha参数,正则化参数,变化范围非常大,一般从0.0001到1
(4)solver参数,建议使用’adam’和’lbfgs’

。。。。。。。。。。。。。。。。。。。
算法五
SVM
算法优点
(1)不仅适用于线性模型,也能抓住数据和特征之间的非线性关系
(2)不需要担心多重共线性问题,可避免局部极小化问题,提高泛化性能,解决高维问题
(3)异常点引起的偏差较小
算法缺点
(1)计算复杂度高,在面临大数据量时,计算耗时长
关键参数
(1)核函数kernel参数
Python算法总结(十)// 优点、缺点和参数_第1张图片

  • 线性核函数和多项式核函数在⾮线性数据上表现会浮动。
  • 多项式核函数多被⽤于图像处理之中。
  • sigmoid核函数,很少被用到。
  • rbf⾼斯径向基核函数基本在任何数据集上都表现不错,属于⽐较万能的核函数。

(2)C参数,硬间隔与软间隔
(3)class_weight参数,调和样本不均衡

你可能感兴趣的:(机器学习,Python)