100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 机器学习代码实战——网格搜索和交叉验证(GridSearchCV)

机器学习代码实战——网格搜索和交叉验证(GridSearchCV)

时间:2018-08-03 15:33:07

相关推荐

机器学习代码实战——网格搜索和交叉验证(GridSearchCV)

文章目录

1.实验目的2.导入必要模块并读取数据3.构建模型-参数字典4.训练5.打印不同模型、不同参数对应的结果

1.实验目的

(1)运用GridSearchCV比较不同的模型、不同的参数对实验结果的影响。

(2)运用字典存储模型和参数

(3)实验所用数据集为sklearn自带的手写数字数据集

2.导入必要模块并读取数据

from sklearn import datasetsfrom sklearn import svm #支持向量机from sklearn.ensemble import RandomForestClassifier #随机森林from sklearn.linear_model import LogisticRegression #逻辑回归from sklearn.naive_bayes import GaussianNB#先验为高斯分布的朴素贝叶斯from sklearn.naive_bayes import MultinomialNB #先验为多项式分布的朴素贝叶斯from sklearn.tree import DecisionTreeClassifier #决策树digits = datasets.load_digits() #加载手写题数据集

3.构建模型-参数字典

#构建模型到参数的字典model_params = {'svm':{'model':svm.SVC(gamma='auto'),'params':{'C':[1,10,20],'kernel':['rbf','linear']}},'random_forest':{'model':RandomForestClassifier(),'params':{'n_estimators':[1,5,10]}},'logistic_regression':{'model':LogisticRegression(),'params':{'C':[1,5,10]}},'naive_bayes_gaussian':{'model':GaussianNB(),'params':{}},'naive_bayes_multinomial':{'model':MultinomialNB(),'params':{}},'decision_tree':{'model':DecisionTreeClassifier(),'params':{'criterion':['gini','entropy']}}}

4.训练

from sklearn.model_selection import GridSearchCV #导入网格搜索与交叉验证模型import pandas as pdscores = []for model_name, mp in model_params.items():clf = GridSearchCV(mp['model'],mp['params'],cv=5,return_train_score=False) #实例化clf.fit(digits.data,digits.target) #训练scores.append({'model':model_name,'best_score':clf.best_score_,'best_params':clf.best_params_})

5.打印不同模型、不同参数对应的结果

df = pd.DataFrame(scores,columns=['model','best_score','best_params']) #把结果放入表格df

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。