常见机器学习算法的优缺点及如何选择1

目录

常见机器学习算法的优缺点

1. 线性回归Linear regression.

2. 逻辑回归Logistic regression.

3. 支持向量机SVM 

4. 神经网络Neural Network 

5. Naive Bayes

6. 决策树Decision Tree

7. 随机森林Random Forest

8. KNN

9. K-mean

如何选择算法


常见机器学习算法的优缺点

1. 线性回归Linear regression.

优点:简单,上手快,对线性可分的数据有效,正则和交叉验证法可以避免过拟合。

缺点:对异常值敏感,很容易过拟合或者欠拟合. 无法处理非线性数据。

2. 逻辑回归Logistic regression.

优点:简单,上手快,数据做不做预处理都无所谓,输出数据自动落入(0,1)区间,对输入数据的微小波动不敏感,可以通过数值分析方法进行模型优化。

缺点:非线性数据表现不好,对于特征highly correlated的表现不好, 特征必须有明确指向性。

3. 支持向量机SVM 

优点:线性非线性数据都可以处理,高维数据表现不错,当类型明确可分的时候是最优选择,异常值影响很小。

缺点:慢, 当类型互相重叠时候表现不太好,kernel选择很重要,参数选择也很关键。

4. 神经网络Neural Network 

优点:整体表现良好, 输入数据的波动影响小

缺点:慢,隐藏层选择很重要

5. Naive Bayes

优点:快,无需训练时间,较少的训练数据表现相对更好。irrelevant features 影响非常小,高维数据表现好。

缺点:不适合做预测, 输入数据必须代表整体分布不然会导致结果不好。

6. 决策树Decision Tree

优点:不需要预处理数据,可以处理部分数据丢失的情况,可以可视化,容易理解。

缺点:容易过拟合,输入数据的微小波动会引起输出的大幅变化,不平衡/高维数据训练时间长。

7. 随机森林Random Forest

优点:人多力量大,可以保证bias的情况下降低variance,可以处理高维数据,不会出现过拟合。

缺点:具体过程无法可视化,特征选择比较关键。

人多力量大,可以保证bias的情况下降低variance,可以处理高维数据,不会出现过拟合。

缺点:具体过程无法可视化,特征选择比较关键。

8. KNN

优点:简单好上手,对输入数据无要求,参数少,只有一个K

缺点:大量数据处理慢,数据量大+特征多的时候表现不好,imbalanced数据表现不好,无法处理数据丢失。

9. K-mean

优点:可处理大量数据,保证收敛,对新数据适应良好。

缺点:人工选择K, 初始数据完全影响整个模型的结果,高维数据速度慢,对outliers敏感。

如何选择算法

1. 看训练数据

  • 数据小,或者数据high bias/ low variance 可以选择线性回归、逻辑回归、Naïve Bayes, 或者SVM无kernel。
  • 数据量大或low bias / high variance 可选择KNN, SVM高斯kernal、决策树。
  • 考虑数据是线性还是非线性,相关还是不相关,然后根据上面的模型优缺点进行选择

2. 根据训练时间确定

看个人接受程度

3. 根据数据特征

特征多还是少,特征是有明确指向性还是没有,特征之间有无重叠,都可以根据具体要求选择合适的模型。

参考来源:https://www.zhihu.com/question/26726794/answer/1526236102
 

你可能感兴趣的:(Deep,learning,python,机器学习,算法)