常用的机器学习算法总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/daaikuaichuan/article/details/81391084

一、线性回归

1、核心思想

  这可能是机器学习中最简单的算法。例如,当你想要计算一些连续值,而不是将输出分类时,可以使用回归算法。因此,当你需要预测一个正在运行的过程未来的值时,你可以使用回归算法。然而,当特征冗余,即如果存在多重共线性(multicollinearity)时,线性回归就不太稳定。

2、优缺点分析

【优点】:

  • 建模速度快,不需要很复杂的计算,在数据量大的情况下依然运行速度很快;
  • 可以根据系数给出每个变量的理解和解释;

【缺点】:

  • 对异常值很敏感

3、适用场景

  • 从一个地方移动到另一个地方所需的时间;
  • 预测下个月某种产品的销售情况;
  • 血液中的酒精含量对协调能力的影响;
  • 预测每个月礼品卡的销售情况,并改善年收入的估算。

二、逻辑回归

1、核心思想

这里写图片描述
这里写图片描述

2、优缺点分析

【优点】:

  • 实现简单,广泛的应用于工业问题上;
  • 分类时计算量非常小,速度很快,存储资源低;
  • 便利的观测样本概率分数;
  • 对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题。

【缺点】:

  • 当特征空间很大时,逻辑回归的性能不是很好;
  • 容易欠拟合,一般准确度不太高;
  • 不能很好地处理大量多类特征或变量;
  • 只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;
  • 对于非线性特征,需要进行转换。

3、适用场景

  • 预测客户流失;
  • 信用评分和欺诈检测;
  • 评价市场营销活动的效果。

三、KNN

1、核心思想

1. 计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);

2. 对上面所有的距离值进行排序;

3. 选前k个最小距离的样本;

4. 根据这k个样本的标签进行投票,得到最后的分类类别。

  如何选择一个最佳的K值,这取决于数据。一般情况下,在分类时较大的K值能够减小噪声的影响。但会使类别之间的界限变得模糊。一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。

2、优缺点分析

【优点】:

  • 理论成熟,思想简单,既可以用来做分类也可以用来做回归;
  • 可用于非线性分类;
  • 训练时间复杂度为O(n);
  • 对数据没有假设,准确度高,对outlier不敏感。

【缺点】:

  • 计算量大;
  • 样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
  • 需要大量的内存。

3、适用场景

  K近邻算法具有较强的一致性结果。随着数据趋于无限,算法保证错误率不会超过贝叶斯算法错误率的两倍。对于一些好的K值,K近邻保证错误率不会超过贝叶斯理论误差率。

四、决策树

1、核心思想

  决策树是一种简单但广泛使用的分类器,它通过训练数据构建决策树,对未知的数据进行分类。决策树的每个内部节点表示在一个属性上的测试,每个分枝代表该测试的一个输出,而每个树叶结点存放着一个类标号。 在决策树算法中,ID3基于信息增益作为属性选择的度量,C4.5基于信息增益比作为属性选择的度量,CART基于基尼指数作为属性选择的度量。
  决策树很少被单独使用,但是不同的决策树可以组合成非常高效的算法,例如随机森林或梯度提升树算法。
这里写图片描述

2、优缺点分析

【优点】:

  • 不需要任何领域知识或参数假设;
  • 适合高维数据;
  • 简单易于理解;
  • 短时间内处理大量数据,得到可行且效果较好的结果。

【缺点】:

  • 对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征;
  • 易于过拟合;
  • 忽略属性之间的相关性;
  • 不支持在线学习。

3、适用场景

  • 做出投资决策;
  • 预测客户流失;
  • 找出可能拖欠银行贷款的人;
  • 在「建造」和「购买」两种选择间进行抉择;
  • 销售主管的资质审核。

五、支持向量机(SVM)

1、核心思想

  支持向量机把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类。

2、优缺点分析

【优点】:

  • 可以解决小样本下机器学习的问题;
  • 提高泛化性能;
  • 可以解决高维、非线性问题。超高维文本分类仍受欢迎;
  • 避免神经网络结构选择和局部极小的问题。

