首頁>技術>

> Photo by James Lee on Unsplash

完全了精確度,召回率和F分數概念

如何處理機器學習中偏斜的資料集

用偏斜的資料集開發有效的機器學習演算法可能很棘手。例如,資料集涉及銀行中的欺詐活動或癌症檢測。發生的情況是,您將在資料集中看到99%的時間沒有欺詐活動或沒有癌症。您可以很容易地作弊,並且始終可以僅預測0(如果癌症則預測1,如果沒有癌症則預測0),從而獲得99%的準確性。如果這樣做,我們將擁有99%的準確機器學習演算法,但我們將永遠不會檢測到癌症。如果某人患有癌症,他/他將永遠得不到治療。在銀行中,不會採取任何針對欺詐活動的措施。因此,僅靠準確性就無法確定偏斜的資料集,就像演算法是否有效執行一樣。

背景

有不同的評估矩陣可以幫助處理這些型別的資料集。這些評估指標稱為精確召回評估指標。

要了精確度和召回率,您需要了解下表及其所有術語。考慮二進位制分類。它將返回0或1。對於給定的訓練資料,如果實際類別為1,而預測類別也為1,則稱為真實肯定。如果實際類別為0,而預測類別為1,則為假陽性。如果實際類別為1,但預測類別為0,則稱為假陰性。如果實際類別和預測類別均為0,則為真陰性。

使用所有這些,我們將計算精度和召回率。

精確

Precision會計算出我們預測為欺詐的交易(預測為1類)中有多少實際上是欺詐的。可以使用以下公式計算精度:

進一步分解,該公式可以寫成:

從公式中可以看出,更高的精度是好的。因為更高的精度意味著更多的真實肯定。這意味著當我們說此交易是欺詐性的時,這是事實。

召回

回憶告訴我們,最初欺詐的所有交易中有多少被檢測為欺詐。這意味著,如果我們告知銀行適當的權力採取行動,那麼在某筆交易實際上是欺詐的情況下。當我第一次閱讀這些關於精確度和召回率的定義時,我花了一些時間才能真正理解它們之間的區別。我希望你能更快地得到它。如果沒有,那就不用擔心。你不是一個人。

召回率可以透過以下公式計算:

用上面2 x 2表中定義的術語表示:

從精確度和召回率做出決策

精確度和召回率可以更好地瞭解演算法的實際執行方式,尤其是在資料集高度偏斜的情況下。如果我們一直預測為0並獲得99.5%的準確度,則召回率和精確度都將為0。因為沒有真正的肯定。因此,您知道分類器不是一個好的分類器。當精度和查全率都很高時,表明該演算法執行良好。

假設僅在高度自信的情況下,我們要預測y = 1。因為有時候這很重要。特別是當我們處理醫療資料時。假設我們正在檢測某人是否患有心臟病或癌症。預測假陽性會給一個人的生活帶來很多痛苦。提醒一下,通常,邏輯假設如果假設大於或等於0.5,則預測1;如果假設小於0.5,則預測0。

如果假設≥0.5,則預測1

如果假設<0.5,則預測0

但是,當我們如上所述處理某些敏感情況時,我們想更確定自己的結果,如果假設≥0.7,我們將預測為1,如果假設<0.7,我們將預測為0。如果您想對結果更有信心,可以看到0.9之類的值。因此,您將90%地確定某人是否患有癌症。

現在,看看精度和召回率公式。真實肯定和錯誤肯定都會更低。因此,精度會更高。但另一方面,由於我們現在將預測更多的負面因素,因此,假陰性的可能性會更高。在這種情況下,召回率會更高。但是太多的假陰性也不好。如果某人確實患有癌症,或者某個賬戶有欺詐行為,但是我們告訴他們他們沒有癌症,或者該賬戶沒有欺詐行為,則可能導致災難。

為了避免誤報並提高召回率,我們需要將閾值更改為以下內容:

如果假設≥0.3,則預測1

如果假設<0.3,則預測為0

與以前的情況相反,我們將具有更高的召回率和更低的精度。

那麼如何確定閾值呢?這將取決於您的要求。根據資料集,您必須決定是否需要更高的精度或更高的查全率。這是精度呼叫曲線:

精確呼叫曲線可以是任何形狀。因此,我在這裡顯示三種不同的形狀。如果您不能自己決定是否需要更高的精度或更高的查全率,則可以使用F1分數。

F1分數

F1分數是準確性和召回率的平均值。但是平均公式卻不同。常規平均公式在這裡不起作用。看一下平均公式:

(精確+召回)/ 2

在這裡,P是精度,R是召回率。如果精度為零或召回率為零,則F1分數將為零。因此,您將知道分類器沒有按照我們的期望工作。當精度和召回率都完美時,這意味著精度為1,召回率也為1,F1分數也將為1。因此,理想的F1分數是1。最好嘗試使用不同的閾值並計算精度,召回率和F1分數,以找到適合您的機器學習演算法的最佳閾值。

16
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 無監督機器學習備忘清單