随机森林模型大小与训练集大小有关:如何避免?

我正在训练一个随机森林模型,目的是将其保存下来用于预测(它将被下载并在外部环境中使用)。我希望这个模型尽可能小。

我读到了一些选项,可以减少模型的内存大小。

尽管如此,我不明白为什么训练集的大小会与模型的大小相关?毕竟,一旦森林的系数确定了,为什么还需要保留原始数据集呢?

df <- irismodel <- randomForest::randomForest(Species ~ ., data = df,                  localImp = FALSE,                 importance = FALSE,                 keep.forest = TRUE,                 keep.inbag = FALSE,                 proximity=FALSE,                 ntree = 25)object.size(model)/1000#> 73.2 bytesdf <- df[sample(nrow(df), 50), ]model <- randomForest::randomForest(Species ~ ., data = df,                  localImp = FALSE,                 importance = FALSE,                 keep.forest = TRUE,                 keep.inbag = FALSE,                 proximity=FALSE,                 ntree = 25)object.size(model)/1000#> 43 bytes

reprex包(v0.2.1)于2019-05-21创建

我尝试了上述提到的技巧来减少大小,但与训练集大小的作用相比,它们的效果微乎其微。有没有办法移除这些信息?


回答:

我认为你可以在拟合模型后移除一些部分:

object.size(model)/1000# 70.4 bytesmodel$predicted <- NULL # 移除预测值model$y <- NULL # 移除y# .. 可能其他部分也不需要object.size(model)/1000# 48.3 bytes

我使用predict(model, df)检查它是否仍然能工作,结果是可以的。

使用names(model)来检查model内的元素。

看起来$votes很大,而且你不需要它,这里是我安全移除的更多项目:

model$predicted <- NULLmodel$y <- NULLmodel$err.rate <- NULLmodel$test <- NULLmodel$proximity <- NULLmodel$confusion <- NULLmodel$localImportance <- NULLmodel$importanceSD <- NULLmodel$inbag <- NULLmodel$votes <- NULLmodel$oob.times <- NULLobject.size(model)/1000# 32.3 bytes

示例:

df <- irismodel <- randomForest::randomForest(Species ~ ., data = df,                  localImp = FALSE,                 importance = FALSE,                 keep.forest = TRUE,                 keep.inbag = FALSE,                 proximity=FALSE,                 ntree = 25)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注