模型预测控制的缺点_R语言比较机器学习分类方法的预测结果以及模型优缺点对比...

afce2524bb0a1214a50cebbc9ee03796.png

咕咕了那么久的第二篇,实在抱歉。

本篇是续上一篇的内容:

R语言实现分类算法 - https://zhuanlan.zhihu.com/p/99848813

首先是建立评估模型准确性的函数(在网上找的)

performance 

以下是各种分类方式的结果:

print('逻辑回归')
## [1] "逻辑回归"
performance(logit.perf)
## Sensitivity = 0.25
## Specificity = 0.97
## Positive Predictive Value =0.53
## Negative Predictive Value =0.89
## Accuracy = 0.87
print('逐步向后逻辑回归')
## [1] "逐步向后逻辑回归"
performance(logitstep.perf)
## Sensitivity = 0.25
## Specificity = 0.97
## Positive Predictive Value =0.53
## Negative Predictive Value =0.89
## Accuracy = 0.87
print('决策树')
## [1] "决策树"
performance(dtree.perf)
## Sensitivity = 0.63
## Specificity = 0.98
## Positive Predictive Value =0.81
## Negative Predictive Value =0.95
## Accuracy = 0.93
print('修整后的决策树')
## [1] "修整后的决策树"
performance(dtree_new.perf)
## Sensitivity = 0.57
## Specificity = 0.99
## Positive Predictive Value =0.89
## Negative Predictive Value =0.94
## Accuracy = 0.93
print('条件决策树')
## [1] "条件决策树"
performance(ctree.perf)
## Sensitivity = 0.61
## Specificity = 0.99
## Positive Predictive Value =0.89
## Negative Predictive Value =0.94
## Accuracy = 0.94
print('支持向量机')
## [1] "支持向量机"
performance(svm.perf)
## Sensitivity = 0.26
## Specificity = 1
## Positive Predictive Value =0.92
## Negative Predictive Value =0.9
## Accuracy = 0.9
print('随机森林')
## [1] "随机森林"
performance(forest.pref)
## Sensitivity = 0.62
## Specificity = 1
## Positive Predictive Value =0.99
## Negative Predictive Value =0.94
## Accuracy = 0.95
print('朴素贝叶斯')
## [1] "朴素贝叶斯"
performance(nb.pref)
## Sensitivity = 0.42
## Specificity = 0.97
## Positive Predictive Value =0.65
## Negative Predictive Value =0.91
## Accuracy = 0.89
print('KNN算法')
## [1] "KNN算法"
performance(knn.perf)
## Sensitivity = 0.3
## Specificity = 1
## Positive Predictive Value =0.93
## Negative Predictive Value =0.9
## Accuracy = 0.9

可以看出随机森林的敏感度和准确率较高。


算法总结(优点与缺点)

总结是通过不同的网页的内容汇集,有错误请指正!

逻辑回归

  • 实现简单,广泛的应用于工业问题上;
  • 分类时计算量非常小,速度很快,存储资源低;
  • 便利的观测样本概率分数;
  • 对逻辑回归而言,多重共线性并不是问题
  • 当特征空间很大时,逻辑回归的性能不是很好;
  • 容易欠拟合,一般准确度不太高
  • 不能很好地处理大量多类特征或变量;

决策树

  • 决策树易于理解和解释;
  • 数据的准备往往是简单或者是不必要的;(其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。)
  • 相对短的时间内能够对大型数据源做出可行且效果良好的结果。
  • 可以对有许多属性的数据集构造决策树
  • 决策树可很好地扩展到大型数据库中,同时它的大小独立于数据库的大小。
  • 对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征
  • 决策树处理缺失数据时的困难。
  • 过度拟合问题的出现。
  • 忽略数据集中属性之间的相关性

KNN算法

  • 简单、有效。
  • 重新训练的代价较低
  • 计算时间和空间线性于训练集的规模。
  • 该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分
  • 类别评分不是规格化的(不像概率评分)。
  • 输出的可解释性不强,例如决策树的可解释性较强。
  • 计算量较大。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。

K均值算法

  • 原理简单,容易实现
  • 可解释度较强
  • K值很难确定
  • 局部最优
  • 噪音和异常点敏感
  • 样本存在均值(限定数据种类)

支持向量机

  • 可以解决小样本情况下的机器学习问题。
  • 可以提高泛化性能
  • 可以解决高维问题
  • 可以解决非线性问题
  • 可以避免神经网络结构选择和局部极小点问题。
  • 对缺失数据敏感
  • 对非线性问题没有通用解决方案,必须谨慎选择Kernelfunction来处理。

朴素贝叶斯

  • 有着坚实的数学基础,以及稳定的分类效率。
  • NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。
  • 需要计算先验概率
  • 分类决策存在错误率
  • 对输入数据的表达形式很敏感

adaboost

  • adaboost是一种有很高精度的分类器
  • 当使用简单分类器时,计算出的结果是可以理解的,并且弱分类器的构造极其简单。
  • 简单,不用做特征筛选
  • 不容易发生overfitting
  • 对outlier比较敏感。

随机森林

  • 随机森林能处理很高维度的数据(也就是很多特征的数据),并且不用做特征选择
  • 在训练完之后,随机森林能给出哪些特征比较重要
  • 训练速度快,容易做成并行化方法(训练时,树与树之间是相互独)
  • 对于不平衡数据集来说,随机森林可以平衡误差。当存在分类不平衡的情况时,随机森林能提供平衡数据集误差的有效方法。
  • 随机森林抗过拟合能力比较强
  • 随机森林给人的感觉就像一个黑盒子,你无法控制模型内部的运行。只能在不同的参数和随机种子之间进行尝试。
  • 可能有很多相似的决策树,掩盖了真实的结果
  • 对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值