这篇文章将为大家详细讲解有关sklearn中数据集拆分与训练的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
主要演示大致的过程:
导入->拆分->训练->模型报告
以及几个重要问题:
①标签二值化
②网格搜索法调参
③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中数据集拆分与训练的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。