1 python scikit-learn grid-search
给定一个名为“m”的机器学习模型 RBF SVC,我对 gamma 值执行了 gridSearchCV,以优化召回率。我想回答这个问题:“网格搜索应该找到最优化召回率的模型。这个模型的召回率比精度好多少?”
所以我做了 gridSearchCV:
grid_values = {'gamma': [0.001, 0.01, 0.05, 0.1, 1, 10, 100]}
grid_m_re = GridSearchCV(m, param_grid = grid_values, scoring = 'recall')
grid_m_re.fit(X_train, y_train)
y_decision_fn_scores_re = grid_m_re.decision_function(X_test)
print('Grid best parameter (max. recall): ', grid_m_re.best_params_)
print('Grid best score (recall): ', grid_m_re.best_score_)
Run Code Online (Sandbox Code Playgroud)
这告诉我最好的模型是 gamma=0.001,它的召回分数为 1。
我想知道如何获得此模型的精度以获取此模型的交易,因为 GridSearchCV 仅具有获取其优化目的的属性。( [Doc sklearn.GridSearchCV][1])
小智 7
不确定是否有更简单/更直接的方法来实现这一点,但这种方法还允许您捕获“最佳”模型以供以后使用:
首先你的简历适合训练数据:
grid_m_re = GridSearchCV(m, param_grid = grid_values, scoring = 'recall')
grid_m_re.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)
完成后,您可以拉出“最佳”模型(由CV 期间的评分标准确定),然后根据需要使用它:
m_best = grid_m_re.best_estimator_
Run Code Online (Sandbox Code Playgroud)
在您的具体情况下:
from sklearn.metrics import precision_score
y_pred = m_best.predict(X_test)
precision_score(y_test, y_pred)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8590 次 |
| 最近记录: |