模型评估与优化
1.交叉驗證法
from sklearn.model_selection import cross_val_scoresvc=SVC(kernel='linear') scores=cross_val_score(svc,x,y,cv=6)2.隨機拆分和挨個試試
from sklearn.model_selection import ShuffleSplit,cross_val_score,LeaveOneOut shuffle_split=ShuffleSplit(test_size=.2 , train_size=.7,n_splits=10) scores=cross_val_score(svc,wine.data,wine.target,cv=shuffle_split) cv=LeaveOneOut() scores=cross_val_score(svc,wine.data,wine.target,cv=cv)3.網格優化----GridSearchCV
from sklearn.model_selection import GridSearchCV from sklearn.linear_model import Lassoparams={'alpha':[0.01,0.1,1.0,10],'max_iter':[100,1000,5000,10000]} # lasso=SVC(kernel='linear') lasso=Lasso() # 網格搜索優化 grid=GridSearchCV(lasso,params,cv=6) grid.fit(X_train,y_train) print('{}'.format(grid.score(X_test,y_test))) print('{}'.format(grid.best_params_)) print('{}'.format(grid.best_score_))4.管道模型 sklearn.pipeline.Pipeline
params通過添加 "名字+__"形式進行調參。
from sklearn.datasets import make_blobs from sklearn.model_selection import train_test_split,cross_val_score,GridSearchCV from sklearn.preprocessing import StandardScaler from sklearn.neural_network import MLPClassifier from sklearn.pipeline import Pipeline from sklearn.ensemble import RandomForestClassifier import matplotlib.pyplot as plt x,y=make_blobs(n_samples=200,centers=2,cluster_std=5) x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=1) pipeline=Pipeline([('scaler',StandardScaler()),('mlp',MLPClassifier(# ,hidden_layer_sizes=1,alpha=1))]) # params={'mlp__hidden_layer_sizes':[(50,),(100,),(100,100)],'mlp__alpha':[0.0001,0.001,0.01,0.1]}params=[{'scaler':[None],'mlp':[RandomForestClassifier(random_state=1)],'mlp__n_estimators':[10,30,50]},{'scaler':[StandardScaler()],'mlp':[MLPClassifier(random_state=1)],'mlp__hidden_layer_sizes':[(100,),(10,10),(100,100)]}]grid=GridSearchCV(pipeline,params,cv=6) # pipeline.fit(x_train,y_train) # print('{}'.format(pipeline.score(x_test,y_test))) grid.fit(x_train,y_train) print('{}'.format(grid.score(x_test,y_test))) print(grid.best_params_,grid.best_score_)總結
- 上一篇: 解决NHibernate 中与 SQL2
- 下一篇: 虚拟化简化数据中心管理