iris流程图_如何搭建一个简单的机器学习流水线?
閱讀此分步教程,學會通過導入scikit-learn包來搭建一個簡單的機器學習流水線(pipeline)
一個機器學習模型中,有很多可移動的組件需要被組合在一起,模型才能被執行并成功的得到結果。把機器學習過程的各個部分結合在一起的過程就被稱作一條 pipeline(管道,流水線)。
Pipeline是一個很籠統廣義的概念,但對于數據科學家來說卻尤為重要。在軟件工程領域,人們通過建立pipeline來開發軟件,并且從源代碼到軟件發布都遵循該流程。
同樣的,在機器學習中,構建pipeline,使數據沿pipeline“流動”,從原始格式,最終得到有用的信息。這使我們能夠建立多種機器學習方法并行的pipeline系統,從而來比較各種方法的性能。
Pipeline的每一步輸入的數據,都是經過前一步處理過的,也就是某一數據處理單元的輸出,是下一步的輸入。
數據在pipeline中流動,就像水在水管中流動。精通pipeline思想,能讓我們有效的創建一個無差錯的機器學習模型,另外,pipeline也是自動化機器學習系統中非常重要的組成部分。
一條簡單的pipeline
我們首先導入一個名為 Iris 的數據集,該數據集可以在 scikit-learn 的簡單數據集庫中找到(http://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html)。
該數據集包含 4 個特征和 150 條數據。我們會用以下幾步來構建pipeline,并使用Iris數據集, 來訓練我們的模型。對于該數據集,我們考慮的問題是:用四個特征來預測一個給定的 Iris 數據的種類,如圖一所示的流程圖。
在該pipeline中,我們使用 MinMaxScaler 方法對輸入數據進行預處理,用 logistic 回歸方法來預測 Iris 的種類。然后,根據準確性來評估模型:
1.第一步是從 scikit-learn 中導入所需的包,這些包提供很多函數來幫助我們完成該任務。
我們必須從 sklearn.pipline 中添加 pipline 方法,該方法會提供一些建立機器學習pipeline的一些必要方法:
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
2.接下來導入 Iris 數據集,并將其分為訓練和測試集兩部分。
在本次示例中,我們用原數據集的80%來訓練模型,保留20%的數據來測試模型的準確率。我們能用 shape 函數來查看數據集的維度信息:
# Load and split the data
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data,iris.target, test_size = .2, )
X_train.shape
3.結果顯示訓練集有4列和120行,符合 Iris 數據集 80% 的比例,結果如下:
4.接下來,我們輸出該數據集:
print(X_train)以下是譯者運行代碼得到的結果:
[[5.1 3.8 1.5 0.3]
[7.7 3. 6.1 2.3]
[6.7 3.1 5.6 2.4]
[5.9 3. 4.2 1.5]
[6.3 2.5 4.9 1.5]
[6.3 3.4 5.6 2.4]
[6.8 3.2 5.9 2.3]
[4.8 3. 1.4 0.3]
[6.7 3. 5. 1.7]
......
5.下一步是創建一個 pipeline 對象,該對象的格式是 (key , value) 對。Key 包含每一步的名字,用字符串表示;value 是函數名或者實際的方法名稱。下面的代碼片段中,我們將 MinMaxScaler() 方法命名為 minmax,LogisticRegression() 方法命名為 lr:pipe_lr = Pipeline([('minmax', MinMaxScaler()), ('lr'LogisticRegression())])
6.然后,我們將 pipeline 對象 pipe_lr 在訓練集上進行擬合:
pipe_lr.fit(X_train, y_train)
7.執行完上述代碼后,你會得到下面的輸出,該輸出展示了擬合后的模型的最終結構:
8.最后一步是用評價函數在測試集上對模型進行評分:
score = pipe_lr.score(X_test, y_test)
print('Logistic Regression pipeline test accuracy: %.3f' % score)
如下圖所示,模型的準確率是 0.867,也即 86.7%。
(譯注:該準確率和數據集的劃分有關系,每次運行,數據集的隨機劃分不同,準確率也不同)
在該示例中,我們創建了一個包含 minmax 標準化和 Logistic 回歸兩步的pipeline。當我們在 pipe_lr 上進行擬合時,MinMaxScaler 對輸入數據執行了 fit 和 transform 方法,然后數據流向預測函數, logistic回歸函數。pipeline中的這些中間步驟被稱為 transformers,而最后一步被稱作 estimator。
關注集智AI學園公眾號
獲取更多更有趣的AI教程吧!
搜索微信公眾號:swarmAI
集智AI學園QQ群:426390994
學園網站:http://campus.swarma.org
總結
以上是生活随笔為你收集整理的iris流程图_如何搭建一个简单的机器学习流水线?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word中光标选择一列文字_Word中文
- 下一篇: python的垃圾处理机制_Python