【问题标题】:How to simulate data for classification to be used in random forest in R?如何模拟要在 R 中用于随机森林的分类数据?
【发布时间】:2019-12-23 17:59:06
【问题描述】:

我想知道如何模拟一些可在随机森林中用于 R 分类的数据?

如果是为了回归,我会这样做:

n <- 1000
p <- 3
e <- rnorm(n)
b <- 10

xVal <- matrix(rnorm(n*p), nrow=n)    # Create matrix wt 3 columns
colnames(xVal)<- paste0("x",1:p)      # Name columns
df <- data.frame(xVal)                # Create dataframe 

# Make x1 a useful predictor of y:
y <- df$x1 + e
df$y <- y 

看起来像这样:

head(df,3)
        x1         x2          x3            y
1 -0.6512695  0.3639012 -0.50231648 -0.296679882
2 -1.1393367 -0.8148882  0.33065078 -2.703743889
3 -0.2674592 -0.2670326 -0.15028117  1.024109832

其中 x1 是 y 的有用预测器,而 x2 和 x3 只是随机噪声。然后,我只需将随机森林回归模型拟合到他的数据。

我将如何实现类似的分类?

【问题讨论】:

  • 您似乎混淆了分析的目标(预测/估计与分类)与可用于实现目标的数据类型(连续正态与二项式/多项式分类)。我猜你有分类数据,并希望模拟具有与该数据类似的特征的东西。您应该描述特征:特征的数量及其类型和分布。

标签: r classification random-forest


【解决方案1】:
x1 = c(rnorm(500, 0,1), rnorm(500,3,1))
x2 = rnorm(1000)
x3 = rnorm(1000)
class= factor(rep(1:2, each=500))

plot(x1,x2, pch=20, col=class)

x1class 的有用预测器。 x2x3 只是噪音。

【讨论】:

  • 请原谅我的,可能是愚蠢的问题..我对这一切都比较陌生......但是当我模拟你所展示的数据然后将其提供给随机森林时,它运行回归随机森林而不是分类!?
  • 我不会在三个预测变量上运行随机森林,但如果必须,DF = data.frame(x1,x2,x3,class); RFModel = randomForest(class~., data=DF) 为我工作。 RFModel$predicted 给出预测的类。
  • 你能解释一下为什么 x1 是一个有用的类预测器吗?有什么关系?
  • 生成的数据是为了实现这一点。前 500 个点 (class=1) 分布在 x1=0 附近。第二个 500 点 (class=2) 分布在 x1=3 周围。如果你做一个散点图,你会看到区别plot(x1, x2, pch=20, col=class)基本上,如果(x11.5)它更有可能是 class=2。
猜你喜欢
  • 2015-05-19
  • 2020-08-16
  • 2020-03-31
  • 2020-04-27
  • 2016-06-24
  • 2020-02-25
  • 2017-08-11
  • 1970-01-01
  • 2019-09-05
相关资源
最近更新 更多