日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sklearn中predict_proba函数用法及原理详解

發布時間:2023/12/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sklearn中predict_proba函数用法及原理详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Sklearn中predict_proba函數用法及原理詳解(以logistic回歸為例)

網上對predict_proba的數學原理解釋的太少了,也不明確,特意總結一下,并給出有些不能用該方法的原因及對策

函數形式

  • 輸入:待預測的數據
  • 輸出:數組形式為(樣本個數,樣本類別數),每一行代表某個樣本在各個類上的概率,其和為1.

用于返回樣本在各個類的概率分布,不適用于分類函數為:
sign(x)={+1x≥0?1x<0sign(x)=\begin{cases}+1& \text{x$\geq$0} \\-1& \text{x$<$0}\end{cases} sign(x)={+1?1?x0x<0?
的情況,因為值是離散的無法表示概率。

數學原理

以logistic回歸為例

對于二分類

其基本原理是算出樣本點到分類超平面的距離disdisdis,之后帶入分類函數中,得到該樣本為正類的概率為
prob+=sigmoid(dis)=11+e?disprob_+ = sigmoid(dis)=\frac{1}{1+e^{-dis}} prob+?=sigmoid(dis)=1+e?dis1?
負類概率為:prob?=1?prob+prob_-=1-prob_+prob??=1?prob+?

對于多分類

二分類模型如logistic回歸進行多分類(假設k類)時,往往采用OVR方法或者OVO方法,OVR方法產生了k個獨立的分類器,此時,對于此樣本,算出其到k個分類器的距離disi,dis_i,disi?,其中i=1,2,...ki=1,2,...ki=1,2,...k,帶入分類函數sigmoid(x)sigmoid(x)sigmoid(x)中,得到:
prob+i=sigmoid(disi)=11+e?disiprob_{+i} = sigmoid(dis_i)=\frac{1}{1+e^{-dis_i}} prob+i?=sigmoid(disi?)=1+e?disi?1?
再將其進行歸一化,即得到樣本為第iii個類的概率:
probi=prob+i∑j=1kprob+jprob_i=\frac{prob_{+i}}{\sum_{j=1}^{k}{prob_{+j}}} probi?=j=1k?prob+j?prob+i??

說明

對于perceptron這種模型,不能求其概率,主要原因是其分類函數為:
xsign(x)={+1x≥0?1x<0x sign(x)=\begin{cases}+1& \text{x$\geq$0} \\-1& \text{x$<$0}\end{cases} xsign(x)={+1?1?x0x<0?
是離散的,如果非要求樣本為某類的概率,可以利用lsotonic或者sigmoid校準分類器,其原理可以參考鏈接:使用 Isotonic Regression 校準分類器,實際應用中可以采用的sklearn中模塊為CalibratedClassifierCV,具體見鏈接:Python Scikit-learn Perceptron Output Probabilities

[1]https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Perceptron.html

[2]https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=predict_proba#sklearn.linear_model.LogisticRegression.predict_proba

[3]http://vividfree.github.io/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/2015/12/21/classifier-calibration-with-isotonic-regression
[4]https://stackoverflow.com/questions/31792580/python-scikit-learn-perceptron-output-probabilities

總結

以上是生活随笔為你收集整理的Sklearn中predict_proba函数用法及原理详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。