class sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=1, iid=True, refit=True, cv=None, verbose=0, pre_dispatch='2*n_jobs', error_score='raise', return_train_score=True)

1.estimator:

  传入估计器与不需要调参的参数,每一个估计器都需要一个scoring参数。

2.param_grid:

  需要最优化的参数的取值,值为字典或者列表。

3.scoring:

  模型评价标准,默认None,这时需要使用score函数,根据所选模型不同,评价准则不同。字符串或者自定义形如:scorer(estimator, X, y);如果是None,则使用estimator的误差估计函数。

4.n_jobs

  n_jobs: 并行数,int:个数,-1:跟CPU核数一致。

5.refit=True

  默认为True,程序将会以交叉验证训练集得到的最佳参数,重新对所有可用的训练集与开发集进行,作为最终用于性能评估的最佳模型参数。即在搜索参数结束后,用最佳参数结果再次fit一遍全部数据集。

6.pre_dispatch=‘2*n_jobs’

  指定总共分发的并行任务数。当n_jobs大于1时,数据将在每个运行点进行复制,这可能导致OOM,而设置pre_dispatch参数,则可以预先划分总共的job数量,使数据最多被复制pre_dispatch次。

from sklearn.datasets import load_iris
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import classification_report X,y = load_iris(return_X_y=True)
df_X = pd.DataFrame(X,columns=list("ABCD")) #gridSearchCV
parameters = [{'n_estimators':[10,100,1000],
'criterion':['entropy','gini'],
'max_depth':[10,50,100,200],
'min_samples_split':[2,5,10],
'min_weight_fraction_leaf':[0.0,0.1,0.2,0.3,0.4,0.5]}] parameters = [{'n_estimators':[10,20]}] #scoring="precision"或者"recall"或者"roc_auc","accuracy"或者None clf = GridSearchCV(RandomForestClassifier(), parameters,cv=2,scoring="accuracy")
clf.fit(df_X,y) clf.cv_results_
# =============================================================================
# {'mean_fit_time': array([0.0089916 , 0.01695275]),
# 'mean_score_time': array([0.00099409, 0.00148273]),
# 'mean_test_score': array([0.94666667, 0.96 ]),
# 'mean_train_score': array([0.98666667, 1. ]),
# 'param_n_estimators': masked_array(data=[10, 20],
# mask=[False, False],
# fill_value='?',
# dtype=object),
# 'params': [{'n_estimators': 10}, {'n_estimators': 20}],
# 'rank_test_score': array([2, 1]),
# 'split0_test_score': array([0.96, 0.96]),
# 'split0_train_score': array([1., 1.]),
# 'split1_test_score': array([0.93333333, 0.96 ]),
# 'split1_train_score': array([0.97333333, 1. ]),
# 'std_fit_time': array([1.01363659e-03, 9.53674316e-07]),
# 'std_score_time': array([4.17232513e-06, 5.05685806e-04]),
# 'std_test_score': array([0.01333333, 0. ]),
# 'std_train_score': array([0.01333333, 0. ])}
# =============================================================================
clf.best_estimator_
# =============================================================================
# RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
# max_depth=None, max_features='auto', max_leaf_nodes=None,
# min_impurity_decrease=0.0, min_impurity_split=None,
# min_samples_leaf=1, min_samples_split=2,
# min_weight_fraction_leaf=0.0, n_estimators=20, n_jobs=1,
# oob_score=False, random_state=None, verbose=0,
# warm_start=False)
# ============================================================================= clf.best_score_
# =============================================================================
# Out[42]: 0.96
#
# ============================================================================= clf.best_params_ # =============================================================================
# Out[43]: {'n_estimators': 20}
#
# =============================================================================
clf.grid_scores_ # =============================================================================
# [mean: 0.94667, std: 0.01333, params: {'n_estimators': 10},
# mean: 0.96000, std: 0.00000, params: {'n_estimators': 20}]
# =============================================================================

参考:http://blog.51cto.com/emily18/2088128

