python_pipeline


pipeline管道機制使用方法:

流水線的輸入為一連串的數據挖掘步驟,其中最后一步必須是估計器(Estimator),可理解成分類器
前幾步是轉換器(Transformer)。輸入的數據集經過轉換器的處理后,輸出的結果作為下一步的輸入。

最后,用位於流水線最后一步的估計器對數據進行分類。

#coding=gbk
#sklearn 中pipeline管道機制的使用
 
'''
流水線的功能:
跟蹤記錄各步驟的操作(以方便地重現實驗結果)
對各步驟進行一個封裝
確保代碼的復雜程度不至於超出掌控范圍
'''
import pandas as pd
from sklearn.cross_validation  import train_test_split
from sklearn.preprocessing import LabelEncoder
data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/'
                 'breast-cancer-wisconsin/wdbc.data', header=None)
print(data.shape)
x, y = data.values[:,2:],data.values[:,1]
encoder = LabelEncoder()
y= encoder.fit_transform(y)     #將 標簽 'm', 'b' 轉換成1,0
 
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size= 0.2,random_state= 666)
 
#使用pipeline管道機制
from sklearn.preprocessing import StandardScaler        #規范化,使各特征的均值為1,方差為0
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
 
from sklearn.pipeline import Pipeline
pipe = Pipeline([('sc',StandardScaler()),
                 ('pca',PCA(n_components=2)),
                 ('clf',LogisticRegression(random_state=666))   #設置隨機種子,使測試結果復現
                 ])
pipe.fit(x_train, y_train)
print('Test accuracy is %.3f' % pipe.score(x_test, y_test))
# Test accuracy is 0.921

  

當我們執行 pipe.fit(X_train, y_train)時,首先由StandardScaler在訓練集上執行 fit和transform方法,transformed后的數據又被傳遞給Pipeline對象的下一步,也即PCA()。和StandardScaler一樣,PCA也是執行fit和transform方法,最終將轉換后的數據傳遞給 LosigsticRegression
————————————————
版權聲明:本文為CSDN博主「蜘蛛俠不會飛」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_40587575/java/article/details/80987742


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM