首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过GridSearchCV建立精密度模型进行召回优化

通过GridSearchCV建立精密度模型进行召回优化
EN

Stack Overflow用户
提问于 2018-02-28 17:08:27
回答 2查看 12.4K关注 0票数 1

给出了一个叫m的机器学习模型,我对伽马值执行了一个gridSearchCV,以优化回忆。我想回答这个问题:“网格搜索应该找到最适合召回的模型。这个模型的召回比精确性要好多少?”

所以我做了gridSearchCV:

代码语言:javascript
复制
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_)

这告诉我最好的模式是gamma=0.001,它的召回得分为1。

我想知道如何获得该模型的精度,以获得该模型的交易,因为GridSearchCV只有属性才能得到优化的结果。([Doc sklearn.GridSearchCV][1])

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-06 21:48:44

不确定是否有一种更简单/更直接的方法来实现这一点,但这种方法还允许您捕获“最佳”模型,以便稍后使用:

首先,你的简历是否符合培训数据:

代码语言:javascript
复制
grid_m_re = GridSearchCV(m, param_grid = grid_values, scoring = 'recall')
grid_m_re.fit(X_train, y_train)

完成后,您可以提取“最佳”模型(根据您在简历中的评分标准确定),然后任意使用它:

代码语言:javascript
复制
m_best = grid_m_re.best_estimator_

就你的具体情况而言:

代码语言:javascript
复制
from sklearn.metrics import precision_score

y_pred = m_best.predict(X_test)
precision_score(y_test, y_pred)
票数 9
EN

Stack Overflow用户

发布于 2018-03-29 05:48:41

如果你不同时优化C和伽马,你很容易就会过度适应。

如果在X轴上用C绘制SVC,在y轴上绘制伽马,并将其回忆为彩色你得到某种V字形,看这里

所以如果你做网格搜索,最好同时优化C和伽马。

问题是,对于小的C-值,通常得到最好的结果,而在那个区域,V形有它的尖头:不是很大,很难命中。

我最近说:

代码语言:javascript
复制
make a random grid of 10 points
      every point contains C, gamma, direction, speed
cut the dataset with stratifiedShuffleSplit
fit & estimate score with cross validation 

repeat:
  kill the worst two points
  the best two points spawn a kid
  move every point in its direction with just a little bit of random, 
  fit & estimate score with cross validation 
     (if a point notice it goes downward, turn around and half speed)
  until break criterion is hit

很有魅力。

以特征空间中的最大距离除以四作为初始速度,方向最大随机为pi/4。

交叉验证有点费钱。

灵感来源于本文。

..。还有另一个编辑:

我在循环中使用了10到20个循环来得到完美的点。如果您的数据集太大,无法进行多次匹配,请为前几次培训创建一个有代表性的子集.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49035011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档