基于scikit-learn机器学习库的分类预测
一旦你在scikit-learn中選擇好機器學習模型,就可以用它來預測新的數據實例。初學者經常會有這樣的疑問:
如何在scikit-learn中用我自己的模型進行預測?
在本教程中,你將會發現如何在Python的機器學習庫scikit-learn 中使用機器學習模型進行分類和回歸預測。文章結構如下:
1.如何構建一個模型,為預測做好準備。
2.如何在scikit-learn庫中進行類別和概率預測。
3.如何在scikit-learn庫中進行回歸預測。
?
一、構建一個模型
在進行預測之前,你必須訓練一個最終模型。你可以使用k-fold交叉驗證或訓練/測試數據,對模型進行訓練。這樣做的目的就是為了評估模型在樣本外數據上的表現及其性能,比如新的數據。
你可以在這里了解更多關于如何訓練最終模型的信息:
如何訓練一個最終的機器學習模型?
?o?如何預測分類模型
分類問題,就是模型學習輸入特征與輸出特征之間的映射,確定某一個或多個數據實例是否為某一個類標簽的問題,比如“是垃圾郵件”和“不是垃圾郵件”。
下面是針對一個簡單二元分類問題的Logistic回歸模型的示例代碼。
盡管我們在本教程中使用Logistic回歸,在scikit-learn中幾乎所有的分類算法中也都可以使用該函數。
?
模型構建完成以后,需要將模型保存到文件中,如pickle庫。保存后,你可以隨時加載模型并使用它進行預測。為了簡單起見,我們將跳過這一步,有關這方面的詳細內容,請參閱以下文章:
在scikit-learn庫中如何使用Python保存并加載機器學習模型
現在,我們希望用最終模型進行兩種分類預測:類別預測和概率預測。
1、類別預測
類別預測就是給定最終模型和一個或多個數據實例,使用模型對預測數據實例進行分類。
首先我們并不知道新數據的類別。這就是我們需要這個模型的原因。使用predict()函數在scikit-learn庫中使用最終分類模型預測新數據實例的類。
例如,Xnew的數組中有一個或多個數據實例,將數組傳遞給模型的predict()函數,來預測數組中每個實例的類別。
?
(1)多個實例的類別預測
我們來舉個例子,對多種類別預測進行詳細論述。
?
對三個新的數據實例的類別進行預測,然后將數據實例和預測結果一起打印出來,如下圖所示。
?
(2)單個實例的類別預測
如果你只有一個新的數據實例,你可以將這個實例以數組的形式傳遞給predict()函數,例如:
?
運行上述代碼,打印出實例數據和預測結果,如下圖所示。
?
關于類別標簽的注意事項
準備好數據后,可能使用過LabelEncoder將圖像的類別(例如字符串型)映射為整型。也可以用LabelEncoder中的inverse_transform()函數將整型再轉換回字符串型。出于這個原因,在擬合最終模型時,您可能想要在pickle庫中保存用于編碼輸出預測結果的LabelEncoder。
2、概率預測
概率預測就是預測每個數據實例所屬類別的概率。給定一個或多個新實例,該模型將預測每個數據所屬類別的概率,并返回0和1之間的某一個值。
你可以在scikit-learn中調用predict_proba()函數進行這些實例的類別概率的預測,如下圖所示:
?
該函數僅適用于使用大多數模型對數據實例的類別進行概率預測,這是大多數但不是全部的模型。
下面的代碼是對數據實例數組Xnew中的每個實例進行概率預測。
?
運行上述代碼進行概率預測,然后分別打印出輸入實例數據、每個實例屬于第1類(用0表示)或第2類(用1表示)的概率,如下圖所示。
?
三、如何使用回歸模型進行預測
回歸屬于監督學習,給定輸入實例數據,模型學習并將數據映射到一個合適的輸出量,例如0.1,0.2等。
下圖中的代碼是一個最終化線性回歸模型的示例。同樣地,用于回歸預測的函數也適用于scikit-learn中的所有回歸模型。
?
我們可以在最終模型上調用predict()函數來預測所述類別的概率。和分類一樣,predict()函數將一個或多個數據實例的列表或數組作為輸入。
多個實例的回歸預測
下面的示例是演示如何對具有未知預期結果的多個數據實例進行回歸預測。
?
運行上述代碼,對多個數據實例進行預測,并將輸出和預測結果打印出來,如下圖所示。
?
單個實例的回歸預測
將相同的函數用于適當的列表或數組中,就可以對單個數據實例進行預測。
?運行上述代碼,并打印出數據實例和預測結果,如下圖所示。
?
總結
閱讀完本文,你已經了解了如何使用scikit-learn Python庫中的機器學習最終模型進行分類和回歸預測。
資源分享:
1.如何訓練最終的機器學習模型?
2.在scikit-learn中使用Python保存并加載機器學習模型。
3.scikit-learn API參考。
?
數十款阿里云產品限時折扣中,趕緊點擊領劵開始云上實踐吧!
以上為譯文。
本文由北郵@愛可可-愛生活?老師推薦,阿里云云棲社區組織翻譯。
文章原標題《How to Make Predictions with scikit-learn》,譯者:Mags,審校:袁虎。
文章為簡譯,更為詳細的內容,請查看原文。
總結
以上是生活随笔為你收集整理的基于scikit-learn机器学习库的分类预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP的SqlAnyWhere中数据库日
- 下一篇: Brocade 光纤交换机常用命令