机器学习方法基础与概论(二)(分类算法总结)


常用分类算法的优缺点

算法 优点 缺点
Bayes 1. 所需估计的参数少,对于缺失数据不敏感;
2. 有着坚实的数学基础,以及稳定的分类效率
1. 需要假设属性之间相互独立,但这往往并不成立;
2. 需要知道先验概率;
3. 分类决策存在错误率
Decision Tree 1. 不需要任何领域的知识或参数假设;
2. 适合高维数据
3. 能够在短时间内处理大量数据,得到可行且效果较好的结果;
4. 能够同时处理数据型和常规属性
1. 对于各类样本数量不一致的数据,信息增益偏向于那些具有更多数量的样本;
2. 容易发生过拟合;
3. 忽略属性之间的关联性;
4. 不支持在线学习
SVM 1. 可以解决小样本下机器学习的问题;
2. 提高泛化性能;
3. 可以解决高维、非线性问题;
4. 避免神经网络结构选择和局部极小的问题
1. 对缺失数据敏感;
2. 内存消耗大,难以解释;
3. 运行速度较慢,调参复杂
KNN 1. 可用于非线性分类;
2. 核心思路简单,理论成熟,既可做分类也可以做回归;
3. 训练时间复杂度为 O ( n ) O(n) O(n)
4. 准确度高,对数据没有假设,对离群值不敏感
1. 计算量太大;
2. 对于样本分类不均衡的问题,会产生误判;
3. 需要大量的内存
4. 输出的可解释性不强
Logistic Regression 1. 简单,速度快,直接看到各个特征的权重;
2. 能容易的更新模型,吸收新的数据;
3. 想要一个概率框架,能够动态调整分类阈值
1. 特征处理过程复杂,需要进行归一化等特征工程
Neural Network 1. 分类准确率高;
2. 并行处理能力强;
3.分布式存储和学习能力强;
4. 鲁棒性较强
1. 需要大量参数;
2. 结果难以解释;
3. 训练时间过长
Adaboosting 1. 有很高精度;
2. 可以使用各种方法构建子分类器,Adaboosting 提供的是框架
3. 当使用简单分类器时,计算出的结果是可以理解的,而且弱分类器构造及其简单;
4. 流程简单,不用做特征选择;
5. 不用担心过拟合
对离群值比较敏感

分类算法的评估方法

几个常见的模型评价术语,假设分类目标只有两类,即正例和负例:

  1. True Positive (TP): 被正确的划分为正例的个数,即实际为正例且被分类器划分为正例的实例数;
  2. False Positive (FP): 被错误的划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
  3. False Negative (FN): 被错误的划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
  4. True Negative (TN): 被正确的划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

其中,True、False 描述的是分类器是否判断正确,Positive、Negative 是分类器的分类结果。

二分类算法评价指标:

  1. 正确率(accuracy),accuracy = (TP+TN)/(TP+FP+FN+TN)。
  2. 错误率(error rate),error rate = (FP+FN)/(TP+FP+FN+TN) = 1 - accuracy。
  3. 灵敏度(sensitivity),sensitivity = (TP)/(TP+FN),表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力。
  4. 特异性(specificity),specificity = (TN)/(TN+FP),表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。
  5. 精度(precision),precision = TP/(TP+FP),精度是精确性的度量,表示的是被分为正例的实例中实际为正例的比例。
  6. 召回率(recall),recall = TP/(TP+FN) = sensitivity,召回率是对覆盖面的度量,度量有多少正例被分类为正例。
  7. 综合考虑精度和召回率,可以得到新的评价指标 F1 分数,也称为综合分类率,F1 = 2 * precision * recall / ( precision+recall )。
  8. ROC 曲线是以灵敏度(真正例率)为纵轴,1-specificity(假正例率)为横坐标绘制的性能评价曲线。ROC 曲线越靠近左上角,说明其对应的模型越可靠,也可以通过 ROC 曲线下面的面积(Area Under Curve, AUC)来评价模型,AUC 越大,模型越可靠。
  9. PR 曲线是 Precision Recall Curve 的简称,描述的是 precision 和 recall 之间的关系,以 recall 为横坐标,precision 为纵坐标。该曲线对应的面积(AUC)实际上是目标检测中常用的评价指标平均精度(Average Precision, AP)。AP 越高,说明模型性能越好。

正确率能否很好的评估分类算法

正确率是一个很直观、很好的评价指标,但是有时候正确率高并不能完全代表一个算法就好。比如对某个地区进行地震预测,地震分类属性分为:0 代表不发生地震,1 代表发生地震。我们知道,不发生地震的概率是极大的。对于分类器而言,如果分类器不加思考,对每一个测试样例都划分为 0,达到 99% 的正确率。那么,真的发生地震时,这个分类器毫无察觉,后果将是灾难性的。显然,99% 的正确率不是我们想要的,出现这种现象的原因主要是数据分布不均衡,类别为 1 的数据太少。

假设在 1000 次预测中,共有 5 次预测发生了地震,真实情况中只有一次发生了地震,其他 4 次为误报。正确率由原来的 999/1000=99.9% 下降到了 996/1000=99.6%,但召回率由 0/1=0% 上升为 1/1=100%。虽然预测失误了 4 次,但真的地震发生时,分类器能预测对,没有错过,这样的分类器实际意义更大,正是我们想要的。


References

[1] 《深度学习500问》,谈继勇,电子工业出版社。

猜你喜欢

转载自blog.csdn.net/myDarling_/article/details/129484475