python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文
机器学习中存在两类参数:通过训练数据学习得到的参数;---可认为是辨识得到的参数,例如模型系数;
在学习算法中单独需要优化的参数--超参、调优参数;---算法自身的系数,例如决策树的深度参数;
Grid search:根据超参列表,穷举搜索,找出最优值;缺点计算量很大;改进办法:randomized search;
例:支持向量机流水线的训练与调优import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.learning_curve import learning_curve
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
from sklearn.learning_curve import validation_curve
from sklearn.grid_search import GridSearchCV
from sklearn.svm import SVC
###############################################################################
df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data', header=None)
#将数据分成训练集和测试集
from sklearn.preprocessing import LabelEncoder
X = df.loc[:, 2:].values
y = df.loc[:, 1].values
le = LabelEncoder()
y = le.fit_transform(y)
#print(le.transform(['M', 'B']))
#将数据分成训练集和测试集
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state=1)
###############################################################################
pipe_svc = Pipeline([('scl', StandardScaler()),('clf',SVC(random_state=1))])
param_range = [0.0001, 0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0]
param_grid = [{'clf__C':param_range, 'clf__kernel':['linear']},
{'clf__C':param_range, 'clf__gamma':param_range,'clf__kernel':['rbf']},]
gs = GridSearchCV(estimator=pipe_svc,
param_grid=param_grid,
scoring='accuracy',
cv=10,
n_jobs=-1)
gs = gs.fit(X_train, y_train)
print(gs.best_score_)
print(gs.best_params_)
嵌套交叉验证:如果在不同机器学习算法之间进行选择,推荐使用---嵌套交叉验证,而非单独使用k折交叉验证;
在嵌套交叉验证的外围循环中,将数据分为训练块和测试块;
在模型选择的内部循环中,基于训练块,利用k折交叉验证;
完成模型选择后,使用测试块验证模型性能;
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.learning_curve import learning_curve
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
from sklearn.learning_curve import validation_curve
from sklearn.grid_search import GridSearchCV
from sklearn.svm import SVC
###############################################################################
df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data', header=None)
#将数据分成训练集和测试集
from sklearn.preprocessing import LabelEncoder
X = df.loc[:, 2:].values
y = df.loc[:, 1].values
le = LabelEncoder()
y = le.fit_transform(y)
#print(le.transform(['M', 'B']))
#将数据分成训练集和测试集
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state=1)
###############################################################################
pipe_svc = Pipeline([('scl', StandardScaler()),('clf',SVC(random_state=1))])
param_range = [0.0001, 0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0]
param_grid = [{'clf__C':param_range, 'clf__kernel':['linear']},
{'clf__C':param_range, 'clf__gamma':param_range,'clf__kernel':['rbf']},]
gs = GridSearchCV(estimator=pipe_svc,
param_grid=param_grid,
scoring='accuracy',
cv=10,
n_jobs=-1)
scores = cross_val_score(gs, X,y, scoring='accuracy', cv=5)
print('CV accuracy : %.3f +/- %.3f' % (np.mean(scores), np.std(scores))
#参考《Python 机器学习》,作者:Sebastian Raschaka, 机械工业出版社;
转载本文请联系原作者获取授权,同时请注明本文来自李军科学网博客。
链接地址:http://blog.sciencenet.cn/blog-3377553-1137308.html
上一篇:Python_机器学习_总结13:learning curve与validation curve
下一篇:Python_机器学习_总结15:模型性能评价指标
python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文相关推荐
- python sklearn 梯度下降法_科学网—Python_机器学习_总结4:随机梯度下降算法 - 李军的博文...
=============================================================== 总结如下: 1.随机梯度下降算法可以看成是梯度下降算法的近似,但通常它能 ...
- r语言做绘制精美pcoa图_科学网—R语言 PCA PCoA ggplot2 - 靳泽星的博文
这一篇是衔接上一篇的,就是要用ggplot2程序包对PCA和PCoA进行可视化.代码我直接照搬过来了,只是绘图的时候用ggplot函数.ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系 ...
- pfamscan 的使用_科学网—[转载]InterProScan的使用教程 - 黄顺谋的博文
InterPro是一个数据库,其提供蛋白序列的功能分析并归纳为一个个蛋白家族,同时还预测了presence of domains和important sites.为了将蛋白分类,InterPro使用先 ...
- g2 折线图点与点之间直线_科学网—ggplot2实现散点折线图 - 肖斌的博文
准备的数据: 第一列是时间,第二列是样本,第三列是具体数值.横轴标为时间,纵坐标为具体数值,图中不同颜色展示不同样本. 具体的代码: library(ggplot2) png("./xyz. ...
- ieee期刊的科技写作思路曹文平_科学网—怎样向IEEE期刊投稿* - 吴雄君的博文
* 作者郭更生教授:曾任IEEE Transactions on Communications Magazine总编,IEEE Communications Magazine高级技术编辑,台湾某大学教 ...
- Java对象的两大特征_科学网—Java 面向对象的四个特征 - 李玖栋的博文
1.抽象: 抽象--就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来一般叫做类或者接口.)抽象并不打 ...
- matlab nan 无色_科学网—Matlab 关于NaN值的填充 - 肖鑫的博文
以前认为很麻烦的事往往一行命令就能搞定,代码如下 figure('position',[100 100 600 500],'PaperPositionMode', 'auto') m_proj('Sa ...
- matlab图片白边_科学网—[原创] matlab输出图片无白边 - 杨光的博文
今天要做一个gif动画,可惜GIF Movie Gear不认eps文件,无奈只好输出png格式的文件,麻烦来了,输出的图像有白边!之前挥之不去的问题再一次来了.在网上搜索一个多小时,都是说什么先ims ...
- mh采样算法推导_科学网—MCMC中的Metropolis Hastings抽样法 - 张金龙的博文
Metropolis Hastings抽样法示例 jinlongzhang01@gmail.com Metropolis Hasting(下面简称MH)是蒙特卡罗马尔科夫链中一种重要的抽样方法.本文简 ...
最新文章
- RDKit | 分子处理入门
- java 中组合与复用_可复用性和组合
- HDU-5706(DFS)
- Python 安装第三方模块
- java 字节码对象_获得类的字节码对象的三种方式
- dotnet core 应用是如何跑起来的 通过AppHost理解运行过程
- New directions in automated traffic analysis论文解读
- Android Studio导入project和module的方法
- 勒索软件损失2年增15倍 2017年可达50亿美元
- linux驱动编写(nand flash驱动)
- 高度自定义的TabBarController 两个TableView之间的联动
- c语言编写面向对象的类
- Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据
- C#打印代码运行时间
- java 画正弦函数曲线_JAVA画正弦曲线
- 习惯养成app_如何培养优秀的开发人员沟通技巧,养成不良习惯
- Windows下LATEX排版论文攻略—CTeX、JabRef使用心得, 包括 IEEEtran.bst
- dau计算-预测日活
- 太用力的人跑不远[致刚毕业奋斗的自己,永不止步]
- 怎样快速抠图ps图片?这些小妙招了解一下