【机器学习实战】随机森林在乳腺癌数据上的调参

1. 数据集
  • 特征值
    在这里插入图片描述
  • 目标值
    在这里插入图片描述
    在这里插入图片描述
    共569个样本,30维特征。

2.代码实现

2.1 未调参时的代码及结果
# 获取数据集
data = load_breast_cancer()
# 建模
rfc = RandomForestClassifier(n_estimators=100, random_state=90) # 交叉验证
rfc_score = cross_val_score(rfc, data.data, data.target, cv=10).mean()
rfc_score

结果:
在这里插入图片描述

2.2 调参
2.2.1 粗略调节n_estimators
# 粗略调参
score1 = []
for i in range(0,200,10):
    rfc = RandomForestClassifier(n_estimators=i+1
                                ,n_jobs=-1
                                ,random_state=90)
    score = cross_val_score(rfc, data.data, data.target, cv=10).mean()
    #  将20次交叉验证结果(每次取均值)存入score1
    score1.append(score)
print(max(score1), (score1.index(max(score1)))*10+1)

plt.figure(figsize=[20,5])
plt.plot(range(1,201,10), score1)
plt.show()

结果:
在这里插入图片描述

2.2.2 上一步得到41左右score最优,缩小范围继续调参
# 细化范围,继续调参
score2 = []
for i in range(35,45):
    rfc = RandomForestClassifier(n_estimators=i
                                ,n_jobs=-1,
                                random_state=90)
    score = cross_val_score(rfc, data.data, data.target, cv=10).mean()
    score2.append(score)
print(max(score2), ([*range(35, 45)][score2.index(max(score2))]))
plt.figure(figsize=[20,5])
plt.plot(range(35, 45), score2)
plt.show()

结果:
在这里插入图片描述

2.2.3 调max_depth(网格搜索)
# 调max_depth(网格搜索)
param_grid = {'max_depth':np.arange(1,20,1)}
rfc = RandomForestClassifier(n_estimators=39
                            ,random_state=90)
GS = GridSearchCV(rfc, param_grid=param_grid, cv=10)
GS.fit(data.data, data.target)

结果:
在这里插入图片描述

2.2.4 调max_features
param_grid = {'max_features':np.arange(5,30,1)}
rfc = RandomForestClassifier(n_estimators=39,random_state=90)
GS = GridSearchCV(rfc,param_grid,cv=10)
GS.fit(data.data,data.target)

结果:
在这里插入图片描述
综合2.2.3和2.2.4的结果,说明在调整完n_estimators为39之后,模型就已经达到最优状态了,无需继续调参了。


【PS】这是我看看sklearn菜菜的视频学习笔记~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做一只快乐的修狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值