不同预测算法比较实例(R语言)
2021-03-23 20:47
85 查看
实例演示框架
此次我们使用的样本数据共538条,包括18个自变量和1个因变量组成。因变量取0时代表会发生异常,取1时代表不会发生异常。整体演示框架如下:
实例演示框架
step1
SMOTE方法平衡正负样本;
LOF方法剔除异常值;
step2
step3
分别使用随机森林、逻辑回归、
svm训练分类器;
绘制3个分类器的ROC曲线,
比较结果;
分步讲解
step1
导入数据后,观察y值的取值分布,发现整体样本较少,且正样本数与负样本数比例仅为4:10,因此需要扩充样本并进行正负样本平衡,这里我们使用SMOTE方法。
对数据扩充平衡后,使用LOF方法,删除异常点。根据下方异常值得分密度图,将得分超过3的点作为异常点剔除。
剔除后,数据分布如下:
step2
对处理后数据进行训练集与测试集划分,使用三种算法在训练集上构建分类器,在测试集上比较结果。
首先使用随机森林构建分类器。在构建随机森林分类器时,根据OBB误差最小选择合适的mtry值,再根据树的棵树与误差图选择合适的ntree值。
确定好参数后,训练最终分类器,并可得到变量重要性排序。
构建好随即森林分类器后,继续将逻辑回归及svm分类器构建完毕,然后将三个分类器分别对测试集进行预测。
step3
通过roc曲线比较三个分类器效果。在本例中,随即森林效果最好,逻辑回归效果最差。
完整代码
本例涉及到多个包,关于R语言包的安装方法可参见R语言包的安装。
相关文章推荐
- 机器学习(10.4)--手写数字识别的不同算法比较(4)--神经网络
- 朴素贝叶斯算法及不同特征值结果的比较
- 比较两份文件不同的算法
- 关于EMGU CV的那些事——3.不同角点检测算法比较
- oracle 高手过招,比较两种算法的不同。
- Java不同压缩算法的性能比较
- interest_points_comparison.hdev不同检测感兴趣点的算法比较 相关例程学习
- R语言︱文本挖掘——jiabaR包与分词向量化的simhash算法(与word2vec简单比较)
- Java不同压缩算法的性能比较
- 用5种分类算法预测小麦种类,比较得分情况
- 使用三重嵌套循环暴力查找勾股数及不同算法的比较(Pythagorean Triples)
- python训练贝叶斯算法进行某个实例的属实率预测
- Java不同压缩算法的性能比较
- Hive格式各种格式下不同压缩算法的比较
- 详细BP神经网络预测算法及实现过程实例
- Java不同压缩算法的性能比较
- 阶段性小结(一)---R语言回归案例实战&算法比较
- kaggle 泰坦尼克号生存预测——六种算法模型实现与比较
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)
- Java不同压缩算法的性能比较