歡迎您光臨本站 註冊首頁

Python sklearn中的.fit與.predict的用法說明

←手機掃碼閱讀     techdo @ 2020-06-29 , reply:0

我就廢話不多說了,大家還是直接看代碼吧~

  clf=KMeans(n_clusters=5) #創建分類器對象  fit_clf=clf.fit(X) #用訓練器數據擬合分類器模型  clf.predict(X) #也可以給新數據數據對其預測    print(clf.cluster_centers_) #輸出5個類的聚類中心    y_pred = clf.fit_predict(X) #用訓練器數據X擬合分類器模型並對訓練器數據X進行預測    print(y_pred) #輸出預測結果

 

補充知識:sklearn中調用某個機器學習模型model.predict(x)和model.predict_proba(x)的區別

model.predict_proba(x)不同於model.predict(),它返回的預測值為獲得所有結果的概率。(有多少個分類結果,每行就有多少個概率,對每個結果都有一個概率值,如0、1兩分類就有兩個概率)

我們直接上代碼,通過具體例子來進一步講解:

python3 代碼實現:

  # -*- coding: utf-8 -*-  """  Created on Sat Jul 27 21:25:39 2019    @author: ZQQ  """  from sklearn.linear_model import LogisticRegression  from sklearn.ensemble import RandomForestClassifier  from xgboost import XGBClassifier  import numpy as np  import warnings  warnings.filterwarnings("ignore")  # 這個方法只是解決了表面,沒有根治    # 數據(特徵,屬性)  x_train = np.array([[1,2,3],             [1,5,4],             [2,2,2],             [4,5,6],             [3,5,4],             [1,7,2]])   # 數據的標籤  y_train = np.array([1, 0, 1, 1, 0, 0])      # 測試數據  x_test = np.array([[2,1,2],             [3,2,6],             [2,6,4]])      # 導入模型  model = LogisticRegression()      #model = RandomForestClassifier()    #model=XGBClassifier()    model.fit(x_train, y_train)    # 返回預測標籤   print(model.predict(x_test))      print('---------------------------------------')    # 返回預測屬於某標籤的概率   print(model.predict_proba(x_test))

 

運行結果:

分析結果:

使用model.predict() :

預測[2,1,2]為1類

預測[3,2,6]為1類

預測[2,6,4]為0類

使用model.predict_proba() :

預測[2,1,2]的標籤是0的概率為0.19442289,1的概率為0.80557711

預測[3,2,6]的標籤是0的概率為0.04163615,1的概率為0.95836385

預測[2,6,4]的標籤是0的概率為0.83059324,1的概率為0.16940676

預測為0類的概率值和預測為1的概率值和為1

同理,如果標籤繼續增加,3類:0,1, 2

預測為0類的概率值:a

預測為1類的概率值:b

預測為2類的概率值:c

預測出來的概率值的和a+b+c=1

注:model.predict_proba()返回所有標籤值可能性概率值,這些值是如何排序的呢?

返回模型中每個類的樣本概率,其中類按類self.classes_進行排序。

通過numpy.unique(label)方法,對label中的所有標籤值進行從小到大的去重排序。

得到一個從小到大唯一值的排序。這也就對應於model.predict_proba()的行返回結果。

 

   


[techdo ] Python sklearn中的.fit與.predict的用法說明已經有1060次圍觀

http://coctec.com/docs/python/shhow-post-240290.html