評估推薦
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
評估推薦模型預測的精確度
Category:機器學習/評估
模組概觀
本文說明如何在機器學習 Studio (傳統) 中使用 [評估推薦] 模組,測量建議模型所做的預測精確度。 您可以使用此模組來評估四種不同的建議:
針對給定使用者和項目所預測的評等
推薦給特定使用者的項目
與給定使用者有關的使用者清單
與給定項目有關的項目清單
當您使用建議模型建立預測時,會針對每個支援的預測類型傳回稍微不同的結果。 [ 評估推薦 ] 模組會從計分資料集的資料行格式會推算預測的種類。 例如, 計分資料集 可能包含:
- 使用者-專案-評等三合一
- 使用者及其建議專案
- 使用者及其相關使用者
- 專案及其相關專案
此模組也會根據所做的預測類型,套用適當的效能度量。
如何設定評估推薦
[ 評估推薦 ] 模組會將建議模型的預測輸出與相對應的「真實事實」資料進行比較。 例如, 計分 Matchbox 推薦 模組會產生計分資料集,這些資料集可利用 評估推薦進行分析。
規格需求
評估推薦 需要下列資料集做為輸入。
測試資料集
測試資料集包含使用者-專案-評等三合一形式的「真實」資料。
如果您已經有一個包含使用者-專案-評等三合一的資料集,您可以使用 [ RecommenderSplit ] 選項套用 [分割資料] 模組,從現有的資料集建立訓練資料集和相關的測試集。
計分的資料集
計分資料集包含建議模型所產生的預測。
第二個資料集中的資料行取決於您在評分期間所執行的預測類型。 例如,評分的資料集可能包含下列其中一項:
- 使用者、專案,以及使用者可能為專案提供的評等
- 使用者清單和推薦給他們的項目清單
- 使用者清單,其使用者可能與他們相似
- 專案清單及 smiliar 專案
計量
模型的效能計量是根據輸入類型而產生。 如需詳細資訊,請參閱下列各節:
評估預測評等
評估預測評等時,評分資料集 (第二個輸入來 評估推薦) 必須包含 使用者-專案-評等三合一,符合下列需求:
資料集的第一個資料行包含使用者識別碼。
第二個資料行包含項目識別碼。
第三個資料行包含對應的使用者-項目評等。
重要
若要成功評估,資料行名稱必須分別為 User
、Item
和 Rating
。
[評估推薦] 會將地面真實資料集的評等與評分資料集的預測評等進行比較,並計算平均絕對錯誤 (MAE) ,以及 (RMSE) 的根本 mean 平方誤差。
[ 評估推薦 ] 的其他參數對評等預測沒有任何影響。
評估項目建議
評估專案建議時,請使用計分資料集,其中包含每個使用者的建議專案:
資料集的第一個資料行必須包含使用者識別碼。
所有後續的資料行應該包含對應的建議項目識別碼 (依項目與使用者的相關程度排序)。
連接此資料集之前,建議您先排序資料集,以便先將最相關的專案排在最前面。
[ 評估推薦 ] 的其他參數不會影響專案建議的評估。
重要
若要讓 評估推薦 能夠運作,資料行名稱必須是 User
、 Item 1
、 Item 2
等等 Item 3
。
[評估推薦] 會計算平均正規化累計累積增益 (NDCG) ,然後在輸出資料集中傳回。
因為無法得知建議專案的實際「真實事實」,所以 評估推薦 會使用測試資料集中的使用者-專案評等,以取得 NDCG 的計算。 若要評估,Recommender 評分模組必須只針對具有地真評等的項目 (測試資料集中) 產生建議。
評估相關使用者的預測
評估相關使用者的預測時,請針對每個感興趣的使用者,使用包含相關使用者的計分資料集:
第一個資料行必須包含每個感興趣使用者的識別碼。
所有後續的資料行都包含預測相關使用者的識別碼。 相關使用者會依類型的強度來排序, (最相關的使用者第一個) 。
若要讓 評估推薦 能夠運作,資料行名稱必須是
User
、Related User 1
、Related User 2
、Related User 3
等等。
提示
設定感興趣的使用者與其相關使用者必須共同具有的最小項目數目,即可影響評估。
[評估 Recommender] 會根據 Manhattan (L1 Sim NDCG) 和 Euclidean (L2 Sim NDCG) 距離計算平均正規化遞減累積增益 (NDCG),並在輸出資料集中傳回這兩個值。 因為相關使用者沒有實際的真實事實,所以 評估推薦 會使用下列程式來計算平均 ndcg。
針對評分資料集中每個感興趣的使用者:
在測試資料集中尋找依照感興趣的使用者和列入考量的相關使用者評等的所有項目。
從這些專案的評等建立兩個向量:一個適用于感興趣的使用者,另一個則適用于考慮的相關使用者。
依據 Manhattan (L1) 或 Euclidean (L2) 距離,計算增益成為所產生的兩個評等向量的相似度。
使用所有相關使用者的增益,計算 L1 Sim NDCG 和 L2 Sim NDCG。
評分資料集中所有使用者的平均 NDCG 值。
換句話說,增益的計算方式,是將感興趣的使用者 ( (正規化曼哈頓或 Euclidian 距離) 的使用者,計分資料集的第一個資料行中的專案) 和指定的相關使用者 (計分資料集) 的第 n 個數據行中的專案。 此使用者組的增益是使用已在原始資料中分級的所有專案( (測試集) 來計算)。 然後,NDCG 會藉由使用對數折扣來匯總單一感興趣的使用者和所有相關使用者的個別增益來計算。 也就是說,每個感興趣的使用者都會計算一個 NDCG 值 (計分資料集中的每個資料列) 。 最後報告的數位是計分資料集中所有感興趣使用者的算術平均值 (亦即其資料列) 。
因此,若要評估,推薦評分模組必須只預測相關使用者,這些使用者在測試資料集) 中, (具有「真實」評等的專案。
評估相關專案的預測
在評估相關專案的預測時,請使用計分資料集,其中包含每個感興趣專案的相關專案:
第一個資料行必須包含感興趣專案的識別碼。
所有後續的資料行都應該包含預測相關專案的識別碼,並依其對感興趣專案的相關程度來排序 (最相關的專案第一個) 。
若要讓 評估推薦 能夠運作,資料行名稱必須是
Item
、Related Item 1
、Related Item 2
、Related Item 3
等等。
提示
設定感興趣的項目與其相關項目必須共同具有的最小使用者數目,即可影響評估。
[評估推薦] 會根據曼哈頓 (L1 sim NDCG) 和 EUCLIDEAN (L2 sim NDCG) 距離,計算平均正規化累計累積增益 (NDCG) ,然後在輸出資料集中傳回這兩個值。 因為相關專案沒有實際的真實事實,所以 評估推薦 會計算平均 ndcg,如下所示:
針對評分資料集中每個感興趣的項目:
在測試資料集中尋找已評等感興趣的項目和列入考量的相關項目的所有使用者。
從這些使用者的評等建立兩個向量,一個用於感興趣的項目,一個用於列入考量的相關項目。
依據 Manhattan (L1) 或 Euclidean (L2) 距離,計算增益成為所產生的兩個評等向量的相似度。
使用所有相關項目的增益,計算 L1 Sim NDCG 和 L2 Sim NDCG。
評分資料集中所有感興趣專案的平均 NDCG 值。
換句話說,增益的計算方式為:曼哈頓或 Euclidian) 距離之間的相似性 (正規化資料集的第一個資料行中的專案 () 的專案與指定的相關專案 (計分資料集) 的第 n 個數據行中的專案。 此專案組的增益是使用已在原始資料中分級這兩個專案的所有使用者來計算 (測試集) 。 然後,會使用對數折扣來匯總感興趣的單一專案及其所有相關專案的個別增益來計算 NDCG。 也就是說,每個感興趣的專案都會計算一個 NDCG 值 (計分資料集中的每個資料列) 。 最後報告的數位是計分資料集中所有感興趣專案的算術平均值 (亦即其資料列) 。
因此,若要評估,推薦評分模組必須只預測) 測試資料集中 (的相關專案。
範例
如需如何在機器學習中使用建議模型的範例,請參閱Azure AI 資源庫:
Movie 推薦範例:示範如何使用建議模型來定型、評估和評分。
使用機器學習建立 .net 應用程式的建議引擎:此 blog 提供如何建立電影建議模型的詳細說明。
預期的輸入
名稱 | 類型 | 說明 |
---|---|---|
測試資料集 | 資料表 | 測試資料集 |
計分的資料集 | 資料表 | 計分的資料集 |
模組參數
名稱 | 範圍 | 類型 | 預設 | 描述 |
---|---|---|---|---|
查詢使用者和相關使用者必須已共同評等的最少項目數 | >=1 | 整數 | 2 | 指定必須已經由查詢使用者和相關使用者共同評等的最少項目數 這個參數是選擇性的 |
查詢專案和相關專案的使用者數目下限必須已由共同評分 | >=1 | 整數 | 2 | 指定必須已評等查詢項目和相關項目的最少使用者數目 這個參數是選擇性的 |
輸出
名稱 | 類型 | 說明 |
---|---|---|
計量 | 資料表 | 評估度量的資料表 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0022 | 如果輸入資料集中選取的資料行數目不等於預期的數目,就會發生例外狀況。 |
錯誤 0003 | 如果一或多個輸入為 Null 或空白,就會發生例外狀況。 |
錯誤 0017 | 如果一或多個指定的資料行具有目前模組不支援的類型,就會發生例外狀況。 |
錯誤 0034 | 如果給定的使用者/項目配對有多個評等,就會發生例外狀況。 |
錯誤 0018 | 如果輸入資料集無效,就會發生例外狀況。 |
錯誤 0002 | 如果有一或多個參數無法剖析或從指定的類型轉換成目標方法所需的類型,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。