IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 随机森林实例(R语言实现) -> 正文阅读

[人工智能]随机森林实例(R语言实现)

1.可以先查询一下路径(可以是数据所在的路径)

需要更改路径的话用setwd(“路径”)

2.安装需要的包并使用

install.package("包名")
library("包名")

randomForest:随机森林包

caret:常用于机器学习,数据处理,模型的结果展示。可用于数据的分割(训练集,测试集),查看混淆矩阵等等

pROC:衡量模型好坏

3.导入数据

如果用R自带的数据,以iris为例:有5个变量,3个种类

可以把Species作为因变量,用其它4个变量来预测种类

如果要调用本地的数据:

data?<- read.csv("./dataset.csv",header=T)

表示导入此路径的下的一个csv文件

4.划分数据集、测试集

用createDataPartition()来划分,p=0.8表示80%的数据作为训练集,20%作为测试集,一般的训练集和测试集是比例是7:3或者8:2

将trainlist中的数作为训练集trainset,将不在trainlist中的数作为测试集testset

训练集有120行,5个变量

测试集有30行,5个变量

变量数目要保持一致

5.构建模型

R语言可以自动识别因变量的类型,如果是因子,就是做分类模型

为了复现模型,设置set.seed(数字随便写)

?as.factor():R语言可以自动识别因变量的类型,如果是因子,就是做分类模型

data:训练集

importace:变量重要性排序

na.action:处理缺失值

na.pass:略过缺失值

na.omit:删除缺失值

?

错误率:5.83%

混淆矩阵:看对角线,setosa的40个都预测正确,versicolor错了4个,virgincica错了3个?

也可以画图看一下效果

plot(rf.train,main="randomforest origin")

?

6.预测

得到预测结果:

rf.test <- predict(rf.train,newdata=testset,type="class")

查看各项指标:

> rf.cf <- caret::confusionMatrix(as.factor(rf.test),as.factor(testset$Species))
> rf.cf

?Reference
Prediction ? setosa versicolor virginica
? setosa ? ? ? ? 10 ? ? ? ? ?0 ? ? ? ? 0
? versicolor ? ? ?0 ? ? ? ? 10 ? ? ? ? 1
? virginica ? ? ? 0 ? ? ? ? ?0 ? ? ? ? 9

上方的混淆矩阵显示:第一,二个种类的预测全对,第三个错了1个,错的是把virginica预测成bersicolor

Accuracy : 0.9667? ? ? ? ? #准确率是0.9667
? ? ? ? ? ? ? ? ?95% CI : (0.8278, 0.9992)??
? ? No Information Rate : 0.3333 ? ? ? ? ?
? ? P-Value [Acc > NIR] : 2.963e-13 ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? Kappa : 0.95? ? ? ? ? #越接近1说明模型效果越好

?Balanced Accuracy ? ? ? ? ? 1.0000 ? ? ? ? ? ?0.9750 ? ? ? ? ? 0.9500

#在样本数量不均匀时要看这个

7.ROC和AUC

前面需要的是类别,所以type="class"

而ROC需要一个概率,所以type=“prob”

> rf.test2 <- predict(rf.train,newdata = testset,type = "prob")
> head(rf.test2)

可以看到1,0.992说明很好

画ROC曲线

由于有三个变量,所以用多分类muticlass.roc(testser$Species,rf.test2)

如果只有两个变量,二分类调用roc(testset$Species, rf.test2)

> roc.rf <- multiclass.roc(testset$Species,rf.test2)
> roc.rf 

AUC值是0.995,很理想

??

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:31:02  更:2022-03-10 22:33:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 16:32:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码