最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

拓端tecdat|R語言ROC曲線評價分類器的好壞

2021-07-02 18:00 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=18944

原文出處:拓端數(shù)據(jù)部落公眾號

本文將使用一個小數(shù)據(jù)說明ROC曲線,其中n = 10個觀測值,兩個連續(xù)變量x_1和x_2,以及二元變量y∈{0,1}。

我們可以表示平面(x_1,x_2)中的點,并且對y∈{0,1}中的y 使用不同的顏色。


  1. df = data.frame(x1=x1,x2=x2,y=as.factor(y))

  2. plot(x1,x2,col=c("red","blue")[1+y],pch=19,cex=1.5)


然后,我們可以進行邏輯回歸,P(Y = 1∣x1,x2)= 1 +eβ0+β1x1 +β2x2eβ0+β1x1 +β2x2 ,


  1. reg = glm(y~x1+x2,data=df,family=binomial(link = "logit"))


然后我們可以將y_i表示為得分的函數(shù),即P(Y = 1∣x1,i ,x2,i),


  1. S = predict(reg,type="response")

  2. plot(S,y )

然后,我們將設(shè)定一個閾值(例如50%):如果Y取值1的概率超過閾值,我們將預(yù)測為1(否則為0)。在上圖中,我們有4個點:閾值左側(cè)的那些點(預(yù)測為0),如果位于底部,則分類很好,而位于頂部的分類很差;在閾值的右邊(并且預(yù)測為1),如果它們位于頂部,則可以很好地分類,而底部則不能很好地分類?


  1. plot(S,y,

  2. col=c("red","blue")[1+(y==Yhat)])

  3. abline(v=s,lty=2)


顏色反映了分類的好壞:紅點表示分類錯誤。我們可以在?下面的列聯(lián)表(混淆矩陣)中找到所有這些內(nèi)容?。


  1. Y Yhat 0 1

  2. 0 3 1

  3. 1 1 5


在這里,我們感興趣的是兩個指標:假正例和真正例,

  1. FP=sum((Ps==1)*(Y==0))/sum(Y==0)

  2. TP=sum((Ps==1)*(Y==1))/sum(Y==1)

我們在給定的閾值(此處為50 %)處獲得了該表。
這組結(jié)果給出了ROC曲線。



  1. plot(t(V),type="s" )

  2. segments(0,0,1,1,col="light blue")


我們可以檢查在曲線上閾值50%處的點


  1. Y Yhat 0 1

  2. 0 3 1

  3. 1 1 5

  4. (FP = sum((Yhat)*(Y==0))/sum(Y==0))

  5. [1] 0.25

  6. (TP = sum((Yhat==1)*(Y==1))/sum(Y==1))

  7. [1] 0.83


?


  1. plot(performance(pred,"tpr","fpr"))


一個有趣的量稱為曲線下面積(或?AUC),可在此處手動計算(我們有一個簡單的階梯函數(shù))

  1. p2[1]*p2[2]+(p1[1]-p2[1])*p1[2]+(1-p1[1])

  2. [1] 0.875


也可以用函數(shù)計算

  1. auc.perf@y.values[[1]]

  2. [1] 0.87

我們嘗試另一個分類器:仍然是邏輯回歸,但要考慮通過將第二個變量分割成兩個而獲得的因子1 [s,∞) x2)

abline(h=.525)


水平線不再是紅色和藍色一樣多的線,而是與變量x_2相交的線。在這里,我們僅預(yù)測兩個值:底部出現(xiàn)藍色的概率為40%,頂部為藍色的概率為80%。如果我們將觀測值yi表示為預(yù)測概率的函數(shù),則可以得出

plot(S,y,ylab="y",xlim=0:1)

50%的閾值,我們獲得以下列聯(lián)表


  1. Y Yhat 0 1

  2. 0 3 2

  3. 1 1 4

如果繪制ROC曲線,我們得到


  1. plot(t(V),type="l"

  2. segments(0,0,1,1,col="light blue")


這次,曲線是線性的。上圖中的藍色對角線恰好是隨機分類器,這是我們隨機預(yù)測的結(jié)果

  1. pred = prediction(S,Y)

  2. plot(performance(pred,"tpr","fpr"))


該點的閾值為50%。再次,我們可以計算曲線下的面積


  1. p2[1]*p2[2]/2+(1-p1[1])*p1[2]+(1-p1[1])*(1-p1[2])/2

  2. [1] 0.708

  3. auc.perf@y.values[[1]]

  4. [1] 0.708

最受歡迎的見解

1.從決策樹模型看員工為什么離職

2.R語言基于樹的方法:決策樹,隨機森林

3.python中使用scikit-learn和pandas決策樹

4.機器學(xué)習(xí):在SAS中運行隨機森林數(shù)據(jù)分析報告

5.R語言用隨機森林和文本挖掘提高航空公司客戶滿意度

6.機器學(xué)習(xí)助推快時尚精準銷售時間序列

7.用機器學(xué)習(xí)識別不斷變化的股市狀況——隱馬爾可夫模型的應(yīng)用

8.python機器學(xué)習(xí):推薦系統(tǒng)實現(xiàn)(以矩陣分解來協(xié)同過濾)

9.python中用pytorch機器學(xué)習(xí)分類預(yù)測銀行客戶流失


拓端tecdat|R語言ROC曲線評價分類器的好壞的評論 (共 條)

分享到微博請遵守國家法律
乐都县| 托克托县| 同德县| 六枝特区| 锦屏县| 叶城县| 始兴县| 佳木斯市| 山东| 水富县| 胶南市| 永和县| 芮城县| 曲沃县| 贺兰县| 滦平县| 九台市| 汶川县| 宿州市| 葫芦岛市| 昭通市| 连南| 赤水市| 本溪| 曲周县| 武义县| 延川县| 穆棱市| 大关县| 深水埗区| 武宁县| 碌曲县| 营口市| 平果县| 兴文县| 珲春市| 宁强县| 长顺县| 亳州市| 岳普湖县| 吴旗县|