搜尋
首頁科技週邊人工智慧CRPS:貝葉斯機器學習模型的評分函數

CRPS:貝葉斯機器學習模型的評分函數

Apr 12, 2023 am 11:07 AM
函數機器學習評分函數

連續分級機率評分(Continuous Ranked Probability Score, CRPS)或「連續機率排位分數」是一個函數或統計量,可以將分佈預測與真實值進行比較。

CRPS:貝葉斯機器學習模型的評分函數

機器學習工作流程的一個重要部分是模型評估。這個過程本身可以被認為是常識:將資料分成訓練集和測試集,在訓練集上訓練模型,並使用評分函數評估其在測試集上的表現。

評分函數(或測量)是將真實值及其預測映射到單一且可比較的值 [1]。例如,對於連續預測可以使用 RMSE、MAE、MAPE 或 R 平方等評分函數。如果預測不是逐點估計,而是分佈呢?

在貝葉斯機器學習中,預測通常不是逐點估計,而是值的分佈。例如預測可以是分佈的估計參數,或是在非參數情況下,來自MCMC方法的樣本陣列。

在這種情況下,傳統的評分函數不適合統計設計;預測的分佈聚合成它們的平均值或中位數會導致關於預測分佈的分散和形狀的大量資訊的損失。

CRPS

連續分級機率評分(CRPS)是一個分數函數,它將單一真實值與累積分佈函數(CDF)進行比較:

CRPS:貝葉斯機器學習模型的評分函數

它在70 年代首次引入[4],主要用於天氣預報,現在在文獻和行業中重新受到關注[1] [6]。當目標變數是連續的並且模型預測目標的分佈時,它可以用作評估模型性能的指標;示例包括貝葉斯回歸或貝葉斯時間序列模型 [5]。

透過使用CDF, CRPS 對於參數和非參數預測都很有用:對於許多分佈,CRPS [3] 都有解析表達式,對於非參數預測, CRPS 使用經驗累積分佈函數(eCDF) 。

在計算測試集中每個觀察值的 CRPS 後,還需要將結果聚集成一個值。與RMSE 和MAE 類似,使用(可能是加權的)平均值對它們進行匯總:

CRPS:貝葉斯機器學習模型的評分函數

將單一值與分佈進行比較的主要挑戰是如何將單一值轉換成為分佈的表示。 CRPS透過將基本真值轉換為帶有指標函數的退化分佈來解決這一問題。例如如果真值是7,我們可以用:

CRPS:貝葉斯機器學習模型的評分函數

指標函數是有效的 CDF,可以滿足 CDF 的所有要求。然後就可以將預測分佈與真值的退化分佈進行比較。我們肯定希望預測的分佈盡可能接近真實情況;所以可以透過測量這兩個CDF 之間的(平方)面積來數學表示:

CRPS:貝葉斯機器學習模型的評分函數

##MAE與MAE關係

CRPS與著名的MAE(平均絕對誤差)密切相關。如果採用逐點預測將其視為退化CDF 並將其註入CRPS 方程式可以得到:

CRPS:貝葉斯機器學習模型的評分函數

所以如果預測分佈是退化分佈(例如逐點估計),則CRPS 會降低為MAE。這有助於我們從另一個角度理解CRPS:它可以被視為將 MAE 推廣到分佈的預測中,或者說當預測分佈退化時,MAE 是 CRPS 的特殊情況。

當模型的預測是參數分佈時(例如需要預測分佈參數),CRPS 對一些常見的分佈有一個解析表達式 [3]。如果模型預測常態分佈的參數μ 和σ,則可以使用下列公式計算CRPS:

CRPS:貝葉斯機器學習模型的評分函數

這個方案可以解決已知的分佈,如Beta, Gamma, Logistic ,對數常態分佈和其他[3]。

當預測是非參數的,或者更具體地說——預測是一系列模擬時,計算 eCDF 是一項繁重的任務。但是CRPS 也可以表示為:

CRPS:貝葉斯機器學習模型的評分函數

其中 X, X' 是 F 獨立同分佈。這些表達式雖然仍然需要一些計算量,但更容易計算。

Python實作

import numpy as np
 
 
 # Adapted to numpy from pyro.ops.stats.crps_empirical
 # Copyright (c) 2017-2019 Uber Technologies, Inc.
 # SPDX-License-Identifier: Apache-2.0
 def crps(y_true, y_pred, sample_weight=None):
 num_samples = y_pred.shape[0]
 absolute_error = np.mean(np.abs(y_pred - y_true), axis=0)
 
 if num_samples == 1:
 return np.average(absolute_error, weights=sample_weight)
 
 y_pred = np.sort(y_pred, axis=0)
 diff = y_pred[1:] - y_pred[:-1]
 weight = np.arange(1, num_samples) * np.arange(num_samples - 1, 0, -1)
 weight = np.expand_dims(weight, -1)
 
 per_obs_crps = absolute_error - np.sum(diff * weight, axis=0) / num_samples**2
 return np.average(per_obs_crps, weights=sample_weight)