sklearn的GridSearchCV例子的更多相关文章

  1. sklearn参数优化方法

    学习器模型中一般有两个参数:一类参数可以从数据中学习估计得到,还有一类参数无法从数据中估计,只能靠人的经验进行指定,后一类参数就叫超参数 比如,支持向量机里的C,Kernel,gama,朴素贝叶斯里的 ...

  2. 《转》sklearn参数优化方法

    sklearn参数优化方法  http://www.cnblogs.com/nolonely/p/7007961.html   学习器模型中一般有两个参数:一类参数可以从数据中学习估计得到,还有一类参 ...

  3. GridSearchCV 与 RandomizedSearchCV 调参

    GridSearchCV    GridSearchCV的名字其实可以拆分为两部分,GridSearch和CV,即网格搜索和交叉验证. 这两个概念都比较好理解,网格搜索,搜索的是参数,即在指定的参数范 ...

  4. sklearn参数优化

    学习器模型中一般有两个参数:一类参数可以从数据中学习估计得到,还有一类参数无法从数据中估计,只能靠人的经验进行指定,后一类参数就叫超参数 比如,支持向量机里的C,Kernel,gama,朴素贝叶斯里的 ...

  5. 机器学习之sklearn——SVM

    sklearn包对于SVM可输出支持向量,以及其系数和数目: print '支持向量的数目: ', clf.n_support_ print '支持向量的系数: ', clf.dual_coef_ p ...

  6. 使用sklearn优雅地进行数据挖掘【转】

    目录 1 使用sklearn进行数据挖掘 1.1 数据挖掘的步骤 1.2 数据初貌 1.3 关键技术2 并行处理 2.1 整体并行处理 2.2 部分并行处理3 流水线处理4 自动化调参5 持久化6 回 ...

  7. 使用sklearn优雅地进行数据挖掘

    目录 1 使用sklearn进行数据挖掘 1.1 数据挖掘的步骤 1.2 数据初貌 1.3 关键技术2 并行处理 2.1 整体并行处理 2.2 部分并行处理3 流水线处理4 自动化调参5 持久化6 回 ...

  8. 【转】使用sklearn优雅地进行数据挖掘

    这里是原文 目录 使用sklearn进行数据挖掘 1.1 数据挖掘的步骤 1.2 数据初貌 1.3 关键技术并行处理 并行处理 2.1 整体并行处理 2.2 部分并行处理流水线处理自动化调参持久化回顾 ...

  9. 转载:使用sklearn进行数据挖掘

    目录 1 使用sklearn进行数据挖掘 1.1 数据挖掘的步骤 1.2 数据初貌 1.3 关键技术2 并行处理 2.1 整体并行处理 2.2 部分并行处理3 流水线处理4 自动化调参5 持久化6 回 ...

随机推荐

  1. DIY微型操作系统(1)—— 开发的准备

    这个连载是根据<30天自制操作系统>这本书所写 只是类似于补充之类的东西,要详细的讲解,还请参照书上的内容 所以,首先我们要感谢作者川合秀实先生!(鞠躬) 为什么我想写这么一个补充的? 因 ...

  2. Android输入法框架系统(下)

    程序焦点获取事件导致输入法显示 从上面可以知道程序获得焦点时,程序端会先间接的调用IMMS的startInput将焦点View绑定到输入法,然后会调用IMMS的windowGainFocus函数,这个 ...

  3. 解决Android4.3版本下,手机短彩接收中文文件名附件,中文名字的附件无法保存(第二步:解决从从数据库中读取附件文件名,并在长按后保存附件时,中文乱码导致的无法保存附件)

    从第一步我们发现,在第一步修改之后,在短彩绘画界面中中文附件名的附件已无法显示,经过打印堆栈我们发现还是中文乱码在作祟.下面我们接着进行分析,这次我们从UI层往逻辑处理层进行分析.首先我们找到保存附件 ...

  4. 解压Ubuntu的initrd.img的方法

    Ubuntu的initrd.img可以在/boot中找到,通常文件名后面还跟有很长的一串版本号. 为了保险起见,不直接操作原文件,而是把它复制到自己的家目(home)录中.如果你是用root帐号登录的 ...

  5. Try .NET

    微软新出的好东西——Try .NET,该平台可以让开发者直接在线上编写并运行 .NET 代码. 没啥好说的进去就完事了 平台链接:https://try.dot.net/?fromGist=df448 ...

  6. 拒绝了对对象 '****'(数据库 '******',所有者 '***')的 SELECT 权限

    数据库(xxx) --->安全性---->架构---->dbo(属性)--->权限--->添加--->浏览-->public 添加 select 等您需要的权 ...

  7. java语法基础练习

    1.阅读示例: EnumTest.java,并运行.分析结果 代码: public class EnumTest { public static void main(String[] args) { ...

  8. 线上服务内存OOM问题定位[转自58沈剑]

    相信大家都有感触,线上服务内存OOM的问题,是最难定位的问题,不过归根结底,最常见的原因: 本身资源不够 申请的太多 资源耗尽 58到家架构部,运维部,58速运技术部联合进行了一次线上服务内存OOM问 ...

  9. (转)C++ 容器及选用总结

    目录 ==================================================== 第一章 容器 第二章 Vector和string 第三章 关联容器 第四章 迭代器 第五 ...

  10. jquery选择器总结2

    1.JQuery的概念 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用一些简单的代码实现一些复杂的JS效果. 2.JQuery实现了 代码的分离 不用再网页 ...