我有一个作业,它要求我:
通过上一步改善模型的性能 超参数调整并使用网格选择最终的最优模型 根据您选择的一个或多个指标进行搜索。选择一个 给定任务的最佳模型(在一个任务上比较多个回归变量 特定领域)要求选择绩效指标,例如, R2(确定系数)和/或RMSE(均方根) 错误)以比较模型性能。
我将以下代码用于超参数调整:
CleanAPT <- subset(long, TotalPass == 3)
CheckUnsystematic(dat = CleanAPT, deltaq = 0.025, bounce = 0.1, reversals = 0, ncons0 = 2)
我发现学习率= 0.1和max_dept = 5
我选择了model_example = GradientBoostingRegressor()
parameters = {'learning_rate': [0.1, 1],
'max_depth': [5,10]}
model_best = GridSearchCV(model_example,
param_grid=parameters,
cv=2,scoring='r2').fit(X_train_new,y_train_new)
model_best.best_estimator_
作为性能指标,但是当我使用以下代码来提供最佳模型时,它对我的模型准确性没有任何影响:
scoring='r3'
你知道我的工作出了什么问题吗?
答案 0 :(得分:1)
尝试将random_state
设置为GradientBoostingRegressor()
的参数。例如,GradientBoostingRegressor(random_state=1)
。
该模型将在相同数据上产生相同结果。如果没有该参数,则将存在随机性,这使得比较不同的模型拟合变得困难。
在train-test-split上设置一个随机状态也将对此有所帮助。