网格搜索与学习曲线的不同

应用学习曲线

有一些参数是没有参照的,很难说清楚一个范围,这种情况下我们使用学习曲线,看趋势从曲线跑出的结果中选取一个更小的空间,再跑曲线。对于大型数据集。可以尝试从1000来构建,先输入1000,每100个叶子一个区间,再逐渐缩小范围。常使用学习曲线的有:n_estimators(想要知道趋势)、max_depth、max_leaf_nodes

param_grid = {'n_estimators':np.arange(0, 200, 10)}
param_grid = {'max_depth':np.arange(1, 20, 1)}
   
param_grid = {'max_leaf_nodes':np.arange(25,50,1)}

应用网格搜索:

有一些参数是可以找到一个范围的,或者说我们知道他们的取值和随着他们的取值,模型的整体的取值,模型的整体准确率会如何变化,这样的参数可以直接跑网格搜索。常使用网格搜索的有:criterion、min_samples_split、min_samples_leaf、max_features

param_grid = {'criterion':['gini', 'entropy']}
param_grid = {'min_samples_split':np.arange(2, 2+20, 1)}
param_grid = {'min_samples_leaf':np.arange(1, 1+10, 1)}
 
param_grid = {'max_features':np.arange(5,30,1)}
调参学习曲线是指在机器学习模型中,通过改变模型的超参数来寻找最佳的参数组合,以达到最好的性能。Python中有多种方法可以进行调参学习曲线的绘制和分析。 一种常用的方法是使用GridSearchCV或RandomizedSearchCV进行网格搜索或随机搜索。这些方法可以自动遍历给定的超参数组合,并通过交叉验证来评估每个组合的性能。然后,可以绘制学习曲线来可视化不同超参数值对模型性能的影响。 另一种方法是使用可视化库如matplotlib或seaborn来绘制学习曲线学习曲线通常以超参数值为横坐标,性能指标(如准确率、F1分数等)为纵坐标。通过绘制不同超参数值下的性能曲线,可以找到最佳的超参数组合。 以下是一个示例代码,展示了如何使用GridSearchCV和matplotlib来绘制调参学习曲线: ```python from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC import matplotlib.pyplot as plt # 定义超参数范围 param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [0.1, 0.01, 0.001, 0.0001]} # 创建SVC模型 model = SVC() # 创建GridSearchCV对象 grid_search = GridSearchCV(model, param_grid, cv=5) # 拟合数据 grid_search.fit(X, y) # 获取不同超参数组合下的性能指标 results = grid_search.cv_results_ mean_scores = results['mean_test_score'] # 绘制学习曲线 plt.figure(figsize=(10, 6)) plt.plot(range(len(mean_scores)), mean_scores) plt.xticks(range(len(mean_scores)), param_grid['C']) plt.xlabel('C') plt.ylabel('Mean Test Score') plt.title('Learning Curve') plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值