r与python做随机森林_为什么在R和Python之间得到不同的随机森林结果?

博主对比了使用R和Python实现的随机森林模型,发现两者在AUC值上存在显著差异。尽管尝试保持相同的超参数如ntree、mtry、nodesize一致,并调整类权重,但训练数据的AUC仍有显著差距。文章探讨可能的原因,询问是否遗漏了关键参数或代码有误,并提出R中classwt和Python中class_weight的使用问题。
摘要由CSDN通过智能技术生成

我试图比较使用R和Python的随机森林模型的结果。我比较的模型性能的关键度量是AUC(ROC曲线下的面积)。原因是AUC值代表了预测值(即概率)的分布。我确实发现了R和Python在AUC值上的一些显著差异。关于R和Python之间的差异,我确实通读了一些关于堆栈溢出的相关问题和答案。但是,我觉得我的问题应该和那些不同。在

我试图在R和Python中保持一些关键的超参数不变。它们是:将R中的ntree设置为Python中的n_estimators

在Python中将R中的mtry设置为max_features

将R中的nodesize设置为Python中的min_samples_leaf

在R和Python中将类权重设置为默认值。在R中,默认值是NULL。在Python中,默认值是None。在

在R中设置samplesize等于训练数据中的总行数,这是Python中的默认设置。在

在Python中将R中的replace设置为bootstrap,即两者都是True,或者两者都是{}。在

该问题是一个两类分类问题,有86个预测因子。每个预测因子都是连续的或布尔的。在R中没有使用因子类型预测因子。训练数据中有2008个观察值,测试数据中有335个观察值。两组数据的有效率相同,为79.7%。在

结果如下:

R的模型1结果

training_auc=0.9249080,test_auc=0.6308934

R的模型2结果

training_auc=0.9245665,test_auc=0.6364838

Python中的模型1结果

training_auc=0.80515863,test_auc=0.62

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值