在乳腺癌数据的调参
首先导入所用到的库
from sklearn.datasets import load_breast_cancer#数据
from sklearn.ensemble import RandomForestClassifier#分类器
from sklearn.model_selection import GridSearchCV#网格搜索
from sklearn.model_selection import cross_val_score#交叉验证
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
获取数据集
乳腺癌数据集有569条记录,30个特征,单看维度虽然不算太高,但是样本量非常少。过拟合的情况可能存
在
#数据集
data = load_breast_cancer()
data
data.data.shape#查看数据维度
data.target#标签
进行一次简单的建模,看看模型本身在数据集上的效果
rfc = RandomForestClassifier(n_estimators=100,random_state=90)#实例化
score_pre = cross_val_score(rfc,data.data,data.target,cv=10).mean()#交叉验证 取平均数
score_pre#准确度
评分很高,还不错,但是容易引起过拟合。
调参第一步,首先调n_setimators,画出学习曲线。
看见n_estimators在什么取值开始变得平稳,是否一直推动模型整体准确率的上升等信息,第一次的学习曲线,可以先用来帮助我们划定范围,我们取每十个数作为一个阶段,来观察n_estimators的变化如何引起模型整体准确率的变化
scorel = []
for i in range(0,200,10):
rfc = RandomForestClassifier(n_estimators=i+1
,n_jobs = -1
,random_state =