【缺点】:

  • 缺失数据敏感;
  • 内存消耗大,难以解释;
  • 运行和调差略烦人。

3、适用场景

  • 发现患有糖尿病等常见疾病的人;
  • 手写字符识别;
  • 文本分类——将文章按照话题分类;
  • 股票市场价格预测。

六、BP神经网络

1、核心思想

  神经网络中包含着神经元之间连接的权重。这些权重是平衡的,逐次对数据点进行学习。当所有的权重都被训练好后,如果需要对新给定的数据点进行回归,神经网络可以被用于预测分类结果或一个具体数值。利用神经网络,可以对特别复杂的模型进行训练,并且将其作为一种黑盒方法加以利用,而在训练模型之前,我们无需进行不可预测的复杂特征工程。通过与「深度方法」相结合,甚至可以采用更加不可预测的模型去实现新任务。例如,最近人们已经通过深度神经网络大大提升了物体识别任务的结果。深度学习还被应用于特征提取这样的非监督学习任务,也可以在人为干预更少的情况下,从原始图像或语音中提取特征。

2、优缺点分析

【优点】:

  • 分类准确率高;
  • 并行处理能力强;
  • 分布式存储和学习能力强;
  • 鲁棒性较强,不易受噪声影响。

【缺点】:

  • 需要大量参数(网络拓扑、阀值、阈值);
  • 结果难以解释;
  • 训练时间过长。

3、适用场景

  • 函数拟合;
  • 时间序列预测;
  • 模式识别分类等。

七、Adaboost

1、核心思想

  Adaboost目的就是从训练数据中学习一系列的弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器。

2、优缺点分析

【优点】:

  • adaboost是一种有很高精度的分类器;
  • 可以使用各种方法构建子分类器,Adaboost算法提供的是框架;
  • 当使用简单分类器时,计算出的结果是可以理解的,并且弱分类器的构造极其简单;
  • 简单,不用做特征筛选;
  • 不容易发生overfitting。

【缺点】:

  • 对outlier比较敏感。

八、随机森林、GBDT、XGboost

1、随机森林

  随机森林是一种决策树的集成方法。它能够同时解决具有大规模数据集的回归问题和分类问题,还有助于从数以千计的输入变量中找出最重要的变量。随机森林具有很强的可伸缩性,它适用于任何维数的数据,并且通常具有相当不错的性能。此外,还有一些遗传算法,它们可以在具有最少的关于数据本身的知识的情况下,很好地扩展到任何维度和任何数据上,其中最简单的实现就是微生物遗传算法。然而,随机森林学习的速度可能会很慢(取决于参数设置),并且这种方法不能迭代地改进生成模型。

2、GBDT

  回归树类似决策树,使用叶子节点的平均值作为判定的结果。如果不是叶子节点,那么就继续向下寻找。GBDT几乎可用于所有的回归问题,亦可以适用于二分类问题。GBDT使用新生成的树来拟合之前的树拟合的残差。

3、XGboost

  这是一个近年来出现在各大比赛的大杀器,夺冠选手很大部分都使用了它。高准确率高效率高并发,支持自定义损失函数,既可以用来分类又可以用来回归。可以像随机森林一样输出特征重要性,因为速度快,适合作为高维特征选择的一大利器。在目标函数中加入正则项,控制了模型的复杂程度,可以避免过拟合。支持列抽样,也就是随机选择特征,增强了模型的稳定性。对缺失值不敏感,可以学习到包含缺失值的特征的分裂方向。另外一个广受欢迎的原因是支持并行,速度杠杠的。用的好,你会发现他的全部都是优点

参考:https://www.toutiao.com/a6572713924406280712/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1530336567&app=news_article&utm_source=mobile_qq&iid=29811624951&utm_medium=toutiao_android
https://blog.csdn.net/china1000/article/details/48597469#%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92%E7%9A%84%E5%85%AC%E5%BC%8F
https://blog.csdn.net/u010159842/article/details/52918815

猜你喜欢

转载自blog.csdn.net/daaikuaichuan/article/details/81391084