Kaggle知識點:12種回歸評價指標

你是否曾經遇到各種評價(jia) 指標而不知道含義(yi) ?或者不知道如何使用Numpy進行計算?在本文我們(men) 將介紹常見的回歸評價(jia) 指標,並包含公式和Numpy計算代碼。

Mean Absolute Error,MAE

平均絕對誤差(Mean Absolute Error,MAE),也稱為(wei) L1 損失,是最簡單的損失函數之一,也是一種易於(yu) 理解的評估指標。它是通過取預測值和實際值之間的絕對差值並在整個(ge) 數據集中取平均值來計算的。從(cong) 數學上講,它是絕對誤差的算術平均值。MAE 僅(jin) 測量誤差的大小,不關(guan) 心它們(men) 的方向。MAE越低,模型的準確性就越高。

 

優(you) 點:

  • 由於采用了絕對值,因此所有誤差都以相同的比例加權。
  • 如果訓練數據有異常值,MAE 不會懲罰由異常值引起的高錯誤。
  • 它提供了模型執行情況的平均度量。

缺點:

  • 有時來自異常值的大錯誤最終被視為與低錯誤相同。
  • 在零處不可微分。許多優化算法傾向於使用微分來找到評估指標中參數的最佳值。在 MAE 中計算梯度可能具有挑戰性。

def mean_absolute_error(true, pred): abs_error = np.abs(true - pred)     sum_abs_error = np.sum(abs_error)     mae_loss = sum_abs_error / true.size return mae_loss

Mean Bias Error (MBE)

平均偏差誤差是測量過程高估或低估參數值的趨勢。偏差隻有一個(ge) 方向,可以是正的,也可以是負的。正偏差意味著數據的誤差被高估,負偏差意味著誤差被低估。平均偏差誤差 是預測值與(yu) 實際值之差的平均值。該評估指標量化了總體(ti) 偏差並捕獲了預測中的平均偏差。它幾乎與(yu) MAE 相似,唯一的區別是這裏沒有取絕對值。這個(ge) 評估指標應該小心處理,因為(wei) 正負誤差可以相互抵消。

 

優(you) 點:

  • 想檢查模型的方向(即是否存在正偏差或負偏差)並糾正模型偏差,MBE 是一個很好的衡量標準。

缺點:

  • 就幅度而言,這不是一個好的衡量標準,因為誤差往往會相互補償。
  • 它的可靠性不高,因為有時高個體錯誤會產生低MBE。
  • 作為一種評估指標,它在一個方向上可能始終是錯誤的。

def mean_bias_error(true, pred): bias_error = true - pred     mbe_loss = np.mean(np.sum(diff) / true.size) return mbe_loss

Relative Absolute Error (RAE)

相對絕對誤差是通過將總絕對誤差除以平均值和實際值之間的絕對差來計算的。RAE並以比率表示。RAE的值從(cong) 0到1。一個(ge) 好的模型將具有接近於(yu) 零的值,其中零是最佳值。 

優(you) 點:

  • RAE 可用於比較以不同單位測量誤差的模型。
  • RAE 是可靠的,因為它可以防止異常值。

def relative_absolute_error(true, pred): true_mean = np.mean(true)     squared_error_num = np.sum(np.abs(true - pred))     squared_error_den = np.sum(np.abs(true - true_mean))     rae_loss = squared_error_num / squared_error_den return rae_loss

Mean Absolute Percentage Error (MAPE)

平均絕對百分比誤差是通過將實際值與(yu) 預測值之間的差值除以實際值來計算的。MAPE 也稱為(wei) 平均絕對百分比偏差,隨著誤差的增加而線性增加。MAPE 越小,模型性能越好。 

優(you) 點:

  • MAPE與變量的規模無關,因為它的誤差估計是以百分比為單位的。
  • 所有錯誤都在一個共同的尺度上標準化,很容易理解。
  • MAPE避免了正值和負值相互抵消的問題。

缺點:

  • 分母值為零時,麵臨著“除以零”的問題。
  • MAPE對數值較小的誤差比對數值大的誤差錯誤的懲罰更多。
  • 因為使用除法運算,所欲對於相同的誤差,實際值的變化將導致損失的差異。

def mean_absolute_percentage_error(true, pred): abs_error = (np.abs(true - pred)) / true     sum_abs_error = np.sum(abs_error)     mape_loss = (sum_abs_error / true.size) * 100 return mape_loss

Mean Squared Error (MSE)

均方誤差也稱為(wei) L2 損失,MSE通過將預測值和實際值之間的差平方並在整個(ge) 數據集中對其進行平均來計算誤差。MSE 也稱為(wei) 二次損失,因為(wei) 懲罰與(yu) 誤差不成正比,而是與(yu) 誤差的平方成正比。平方誤差為(wei) 異常值賦予更高的權重,從(cong) 而為(wei) 小誤差產(chan) 生平滑的梯度。

MSE 永遠不會(hui) 是負數,因為(wei) 誤差是平方的。誤差值範圍從(cong) 零到無窮大。MSE 隨著誤差的增加呈指數增長。一個(ge) 好的模型的 MSE 值接近於(yu) 零。

優(you) 點:

  • MSE會得到一個隻有一個全局最小值的梯度下降。
  • 對於小的誤差,它可以有效地收斂到最小值。沒有局部最小值。
  • MSE 通過對模型進行平方來懲罰具有巨大錯誤的模型。

缺點:

  • 對異常值的敏感性通過對它們進行平方來放大高誤差。
  • MSE會受到異常值的影響,會尋找在整體水平上表現足夠好的模型。

def mean_squared_error(true, pred): squared_error = np.square(true - pred)      sum_squared_error = np.sum(squared_error)     mse_loss = sum_squared_error / true.size return mse_loss