根據NRG形式[2]實現的CRPS函數。改編自pyroppl[6]

import numpy as np
 
 
 def crps(y_true, y_pred, sample_weight=None):
 num_samples = y_pred.shape[0]
 absolute_error = np.mean(np.abs(y_pred - y_true), axis=0)
 
 if num_samples == 1:
 return np.average(absolute_error, weights=sample_weight)
 
 y_pred = np.sort(y_pred, axis=0)
 b0 = y_pred.mean(axis=0)
 b1_values = y_pred * np.arange(num_samples).reshape((num_samples, 1))
 b1 = b1_values.mean(axis=0) / num_samples
 
 per_obs_crps = absolute_error + b0 - 2 * b1
 return np.average(per_obs_crps, weights=sample_weight)

上面程式碼是根據PWM形式[2]實作CRPS。

總結

連續分級機率評分 (CRPS) 是一種評分函數,用於將單一真實值與其預測分佈進行比較。此屬性使其與貝葉斯機器學習相關,其中模型通常輸出分佈預測而不是逐點估計。它可以看作是眾所周知的 MAE 對分佈預測的推廣。

它具有用於參數預測的解析表達式,並且可以針對非參數預測進行簡單計算。 CRPS 可能會成為評估具有連續目標的貝葉斯機器學習模型性能的新標準方法。

以上是CRPS:貝葉斯機器學習模型的評分函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
及時工程中的思想圖是什麼及時工程中的思想圖是什麼Apr 13, 2025 am 11:53 AM

介紹 在迅速的工程中,“思想圖”是指使用圖理論來構建和指導AI的推理過程的新方法。與通常涉及線性S的傳統方法不同

優化您的組織與Genai代理商的電子郵件營銷優化您的組織與Genai代理商的電子郵件營銷Apr 13, 2025 am 11:44 AM

介紹 恭喜!您經營一家成功的業務。通過您的網頁,社交媒體活動,網絡研討會,會議,免費資源和其他來源,您每天收集5000個電子郵件ID。下一個明顯的步驟是

Apache Pinot實時應用程序性能監視Apache Pinot實時應用程序性能監視Apr 13, 2025 am 11:40 AM

介紹 在當今快節奏的軟件開發環境中,確保最佳應用程序性能至關重要。監視實時指標,例如響應時間,錯誤率和資源利用率可以幫助MAIN

Chatgpt擊中了10億用戶? Openai首席執行官說:'短短幾週內翻了一番Chatgpt擊中了10億用戶? Openai首席執行官說:'短短幾週內翻了一番Apr 13, 2025 am 11:23 AM

“您有幾個用戶?”他扮演。 阿爾特曼回答說:“我認為我們上次說的是每週5億個活躍者,而且它正在迅速增長。” “你告訴我,就像在短短幾週內翻了一番,”安德森繼續說道。 “我說那個私人

pixtral -12b:Mistral AI'第一個多模型模型 - 分析Vidhyapixtral -12b:Mistral AI'第一個多模型模型 - 分析VidhyaApr 13, 2025 am 11:20 AM

介紹 Mistral發布了其第一個多模式模型,即Pixtral-12b-2409。該模型建立在Mistral的120億參數Nemo 12B之上。是什麼設置了該模型?現在可以拍攝圖像和Tex

生成AI應用的代理框架 - 分析Vidhya生成AI應用的代理框架 - 分析VidhyaApr 13, 2025 am 11:13 AM

想像一下,擁有一個由AI驅動的助手,不僅可以響應您的查詢,還可以自主收集信息,執行任務甚至處理多種類型的數據(TEXT,圖像和代碼)。聽起來有未來派?在這個a

生成AI在金融部門的應用生成AI在金融部門的應用Apr 13, 2025 am 11:12 AM

介紹 金融業是任何國家發展的基石,因為它通過促進有效的交易和信貸可用性來推動經濟增長。交易的便利和信貸

在線學習和被動攻擊算法指南在線學習和被動攻擊算法指南Apr 13, 2025 am 11:09 AM

介紹 數據是從社交媒體,金融交易和電子商務平台等來源的前所未有的速度生成的。處理這種連續的信息流是一個挑戰,但它提供了

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器