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

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

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

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

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

CNN在猫狗图像二分类上的准确率不比随机好

我从Analytics Vidhya的教程中改编了一个…

将retrained_graph.pb转换为tflite模型

我无法将通过重新训练获得的retrained_grap…

ML.NET 无需拟合即可转换数据

简介 您好,我想进行一些数据准备操作,然后将DataV…

在单一特征数据框中查找质心与点之间的距离 – KMeans

我正在使用KMeans进行异常检测任务。 我使用的Pa…

默认的Adam优化器在tf.keras中不起作用,但字符串`adam`却可以

我一直在尝试TensorFlow v2 beta版,并…

将密集张量转换为不规则张量

我有一个稀疏张量,我将其转换为了密集张量。使用 tf….

发表回复

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