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

朴素贝叶斯
优点:
  对小规模的数据表现很好,适合多分类任务,适合增量式训练。
缺点:
  对输入数据的表达形式很敏感。


决策树
优点:
  计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
缺点:
  容易过拟合(后续出现了随机森林,减小了过拟合现象);


Logistic回归
优点:
  1、实现简单;
  2、分类时计算量非常小,速度很快,存储资源低;
缺点:
  1、容易欠拟合,一般准确度不太高
  2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;


线性回归
优点:
  实现简单,计算简单;
缺点:
  不能拟合非线性数据;


KNN算法
优点:
  1. 思想简单,理论成熟,既可以用来做分类也可以用来做回归;
  2. 可用于非线性分类;
  3. 训练时间复杂度为O(n);
  4. 准确度高,对数据没有假设,对outlier不敏感;
缺点:
  1. 计算量大;
  2. 样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
  3. 需要大量的内存;


SVM算法
优点:
  可用于线性/非线性分类,也可以用于回归;
  低泛化误差;
  容易解释;
  计算复杂度较低;
缺点:
  对参数和核函数的选择比较敏感;
  原始的SVM只比较擅长处理二分类问题;


Boosting算法
优点:
  低泛化误差;
  容易实现,分类准确率较高,没有太多参数可以调;
缺点:
  对outlier比较敏感;


k-means算法
优点:
  k-means算法是解决聚类问题的一种经典算法,算法简单、快速。
  对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常k<<n。这个算法通常局部收敛。
  算法尝试找出使平方误差函数值最小的k个划分。当簇是密集的、球状或团状的,且簇与簇之间区别明显时,聚类效果较好。
缺点:
  k-means只有在簇的平均值被定义的情况下才能使用,且对有些分类属性的数据不适合。
  要求用户必须事先给出要生成的簇的数目k。
  对初值敏感,对于不同的初始值,可能会导致不同的聚类结果。
  不适合于发现非凸面形状的簇,或者大小差别很大的簇。
  对于"噪声"和孤立点数据敏感,少量的该类数据能够对平均值产生极大影响。

猜你喜欢

转载自blog.csdn.net/figthingforadream/article/details/80562787