我试着用XGBoost做一个分类器,我用RandomizedSearchCV来拟合它。
下面是我的函数代码:
def xgboost_classifier_rscv(x,y):
from scipy import stats
from xgboost import XGBClassifier
from sklearn.metrics import fbeta_score, make_scorer, recall_score, accuracy_score, precision_score
from sklearn.model_selection import S
我知道GridSearchCV可以接受多个输入作为他们的记分器,但是我必须选择一个使用refit来优化的度量。
就像这样:
grid_search = GridSearchCV(
estimator=classifier,
param_grid=parameters,
scoring=['accuracy', 'f1', 'precision', 'recall'],
refit="accuracy", # Or any other value from `scoring`
我的目标是得到良好的拟合模型(培训和测试集的指标差异只有1% - 5%)。这是因为随机森林往往过于适合(默认的params训练集1级的f1分数为1.0)
问题是,GridSearchCV只考虑测试集度量。它无视火车设定的指标。因此,结果仍然是一个过度拟合的模型。
我所做的:
我试着访问cv_results_属性,但是有大量的输出,我不知道如何读取它,而且我认为我们不应该手动这样做。
密码
# model definition
rf_cv = GridSearchCV(estimator=rf_clf_default,
# what the user c
我正在使用GridSearchCV来训练包含多个参数的数据集。使用对象上的方法,我可以得到“最佳”参数集(基于评分函数)。我希望能够得到一个(或多个)的其他模式。有办法吗?这样就得救了?如果是这样的话,有什么办法可以得到这些呢?
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.linear_model import SGDClassifier
from sklearn.model_selection import GridSearchCV
bc = datasets.load_b
我最近使用sklearn.model_selection.GridSearchCV测试了许多超参数组合。我想知道是否有一种方法可以调用在该过程中训练过的所有以前的估计器。 search = GridSearchCV(estimator=my_estimator, param_grid=parameters)
# `my_estimator` is a gradient boosting classifier object
# `parameters` is a dictionary containing all the hyperparameters I want to try 我知道我可以
我想打印精度,回忆一下网格中使用的每一个参数,如何做到这一点。
我的Gridsearch代码
from sklearn.grid_search import GridSearchCV
rf1=RandomForestClassifier(n_jobs=-1, max_features='sqrt')
#fit_rf1=rf.fit(X_train_res,y_train_res)
# Use a grid over parameters of interest
param_grid = {
"n_estimators" : [50,
我正在为一个科学学习教程研究load_boston()数据。我遇到了这个属性错误:
AttributeError 'GridSearchCV' object has no attribute 'cv_results_'
有没有人知道是否有窃听器?我正在使用1.1.1版本的科学知识-学习。
import sklearn
from sklearn.datasets import load_boston
from sklearn.neighbors import KNeighborsRegressor
from sklearn.preprocessing import