乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      常見(jiàn)損失函數(shù)和評(píng)價(jià)指標(biāo)總結(jié)(附代碼)

       taotao_2016 2020-01-23

      作者:董文輝

      本文長(zhǎng)度為4500字,建議閱讀10+分鐘

      本文為你總結(jié)常見(jiàn)損失函數(shù)和評(píng)價(jià)指標(biāo)。

      注:本文采用markdown進(jìn)行編寫(xiě),用markdown打開(kāi)可得更佳展示效果~

      ## 1. 損失函數(shù):

      ### 1.1 回歸問(wèn)題:

      #### 1. 平方損失函數(shù)(最小二乘法):

      $$L(Y,f(x)) = \sum_{i=1}^n(Y-f(X))^2$$

      回歸問(wèn)題中常用的損失函數(shù),在線性回歸中,可以通過(guò)極大似然估計(jì)(MLE)推導(dǎo)。計(jì)算的是預(yù)測(cè)值與真實(shí)值之間距離的平方和。實(shí)際更常用的是**均方誤差(MSE)**:

      $$L(Y,f(x)) = \frac{1}{m}\sum_{i=1}^n(Y-f(X))^2$$

      #### 2 平均絕對(duì)值誤差(L1)-- MAE:

      $$L(Y,f(x)) = \sum_{i=1}^n|Y-f(X)|$$

      MAE是目標(biāo)值和預(yù)測(cè)值之差的**絕對(duì)值之和**,可以用來(lái)衡量預(yù)測(cè)值和真實(shí)值的距離。**但是它不能給出,模型的預(yù)測(cè)值是比真實(shí)值小還是大。**

      #### 3 MAE(L1) VS MSE(L2):

      * **MSE計(jì)算簡(jiǎn)便,但MAE對(duì)異常點(diǎn)有更好的魯棒性:**

      當(dāng)數(shù)據(jù)中存在異常點(diǎn)時(shí),用RMSE計(jì)算損失的模型會(huì)以犧牲了其他樣本的誤差為代價(jià),朝著減小異常點(diǎn)誤差的方向更新。然而這就會(huì)降低模型的整體性能。

      >直觀上可以這樣理解:如果我們最小化MSE來(lái)對(duì)所有的樣本點(diǎn)只給出一個(gè)預(yù)測(cè)值,那么這個(gè)值一定是所有目標(biāo)值的平均值。但如果是最小化MAE,那么這個(gè)值,則會(huì)是所有樣本點(diǎn)目標(biāo)值的中位數(shù)。眾所周知,對(duì)異常值而言,中位數(shù)比均值更加魯棒,因此MAE對(duì)于異常值也比MSE更穩(wěn)定。

      * **NN中MAE更新梯度始終相同,而MSE則不同**:

      MSE損失的梯度隨損失增大而增大,而損失趨于0時(shí)則會(huì)減小。

      * **Loss選擇建議:**

      * **MSE:** 如果異常點(diǎn)代表在商業(yè)中很重要的異常情況,并且需要被檢測(cè)出來(lái)。

      * **MAE:** 如果只把異常值當(dāng)作受損數(shù)據(jù)。

      #### 4. Huber損失:

      $$

      L_{\delta}(y, f(x))=\left\{\begin{array}{ll}{\frac{1}{2}(y-f(x))^{2}} & {\text { for }|y-f(x)| \leq \delta} \\ {\delta|y-f(x)|-\frac{1}{2} \delta^{2}} & {\text { otherwise }}\end{array}\right.

      $$

      Huber損失是絕對(duì)誤差,只是在誤差很小時(shí),就變?yōu)槠椒秸`差。當(dāng)Huber損失在$[0-\delta,0+\delta]$之間時(shí),等價(jià)為MSE,而在$[-∞,\delta]$和$[\delta,+∞]$時(shí)為MAE。

      常見(jiàn)損失函數(shù)和評(píng)價(jià)指標(biāo)總結(jié)(附代碼)

      ### 1.2 分類問(wèn)題:

      #### 1. LogLoss:

      $$

      J(\theta)=-\frac{1}{m} \sum_{i=1}^{m}\left[y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right]

      $$

      **二分類**任務(wù)中常用的損失函數(shù),在LR中,通過(guò)對(duì)似然函數(shù)取對(duì)數(shù)得到。也就是**交叉熵**損失函數(shù)。

      #### 2. 指數(shù)損失函數(shù):

      $$L(y,f(x)) = \frac{1}{m} \sum_{i=1}^n{exp[-y_if(x_i)]}$$

      在AdaBoost中用到的損失函數(shù)。

      ## 2.評(píng)價(jià)指標(biāo):

      如何評(píng)估機(jī)器學(xué)習(xí)算法模型是任何項(xiàng)目中一個(gè)非常重要的環(huán)節(jié)。分類問(wèn)題一般會(huì)選擇準(zhǔn)確率(Accuracy)或者AUC作為metric,回歸問(wèn)題使用MSE,但這些指標(biāo)并不足以評(píng)判一個(gè)模型的好壞,接下來(lái)的內(nèi)容我將盡可能包括各個(gè)評(píng)價(jià)指標(biāo)。上述損失函數(shù)大部分可以直接作為評(píng)價(jià)指標(biāo)來(lái)使用,上面出現(xiàn)過(guò)的簡(jiǎn)單介紹。

      ### 2.1 回歸問(wèn)題:

      **1. MAE:

      ** 平均絕對(duì)誤差(Mean Absolute Error),范圍 $[0,+∞)$

      $$

      MAE=\frac{1}{n} \sum_{i=1}^{n}\left|\hat{y}_{i}-y_{i}\right|

      $$

      **2. MSE:

      ** 均方誤差(Mean Square Error),范圍 $[0,+∞)$

      $$

      MSE=\frac{1}{n} \sum_{i=1}^{n}\left(\hat{y}_{i}-y_{i}\right)^{2}

      $$

      **3. RMSE:

      ** 根均方誤差(Root Mean Square Error),范圍 $[0,+∞)$

      $$

      RMSE =\sqrt{\frac{1}{n} \sum_{i=1}^{n}\left(\hat{y}_{i}-y_{i}\right)^{2}}

      $$

      取均方誤差的平方根可以使得量綱一致,這對(duì)于描述和表示是有意義的。

      **4. MAPE:

      ** 平均絕對(duì)百分比誤差(Mean Absolute Percentage Error)

      $$

      MAPE=\frac{100 \%}{n} \sum_{i=1}^{n}\left|\frac{\hat{y}_{i}-y_{i}}{y_{i}}\right|

      $$

      **注意點(diǎn)**:當(dāng)真實(shí)值有數(shù)據(jù)等于0時(shí),存在分母0除問(wèn)題,該公式不可用!

      **5. SMAPE:

      ** 對(duì)稱平均絕對(duì)百分比誤差(Symmetric Mean Absolute Percentage Error)

      $$

      SMAPE=\frac{100 \%}{n} \sum_{i=1}^{n} \frac{\left|\hat{y}_{i}-y_{i}\right|}{\left(\left|\hat{y}_{i}\right|+\left|y_{i}\right|\right) / 2}

      $$

      **注意點(diǎn):** 真實(shí)值、預(yù)測(cè)值均等于0時(shí),存在分母為0,該公式不可用!

      **6. R Squared:**

      $$

      R^{2}=1-\frac{\sum_{i}\left(\hat{y}^{(i)}-y^{(i)}\right)^{2}}{\sum_{i}\left(\bar{y}-y^{(i)}\right)^{2}}

      $$

      $R^2$即**決定系數(shù)(Coefficient of determination)**,被人們稱為最好的衡量線性回歸法的指標(biāo)。

      如果我們使用同一個(gè)算法模型,解決不同的問(wèn)題,由于不同的數(shù)據(jù)集的量綱不同,MSE、RMSE等指標(biāo)不能體現(xiàn)此模型針對(duì)不同問(wèn)題所表現(xiàn)的優(yōu)劣,也就無(wú)法判斷模型更適合預(yù)測(cè)哪個(gè)問(wèn)題。$R^2$得到的性能度量都在[0, 1]之間,可以判斷此模型更適合預(yù)測(cè)哪個(gè)問(wèn)題。

      **公式的理解:**

      1. 分母代表baseline(平均值)的誤差,分子代表模型的預(yù)測(cè)結(jié)果產(chǎn)生的誤差;

      2. 預(yù)測(cè)結(jié)果越大越好,$R^2$為1說(shuō)明完美擬合,$R^2$為0說(shuō)明和baseline一致;

      **7. 代碼實(shí)現(xiàn):**

      ```python

      # coding=utf-8

      import numpy as np

      from sklearn import metrics

      # MAPE和SMAPE需要自己實(shí)現(xiàn)

      def mape(y_true, y_pred):

      return np.mean(np.abs((y_pred - y_true) / y_true)) * 100

      def smape(y_true, y_pred):

      return 2.0 * np.mean(np.abs(y_pred - y_true) / (np.abs(y_pred) + np.abs(y_true))) * 100

      y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0])

      y_pred = np.array([1.0, 4.5, 3.5, 5.0, 8.0, 4.5, 1.0])

      # MSE

      print(metrics.mean_squared_error(y_true, y_pred)) # 8.107142857142858

      # RMSE

      print(np.sqrt(metrics.mean_squared_error(y_true, y_pred))) # 2.847304489713536

      # MAE

      print(metrics.mean_absolute_error(y_true, y_pred)) # 1.9285714285714286

      # MAPE

      print(mape(y_true, y_pred)) # 76.07142857142858

      # SMAPE

      print(smape(y_true, y_pred)) # 57.76942355889724

      # R Squared

      print(r2_score(y_true, y_pred))

      ```

      ### 2.2 分類問(wèn)題:

      #### 0. Confusion Matrix(混淆矩陣):

      混淆矩陣一般不直接作為模型的評(píng)價(jià)指標(biāo),但是他是后續(xù)多個(gè)指標(biāo)的基礎(chǔ)。以下為二分類的混淆矩陣,多分類的混淆矩陣和這個(gè)類似。

      | |預(yù)測(cè)正例| 預(yù)測(cè)反例|

      |--|--|--|

      |真實(shí)正例|TP(真正例)| FN(假反例)|

      |真實(shí)反例|FP(假正例)|TN(真反例)|

      我們訓(xùn)練模型的目的是為了降低FP和FN。很難說(shuō)什么時(shí)候降低FP,什么時(shí)候降低FN?;谖覀儾煌男枨螅瑏?lái)決定降低FP還是FN。

      * **降低假負(fù)數(shù)例(FN)**:

      假設(shè)在一個(gè)癌癥檢測(cè)問(wèn)題中,每100個(gè)人中就有5個(gè)人患有癌癥。在這種情況下,即使是一個(gè)非常差的模型也可以為我們提供95%的準(zhǔn)確度。但是,為了捕獲所有癌癥病例,當(dāng)一個(gè)人實(shí)際上沒(méi)有患癌癥時(shí),我們可能最終將其歸類為癌癥。因?yàn)樗炔蛔R(shí)別為癌癥患者的危險(xiǎn)要小,因?yàn)槲覀兛梢赃M(jìn)一步檢查。但是,錯(cuò)過(guò)癌癥患者將是一個(gè)巨大的錯(cuò)誤,因?yàn)椴粫?huì)對(duì)其進(jìn)行進(jìn)一步檢查。

      * **降低假正例(FP)**:

      假設(shè)在垃圾郵件分類任務(wù)中,垃圾郵件為正樣本。如果我們收到一個(gè)正常的郵件,比如某個(gè)公司或?qū)W校的offer,模型卻識(shí)別為垃圾郵件(FP),那將損失非常大。所以在這種任務(wù)中,需要盡可能降低假正例。

      #### 1. Accuracy(準(zhǔn)確率):

      $$

      Acc=\frac{T P+T N}{T P+T N+F P+F N}

      $$

      準(zhǔn)確率也就是在所有樣本中,有多少樣本被預(yù)測(cè)正確。

      當(dāng)樣本類別均衡時(shí),Accuracy是一個(gè)很好的指標(biāo)。

      但在樣本不平衡的情況下,產(chǎn)生效果較差。假設(shè)我們的訓(xùn)練數(shù)據(jù)中只有2%的正樣本,98%的負(fù)樣本,那么如果模型全部預(yù)測(cè)為負(fù)樣本,準(zhǔn)確率便是98%,。分類的準(zhǔn)確率指標(biāo)很高,會(huì)給我們一種模型很好的假象。

      #### 2. Precision(精準(zhǔn)率):

      $$

      P=\frac{T P}{T P+F P}

      $$

      **含義:** 預(yù)測(cè)為正例的樣本中有多少實(shí)際為正;

      #### 3. Recall(召回率):

      $$

      R=\frac{T P}{T P+F N}

      $$

      **含義:** 實(shí)際為正例的樣本有多少被預(yù)測(cè)為正;

      #### 4. P-R曲線:

      通過(guò)選擇不同的閾值,得到Recall和Precision,以Recall為橫坐標(biāo),Precision為縱坐標(biāo)得到的曲線圖。

      常見(jiàn)損失函數(shù)和評(píng)價(jià)指標(biāo)總結(jié)(附代碼)

      **PR曲線性質(zhì):**

      * 如果一個(gè)學(xué)習(xí)器的P-R曲線被另一個(gè)學(xué)習(xí)器的曲線完全包住,后者性能優(yōu)于前者;

      * 如果兩個(gè)學(xué)習(xí)器的曲線相交,可以通過(guò)平衡點(diǎn)的來(lái)度量性能,它是“查準(zhǔn)率=查全率”時(shí)的取值;

      * **閾值為0時(shí)**:$TP=0 => Precision=0,Recall=0$ 所以PR 曲線經(jīng)過(guò) **(0,0)點(diǎn)**;

      * **閾值上升**:

      * **Recall**:不斷增加,因?yàn)樵絹?lái)越多的樣本被劃分為正例;

      * **Precision:** 震蕩下降,不是嚴(yán)格遞減;

      * 如果有個(gè)劃分點(diǎn)可以把正負(fù)樣本完全區(qū)分開(kāi),那么P-R曲線面積是1*1;

      #### 5. $F_{\beta }$(加權(quán)調(diào)和平均)和 $F_1$(調(diào)和平均):

      $$F_{\beta }=\frac{(1+\beta ^{2})*P*R}{(\beta ^{2}*P)+R}$$

      * $\beta >1$:召回率(Recall)影響更大,eg.$F_2$

      * $\beta <1$:精確率(Precision)影響更大,eg.$F_{0.5}$

      $\beta$為1的時(shí)候得到$F_1$:

      $$F_{1}=\frac{2*P*R}{P+R}$$

      調(diào)和平均亦可推出:

      $$\frac{1}{F_{1}}=\frac{1}{2}*(\frac{1}{R}+\frac{1}{P})$$

      #### 6. ROC-AUC:

      **Area Under Curve(AUC)** 是**二分類**問(wèn)題中使用非常廣泛的一個(gè)評(píng)價(jià)指標(biāo)。**AUC的本質(zhì)是,任取一個(gè)正樣本和負(fù)樣本,模型輸出正樣本的值大于負(fù)樣本值的概率**。構(gòu)成AUC的兩個(gè)基本指標(biāo)是假正例率和真正例率。

      * **橫軸-假正例率:** 實(shí)際為負(fù)的樣本多少被預(yù)測(cè)為正;

      $$FPR=\frac{FP}{TN+FP}$$

      * **縱軸-真正例率:** 實(shí)際為正的樣本多少被預(yù)測(cè)為正;

      $$TPR=\frac{TP}{TP+FN}$$

      TPR和FPR的范圍均是[0,1],通過(guò)選擇不同的閾值得到TPR和FPR,然后繪制ROC曲線。

      常見(jiàn)損失函數(shù)和評(píng)價(jià)指標(biāo)總結(jié)(附代碼)

      **曲線性質(zhì):**

      1. 閾值最大時(shí),對(duì)應(yīng)**坐標(biāo)點(diǎn)為(0,0)**,閾值最小時(shí),對(duì)應(yīng)**坐標(biāo)點(diǎn)(1,1)**;

      2. ROC曲線越靠近左上角,該分類器的性能越好;

      3. 對(duì)角線表示一個(gè)隨機(jī)猜測(cè)分類器;

      4. 若一個(gè)學(xué)習(xí)器的ROC曲線被另一個(gè)學(xué)習(xí)器的曲線完全包住,后者性能優(yōu)于前者;

      **AUC:**ROC曲線下的面積為AUC值。

      #### 7. 代碼實(shí)現(xiàn):

      ```python

      from sklearn.metrics import accuracy_score,precision_score,recall_score,f1_score,fbeta_score

      y_test = [1,1,1,1,0,0,1,1,1,0,0]

      y_pred = [1,1,1,0,1,1,0,1,1,1,0]

      print('準(zhǔn)確率為:{0:%}'.format(accuracy_score(y_test, y_pred)))

      print('精確率為:{0:%}'.format(precision_score(y_test, y_pred)))

      print('召回率為:{0:%}'.format(recall_score(y_test, y_pred)))

      print('F1分?jǐn)?shù)為:{0:%}'.format(f1_score(y_test, y_pred)))

      print('Fbeta為:{0:%}'.format(fbeta_score(y_test, y_pred,beta =1.2)))

      ```

      ### 參考資料:

      [1. 分類問(wèn)題性能評(píng)價(jià)指標(biāo)詳述]

      (https://blog.csdn.net/foneone/article/details/88920256)

      [2.AUC,ROC我看到的最透徹的講解]

      (https://blog.csdn.net/u013385925/article/details/80385873)

      [3.機(jī)器學(xué)習(xí)大牛最常用的5個(gè)回歸損失函數(shù),你知道幾個(gè)?]

      (https://www./articles/2018-06-21-3)

      [4.機(jī)器學(xué)習(xí)-損失函數(shù)]

      (https://www./2016/03/26/2016-03-26-loss-function/)

      [5.損失函數(shù)jupyter notebook]

      (https://nbviewer./github/groverpr/Machine-Learning/blob/master/notebooks/05_Loss_Functions.ipynb)

      [6.L1 vs. L2 Loss function]

      (http://rishy./ml/2015/07/28/l1-vs-l2-loss/)

      [7. P-R曲線深入理解]

      (https://blog.csdn.net/b876144622/article/details/80009867)

      編輯:于騰凱

      校對(duì):林亦霖

      作者簡(jiǎn)介

      董文輝,電子科技大學(xué)碩士,主要研究方向:推薦系統(tǒng)、自然語(yǔ)言處理和金融風(fēng)控。希望能將算法應(yīng)用在更多的行業(yè)中。

      —完—

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多