当前位置:   article > 正文

python datasets用法_对sklearn的使用之数据集的拆分与训练详解(python3.6)

datasets python

研修课上讲了两个例子,融合一下。

主要演示大致的过程:

导入->拆分->训练->模型报告

以及几个重要问题:

①标签二值化

②网格搜索法调参

③k折交叉验证

④增加噪声特征(之前涉及)

from sklearn import datasets

#从cross_validation导入会出现warning,说已弃用

from sklearn.model_selection import train-test_split

from sklearn.grid_search import GridSearchCV

from sklearn.metrics import classification_report

from sklearn.svm import SVC

import sklearn.exceptioins

#导入鸢尾花数据集

iris = datasets.load_iris()

#将数据集拆分为训练集和测试集各一半

#其中X为数据特征(花萼、花瓣的高度宽度),为150*4的矩阵

#Y为鸢尾花种类(0, 1, 2三种),为150*1矩阵

#如果使用标签二值化, 将0, 1, 2表示为100 010 001

#使用y.label_binarize(y, classes[0, 1, 2]),变为150*3矩阵

X_train, X_test, y_train, y_test = train_test_split(

iris.data, iris.target, test_size=0.5, random_state=0)

#set the parameters by cross_validation

turn_parameters = [{'kernel' : ['rbf', 'gamma' : [1e-3, 1e - 4, 'C':[1,10,100,1000]},

{'kernel':['linear'], 'C':[1,10,100,1000]}

]

#clf分离器

#使用网格搜索法调超参数

#训练集做5折交叉验证

clf = GridSearchCV(SVC(C=1), turned_parameters, cv=5, scoring='%s_weighted' % score)

#用前一半train数据再做5折交叉验证

#因为之前的train_test_split已经分割为2份了

#fit-拟合

clf.fit(X_train, y_train)

#超参数

print(clf.best_params_)

#得分

for params, mean_score, scores in clf.gird_scores_:

print("%.3f (+/-%.0.03f) for %r" % (mean_score, scores.std()*1.96,params))

#分类报告

y_true, y_pred = y_test, clf.predict(X_test)

print(classification_report(y_true, y_pred))

以上这篇对sklearn的使用之数据集的拆分与训练详解(python3.6)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: 对sklearn的使用之数据集的拆分与训练详解(python3.6)

本文地址: http://www.cppcns.com/jiaoben/python/247392.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/455140
推荐阅读
相关标签
  

闽ICP备14008679号