python中sklearn的pipeline模塊實例詳解
最近在看《深度學習:基于Keras的Python實踐(魏貞原)》這本書,書中8.3創(chuàng)建了一個Scikit-Learn的Pipeline,首先標準化數(shù)據(jù)集,然后創(chuàng)建和評估基線神經(jīng)網(wǎng)絡模型,代碼如下:
# 數(shù)據(jù)正態(tài)化,改進算法 steps = [] steps.append(('standardize', StandardScaler())) steps.append(('mlp', model)) pipeline = Pipeline(steps) kfold = KFold(n_splits=10, shuffle=True, random_state=seed) results = cross_val_score(pipeline, x, Y, cv=kfold) print('Standardize: %.2f (%.2f) MSE' % (results.mean(), results.std()))
而PipeLine是什么來的呢?
Pipelines and composite estimators(官方文檔)
轉換器通常與分類器,回歸器或其他估計器組合在一起,以構建復合估計器。最常用的工具是Pipeline。Pipeline通常與FeatureUnion結合使用,F(xiàn)eatureUnion將轉換器的輸出連接到一個復合特征空間中。 TransformedTargetRegressor處理轉換目標(即對數(shù)變換y)。相反,Pipelines僅轉換觀察到的數(shù)據(jù)(X)。
Pipeline可用于將多個估計器鏈接為一個。這很有用,因為在處理數(shù)據(jù)時通常會有固定的步驟順序,例如特征選擇,歸一化和分類。Pipeline在這里有多種用途:
- 方便和封裝:只需調用一次fit并在數(shù)據(jù)上進行一次predict即可擬合整個估計器序列。
- 聯(lián)合參數(shù)選擇:可以一次對Pipeline中所有估計器的參數(shù)進行網(wǎng)格搜索(grid search )。
- 安全性:通過確保使用相同的樣本來訓練轉換器和預測器,Pipeline有助于避免在交叉驗證中將測試數(shù)據(jù)的統(tǒng)計信息泄漏到經(jīng)過訓練的模型中。
Pipeline是使用 (key,value) 對的列表構建的,其中key是包含要提供此步驟名稱的字符串,而value是一個估計器對象:
from sklearn.pipeline import Pipeline from sklearn.svm import SVC from sklearn.decomposition import PCA estimators = [('reduce_dim', PCA()), ('clf', SVC())] pipe = Pipeline(estimators) pipe
output:
函數(shù)make_pipeline是構建pipelines的簡寫;它接受不同數(shù)量的估計器,并返回一個pipeline。它不需要也不允許命名估計器。而是將其名稱自動設置為其類型的小寫字母:
from sklearn.pipeline import make_pipeline from sklearn.naive_bayes import MultinomialNB from sklearn.preprocessing import Binarizer make_pipeline(Binarizer(), MultinomialNB())
output:
總結
到此這篇關于python中sklearn的pipeline模塊的文章就介紹到這了,更多相關python pipeline模塊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python利用subplots_adjust方法解決圖表與畫布的間距問題
這篇文章主要介紹了如何在使用python?的?matplotlib庫繪圖時,?使用subplots_adjust()方法來調整圖表與畫布之間的間距,以及圖表與圖表之間的間距,感興趣的可以了解一下2022-04-04PyTorch 解決Dataset和Dataloader遇到的問題
今天小編就為大家分享一篇PyTorch 解決Dataset和Dataloader遇到的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Django中對數(shù)據(jù)查詢結果進行排序的方法
這篇文章主要介紹了Django中對數(shù)據(jù)查詢結果進行排序的方法,利用Python代碼代替SQL進行一些簡單的操作,需要的朋友可以參考下2015-07-07