为了账号安全,请及时绑定邮箱和手机立即绑定

python中的多随机回归模型

python中的多随机回归模型

缥缈止盈 2022-11-18 18:19:23
在 X_train 集和 Y_train 标签上构建多个随机森林回归器,其中 max_depth 参数值从 3 变为 5,并将 n_estimators 设置为 50、100、200 值之一。在测试数据集上评估每个模型的准确性。提示:使用 for 循环以最高精度打印模型的 max_depth 和 n_estimators 值。注意:以元组(a,b)的形式打印参数值。a 指的是 max_depth 值,b 指的是 n_estimators到目前为止,这是我尝试过的:boston= datasets.load_boston()X_train, X_test, Y_train, Y_test = train_test_split(boston.data, boston.target, random_state=30)for m in range(3,6) :    rf_reg = RandomForestRegressor(n_estimators =100, max_depth=m)    rf_reg = rf_reg.fit(X_train, Y_train)     print(rf_reg.score(X_test,Y_test))这给了我 3 个模型的准确度分数,但我无法单独获取最高精度的参数。我可以使用rf_reg.get_params(),但它给了我所有的参数。我只想要max_depth和n_estimators最高分的一个
查看完整描述

4 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

max_reg = None  #<--- add this to represent the regressor with maximum score

max_score = 0   #<--- add this to represent maximum score

t=() # <--- add this to tuple declaration

c_estimators = 100 

for m in range(3,6) :

    rf_reg = RandomForestRegressor(n_estimators =c_estimators , max_depth=m)

    rf_reg = rf_reg.fit(X_train, Y_train) 

    rf_reg_score = rf_reg.score(X_test,Y_test)

    t = (m,c_estimators,rf_reg.score) # tuple assignment

    rf_reg_score = t[2]

    print (t)

    if rf_reg_score > max_score :

        max_score = rf_reg_score

        max_reg = rf_reg

        t = (m,c_estimators) # tuple assignment

print (t)


查看完整回答
反对 回复 2022-11-18
?
千巷猫影

TA贡献1829条经验 获得超7个赞

您将获得 (5, 100) 组合的 max_score。根据问题,他们要求执行总共 9 种组合。3×3。



查看完整回答
反对 回复 2022-11-18
?
www说

TA贡献1775条经验 获得超8个赞

如何以元组 (a, b) 的形式打印参数值。a 指的是 max_depth 值,b 指的是 n_estimators



查看完整回答
反对 回复 2022-11-18
?
冉冉说

TA贡献1877条经验 获得超1个赞

import sklearn.datasets as datasets

import sklearn.model_selection as model_selection

import numpy as np

from sklearn.model_selection import train_test_split

from sklearn.ensemble import RandomForestRegressor


np.random.seed(100)


boston=datasets.load_boston()

X_train,X_test,Y_train,Y_test=train_test_split(boston.data,boston.target,random_state=30)

print(X_train.shape)

print(X_test.shape)


rf_reg = RandomForestRegressor()

rf_reg = rf_reg.fit(X_train, Y_train)

print(rf_reg.score(X_train,Y_train))

print(rf_reg.score(X_test,Y_test))


print(rf_reg.predict(X_test[0:2]))

li=[]

nestimators=100

for maxdepth in range(3,6) :

    rf_reg1 = RandomForestRegressor(max_depth=maxdepth,n_estimators=nestimators)

    rf_reg1 = rf_reg1.fit(X_train, Y_train)  

    li.append(rf_reg1.score(X_test,Y_test))

maxValue=max(li)

maxIndex=li.index(maxValue)

a=(maxIndex+3,nestimators)

print(a)

#This code 100% works ,i tested and got exact output and cleared HandsOn


查看完整回答
反对 回复 2022-11-18
  • 4 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号