机器学习常见算法总结
监督学习 Supervised Learning
线性回归算法
优点:
- 建模速度快,存储资源低;
- 思想简单,实现容易。建模迅速,对于小数据量、简单的关系很有效;
-
是许多强大的非线性模型的基础;
-
线性回归模型十分容易理解,结果具有很好的可解释性,有利于决策分析;
-
蕴含机器学习中的很多重要思想。
-
能解决回归问题。
缺点:
- 对复杂数据拟合不好,欠拟合;
- 对异常值很敏感;
-
对于非线性数据或者数据特征间具有相关性多项式回归难以建模.;
-
难以很好地表达高度复杂的数据。
弹性网络回归的几个关键点
- 它鼓励在高度相关变量的情况下的群体效应,而不是像Lasso那样将其中一些置零。当多个特征和另一个特征相关的时候弹性网络非常有用。Lasso 倾向于随机选择其中一个,而弹性网络更倾向于选择两个;
- 对所选变量的数量没有限制。
多项式回归的要点
- 能够模拟非线性可分的数据;线性回归不能做到这一点。它总体上更灵活,可以模拟一些相当复杂的关系;
- 完全控制要素变量的建模(要设置变量的指数);
- 需要仔细的设计。需要一些数据的先验知识才能选择最佳指数;
- 如果指数选择不当,容易过拟合。
岭回归的要点
- 这种回归的假设与最小平方回归相同,不同点在于最小平方回归的时候,我们假设数据的误差服从高斯分布使用的是极大似然估计(MLE),在岭回归的时候,由于添加了偏差因子,即w的先验信息,使用的是极大后验估计(MAP)来得到最终参数的;
- 它缩小了系数的值,但没有达到零,这表明没有特征选择功能。
Lasso回归的要点
岭回归和Lasso回归之间存在一些差异,基本上可以归结为L2和L1正则化的性质差异:
- 内置的特征选择(Built-in feature selection):这是L1范数的一个非常有用的属性,而L2范数不具有这种特性。这实际上因为是L1范数倾向于产生稀疏系数。例如,假设模型有100个系数,但其中只有10个系数是非零系数,这实际上是说“其他90个变量对预测目标值没有用处”。 而L2范数产生非稀疏系数,所以没有这个属性。因此,可以说Lasso回归做了一种“参数选择”形式,未被选中的特征变量对整体的权重为0。
- 稀疏性:指矩阵(或向量)中只有极少数条目非零。 L1范数具有产生具有零值或具有很少大系数的非常小值的许多系数的属性。
- 计算效率:L1范数没有解析解,但L2范数有。这使得L2范数的解可以通过计算得到。然而,L1范数的解具有稀疏性,这使得它可以与稀疏算法一起使用,这使得在计算上更有效率。
KNN算法的要点
优点:
- KNN可以处理分类问题,同时天然可以处理多分类问题,比如鸢尾花的分类;
- 简单,易懂,同时也很强大,对于手写数字的识别,鸢尾花这一类问题来说,准确率很高
- KNN还可以处理回归问题,也就是预测
缺点:
- 效率低,因为每一次分类或者回归,都要把训练数据和测试数据都算一遍,如果数据量很大的话,需要的算力会很惊人,但是在机器学习中,大数据处理又是很常见的一件事;
- 对训练数据依赖度特别大,虽然所有机器学习的算法对数据的依赖度很高,但是KNN尤其严重,因为如果我们的训练数据集中,有一两个数据是错误的,刚刚好又在我们需要分类的数值的旁边,这样就会直接导致预测的数据的不准确,对训练数据的容错性太差;
- 维数灾难,KNN对于多维度的数据处理也不是很好。
-
算法优点:
(1)简单,易于理解,易于实现,无需估计参数。
(2)训练时间为零。它没有显示的训练,不像其它有监督的算法会用训练集train一个模型(也就是拟合一个函数),然后验证集或测试集用该模型分类。KNN只是把样本保存起来,收到测试数据时再处理,所以KNN训练时间为零。