https://zhuanlan.zhihu.com/p/110873375dom
在本教程中,你將學習如何使用工做流pipelines來整理建模代碼。學習
工做流pipelines
工做流pipelines是一種簡單的方法,能夠保持數據預處理和建模代碼的結構化。具體來講,工做流pipelines打包了預處理和建模步驟,所以你能夠輕鬆的調用。區塊鏈
許多數據科學家在沒有使用工做流pipelines的狀況下將模型混合在一塊兒,但使用工做流pipelines有一些重要的好處。其中包括:
編碼
- 清潔代碼:在預處理的每一個步驟中計算數據可能會變得混亂。使用工做流pipelines,你無需在每一個步驟手動跟蹤你的訓練和驗證數據。
- 更少的錯誤:誤用步驟或忘記預處理步驟的機會較少。
- 更容易生產:將模型從原型轉換爲可大規模部署的設備可能會很是困難。咱們不會在這裏討論許多相關問題,但工做流pipelines能夠提供幫助。
- 更多模型驗證選項:你將在下一個教程中看到一個示例,其中包含交叉驗證。
案例
在這個案例裏,咱們將查看澳大利亞墨爾本的房價數據。spa
下載並上傳3d
點擊這裏 下載 數據集rest
咱們再把csv文件上傳到vitu的數據集空間裏 orm


咱們的模型將使用諸如房間數量和土地面積等信息來預測房價。blog
咱們不會關注數據加載步驟。 相反,你能夠想象您已經擁有X_train,X_valid,y_train和y_valid中的訓練和驗證數據。教程


咱們使用下面的head()方法來查看訓練數據。 請注意,數據包含分類數據和缺乏值的列。 有了工做流pipelines,很容易處理這兩個!




咱們分三步構建完整的工做流pipelines
第1步:定義預處理步驟
與工做流pipelines將預處理和建模步驟捆綁在一塊兒的方式相似,咱們使用ColumnTransformer類將不一樣的預處理步驟捆綁在一塊兒。 代碼以下:
- 在數值數據列中補缺失值
- 估算缺失值並將一位有效編碼應用於分類數據。


第2步:定義模型
接下來,咱們使用熟悉的RandomForestRegressor類定義隨機森林模型。


第3步:建立和評估工做流pipelines
最後,咱們使用Pipeline類來定義捆綁預處理和建模步驟的工做流pipelines。 有幾點須要注意:
- 經過pipeline,咱們預處理訓練數據並將模型整合到一行代碼中。 (相比之下,若是沒有pipeline,咱們必須在不一樣的步驟中進行補缺失值,一位有效編碼和模型訓練。若是咱們必須處理數值和分類變量,這就變得特別麻煩!)
- 經過pipeline,咱們將X_valid中的未處理特徵提供給predict()命令,而且pipeline在生成預測以前自動預處理特徵。 (可是,若是沒有pipeline,咱們必須記住在進行預測以前預處理驗證數據。)

