日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文

發布時間:2025/3/20 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 - 李军的博文的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。