Root Mean Squared Error (RMSE)

RMSE 是通過取 MSE 的平方根來計算的。RMSE 也稱為(wei) 均方根偏差。它測量誤差的平均幅度,並關(guan) 注與(yu) 實際值的偏差。RMSE 值為(wei) 零表示模型具有完美擬合。RMSE 越低,模型及其預測就越好。 

優(you) 點:

  • 易於理解,計算方便

缺點:

  • 建議去除異常值才能使其正常運行。
  • 會受到數據樣本大小的影響。

def root_mean_squared_error(true, pred): squared_error = np.square(true - pred)      sum_squared_error = np.sum(squared_error)     rmse_loss = np.sqrt(sum_squared_error / true.size) return rmse_loss

Relative Squared Error (RSE)

相對平方誤差需要使用均方誤差並將其除以實際數據與(yu) 數據平均值之間的差異的平方。 

優(you) 點

  • 對預測的平均值和規模不敏感。

def relative_squared_error(true, pred): true_mean = np.mean(true)     squared_error_num = np.sum(np.square(true - pred))     squared_error_den = np.sum(np.square(true - true_mean))     rse_loss = squared_error_num / squared_error_den return rse_loss

Normalized Root Mean Squared Error (NRMSE)

歸一化 RMSE 通常通過除以一個(ge) 標量值來計算,它可以有不同的方式。有時選擇四分位數範圍可能是最好的選擇,因為(wei) 其他方法容易出現異常值。當您想要比較不同因變量的模型或修改因變量時,NRMSE 是一個(ge) 很好的度量。它克服了尺度依賴性,簡化了不同尺度模型甚至數據集之間的比較。

RMSE / maximum value in the series RMSE / mean RMSE / difference between the maximum and the minimum values (if mean is zero) RMSE / standard deviation RMSE / interquartile range

def normalized_root_mean_squared_error(true, pred): squared_error = np.square((true - pred))
    sum_squared_error = np.sum(squared_error)
    rmse = np.sqrt(sum_squared_error / true.size)
    nrmse_loss = rmse/np.std(pred) return nrmse_loss

Relative Root Mean Squared Error (RRMSE)

RRMSE 是 RMSE 的無量綱形式,是由均方根值歸一化的均方根誤差,其中每個(ge) 殘差都根據實際值進行縮放。

Excellent when RRMSE < 10% Good when RRMSE is between 10% and 20% Fair when RRMSE is between 20% and 30% Poor when RRMSE > 30% 

def relative_root_mean_squared_error(true, pred): num = np.sum(np.square(true - pred))
    den = np.sum(np.square(pred))
    squared_error = num/den
    rrmse_loss = np.sqrt(squared_error) return rrmse_loss

Root Mean Squared Logarithmic Error (RMSLE)

均方根對數誤差是通過將 log 應用於(yu) 實際值和預測值然後取它們(men) 的差異來計算的。RMSLE 對於(yu) 小誤差和大誤差被均勻處理的異常值是穩健的。如果預測值小於(yu) 實際值,則對模型進行更多的懲罰,而如果預測值大於(yu) 實際值,則對模型進行較少的懲罰。 

優(you) 點:

  • 不依賴於比例,並且適用於各種比例。
  • 它不受大異常值的影響。
  • 它隻考慮實際值和預測值之間的相對誤差。

def root_mean_squared_log_error(true, pred): square_error = np.square((np.log(true + 1) - np.log(pred + 1)))     mean_square_log_error = np.mean(square_error)     rmsle_loss = np.sqrt(mean_square_log_error) return rmsle_loss

Huber Loss

Huber損失是線性和二次評分方法的組合。它有一個(ge) 超參數 delta,可以根據數據進行調整。對於(yu) 高於(yu) delta 的值,損失將是線性的(L1 損失),對於(yu) 低於(yu) delta 的值,損失將是二次的(L2 損失)。它平衡並結合了 MAE(平均絕對誤差)和 MSE(均方誤差)的良好特性。 

優(you) 點:

  • 它在零處是可微的。
  • 由於 delta 以上的線性度,異常值得到了正確處理。
  • 可以調整超參數delta以最大限度地提高模型準確性。

缺點:

  • 為了最大限度地提高模型精度,需要優化delta,這是一個迭代過程。
  • 它隻能微分一次。

def huber_loss(true, pred, delta): huber_mse = 0.5 * np.square(true - pred)     huber_mae = delta * (np.abs(true - pred) - 0.5 * (np.square(delta))) return np.where(np.abs(true - pred) <= delta, huber_mse, huber_mae)

Log Cosh Loss

Log cosh 計算誤差的雙曲餘(yu) 弦的對數。這個(ge) 函數比二次損失更平滑。它像 MSE 一樣工作,但不受大預測誤差的影響。 

優(you) 點:

  • 同時處處可二次微分
  • 比 Huber需要更少的計算

缺點:

  • 適應性較差,因為它遵循固定的比例。
  • 與Huber loss相比,推導更複雜,需要深入研究。

def huber_loss(true, pred, delta): diff = np.cosh(pred - delta)     diff = np.log(diff) return diff.mean()

Quantile Loss

分位數回歸損失函數用於(yu) 預測分位數。分位數是確定組中有多少值低於(yu) 或高於(yu) 某個(ge) 限製的值。它跨預測變量(自變量)的值估計響應變量(因變量)的條件中位數或分位數。

【競賽報名/項目谘詢+微信:mollywei007】

上一篇

每個學校要求的雅思具體標準是什麽樣的?

下一篇

新加坡高考作文全網最細解題思路

你也可能喜歡

  • 暫無相關文章!

評論已經被關(guan) 閉。

插入圖片
返回頂部