机器学习常用算法优缺点

https://www.cnblogs.com/Acceptyly/p/3562100.html

朴素贝叶斯的优点:

  对小规模的数据表现很好,适合多分类任务,适合增量式训练。

  缺点:

  对输入数据的表达形式很敏感。

决策树的优点:

  计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;

  缺点:

  容易过拟合(后续出现了随机森林,减小了过拟合现象);

Logistic回归优点:

  1、实现简单;

  2、分类时计算量非常小,速度很快,存储资源低;

  缺点:

  1、容易欠拟合,一般准确度不太高

  2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;

线性回归优点:

  实现简单,计算简单;

  缺点:

  不能拟合非线性数据;

KNN算法的优点:

  1. 思想简单,理论成熟,既可以用来做分类也可以用来做回归;

  2. 可用于非线性分类;

  3. 训练时间复杂度为O(n);

  4. 准确度高,对数据没有假设,对outlier不敏感;

  缺点:

  1. 计算量大;

  2. 样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);

  3. 需要大量的内存;

SVM算法优点:

  可用于线性/非线性分类,也可以用于回归;

  低泛化误差;

  容易解释;

  计算复杂度较低;

  缺点:

  对参数和核函数的选择比较敏感;

  原始的SVM只比较擅长处理二分类问题;

Boosting算法的优点:

  低泛化误差;

  容易实现,分类准确率较高,没有太多参数可以调;

  缺点:

  对outlier比较敏感;

k-means算法的优点:

  (1)k-means算法是解决聚类问题的一种经典算法,算法简单、快速。

  (2)对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常k<<n。这个算法通常局部收敛。

  (3)算法尝试找出使平方误差函数值最小的k个划分。当簇是密集的、球状或团状的,且簇与簇之间区别明显时,聚类效果较好。

   缺点:

  (1)k-平均方法只有在簇的平均值被定义的情况下才能使用,且对有些分类属性的数据不适合。

  (2)要求用户必须事先给出要生成的簇的数目k。

  (3)对初值敏感,对于不同的初始值,可能会导致不同的聚类结果。

  (4)不适合于发现非凸面形状的簇,或者大小差别很大的簇。

  (5)对于"噪声"和孤立点数据敏感,少量的该类数据能够对平均值产生极大影响。

原文地址:https://www.cnblogs.com/cxxBoo/p/13787690.html