随机森林实例(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,很理想

  

  • 37
    点赞
  • 339
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
### 回答1: Python随机森林是一种集成学习算法,它通过构建多个决策树来进行预测。它将多个决策树的预测结果平均进行汇总,得到一种更具鲁棒性和准确性的预测模型。 Python随机森林算法需要进行超参调整,包括树的数量,最大深度,最小叶子节点数等。在构建随机森林之前,需要对数据进行预处理、特征选择和特征缩放等操作。 一个典型的Python随机森林实例可以是分类问题中的背景调查。假设我们有一份涉及到客户流失的数据集,我们希望根据客户的信息预测客户是否会流失。我们可以使用Python的Scikit-learn库构建一个随机森林分类器。首先,我们需要对数据进行预处理,包括缺失值处理、数据类型转换等。然后,我们需要进行特征选择和特征缩放。接着,我们可以使用交叉验证技术来调整模型的参数,选择最优的随机森林模型。最后,我们可以使用测试数据集来评估模型的表现,计算出准确率、精度和召回率等指标,以此来判断模型的预测能力。 总的来说,Python随机森林是一种强大的预测模型,可以应用于多种任务中,例如分类、回归等。在实际应用中,我们需要仔细处理数据、调整参数,并进行合理的评估。 ### 回答2: 随机森林是一种基于决策树的集成学习算法,具有较高的准确性和泛化能力。在Python中,可以通过scikit-learn库实现随机森林算法。 下面是一个简单的随机森林实例,用于预测股票市场的涨跌: ```python import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # 读取股票市场数据 df = pd.read_csv('stock_market.csv') # 对数据进行特征工程和预处理 ... # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 建立随机森林模型并训练 rf = RandomForestClassifier(n_estimators=100, random_state=42) rf.fit(X_train, y_train) # 对测试集进行预测 y_pred = rf.predict(X_test) # 计算准确率和其他评价指标 ... ``` 在这个实例中,我们首先读取了股票市场数据,并对数据进行了特征工程和预处理。然后,我们将数据划分为训练集和测试集,并使用随机森林模型进行训练和预测。最后,通过计算准确率和其他评价指标来评估模型的性能。 需要注意的是,在实际应用中,还应该对模型进行调参和优化,以提高其性能和泛化能力。 ### 回答3: Python随机森林是一种常用的机器学习算法,它是由多个决策树组成的集成模型。每个决策树都是通过在不同的样本和特征子集上进行训练得到的,因此随机森林可以有效地避免过拟合问题。 基于Python的随机森林实例通常包括以下几个步骤: 1. 收集数据:收集合适的数据作为训练集,这些数据应该包含足够的特征信息以及正确的标签。 2. 准备数据:对数据进行清洗和预处理,包括处理空值、调整数据类型等,以便于算法的处理。 3. 构建模型:使用scikit-learn库中的RandomForestClassifier模块构建随机森林模型,设置适当的参数(如决策树数量、特征子集大小等)。 4. 训练模型:使用训练集进行模型训练,随机森林模型会自动训练多个决策树,并对每个模型进行评估。 5. 评估模型:使用测试集对模型进行评估,通常使用准确率、精确率、召回率等指标来评估模型性能。 6. 使用模型:使用训练好的随机森林模型对新的数据进行预测,得出各类别的概率。 Python随机森林模型广泛应用于分类、回归、特征选择等任务,例如可以用于股票预测、医学诊断、自然语言处理等领域。在使用中,我们需要根据实际情况调整模型参数,以达到最好的模型性能和预测效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值