如何在 GridSearchCV(随机森林分类器 Scikit)上获得最佳估计器
How to get Best Estimator on GridSearchCV (Random Forest Classifier Scikit)
我是 运行 GridSearch CV,用于优化 scikit 中分类器的参数。完成后,我想知道哪些参数被选为最佳。
每当我这样做时,我都会得到一个 AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_'
,并且不知道为什么,因为它似乎是 documentation 上的一个合法属性。
from sklearn.grid_search import GridSearchCV
X = data[usable_columns]
y = data[target]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True)
param_grid = {
'n_estimators': [200, 700],
'max_features': ['auto', 'sqrt', 'log2']
}
CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5)
print '\n',CV_rfc.best_estimator_
产量:
`AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_'
你必须先拟合你的数据才能得到最好的参数组合。
from sklearn.grid_search import GridSearchCV
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
# Build a classification task using 3 informative features
X, y = make_classification(n_samples=1000,
n_features=10,
n_informative=3,
n_redundant=0,
n_repeated=0,
n_classes=2,
random_state=0,
shuffle=False)
rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True)
param_grid = {
'n_estimators': [200, 700],
'max_features': ['auto', 'sqrt', 'log2']
}
CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5)
CV_rfc.fit(X, y)
print CV_rfc.best_params_
再补充一点以保持清楚。
文件内容如下:
best_estimator_ : estimator or dict:
Estimator that was chosen by the search, i.e. estimator which gave highest score (or smallest loss if specified) on the left out data.
当使用各种参数调用网格搜索时,它会根据给定的评分器函数选择得分最高的那个。 Best estimator 给出了导致最高分的参数的信息。
所以这个只能在拟合数据后调用
我是 运行 GridSearch CV,用于优化 scikit 中分类器的参数。完成后,我想知道哪些参数被选为最佳。
每当我这样做时,我都会得到一个 AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_'
,并且不知道为什么,因为它似乎是 documentation 上的一个合法属性。
from sklearn.grid_search import GridSearchCV
X = data[usable_columns]
y = data[target]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True)
param_grid = {
'n_estimators': [200, 700],
'max_features': ['auto', 'sqrt', 'log2']
}
CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5)
print '\n',CV_rfc.best_estimator_
产量:
`AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_'
你必须先拟合你的数据才能得到最好的参数组合。
from sklearn.grid_search import GridSearchCV
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
# Build a classification task using 3 informative features
X, y = make_classification(n_samples=1000,
n_features=10,
n_informative=3,
n_redundant=0,
n_repeated=0,
n_classes=2,
random_state=0,
shuffle=False)
rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True)
param_grid = {
'n_estimators': [200, 700],
'max_features': ['auto', 'sqrt', 'log2']
}
CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5)
CV_rfc.fit(X, y)
print CV_rfc.best_params_
再补充一点以保持清楚。
文件内容如下:
best_estimator_ : estimator or dict:
Estimator that was chosen by the search, i.e. estimator which gave highest score (or smallest loss if specified) on the left out data.
当使用各种参数调用网格搜索时,它会根据给定的评分器函数选择得分最高的那个。 Best estimator 给出了导致最高分的参数的信息。
所以这个只能在拟合数据后调用