使用「模型分析」架構最佳化模型
模型深入分析框架為資料科學家提供以下工具: Data Science Workspace 根據實驗,快速且明智地選擇最佳機器學習模型。 此架構將提高機器學習工作流程的速度和有效性,並改善資料科學家的易用性。 為每個機器學習演演算法型別提供預設範本,以協助進行模型調整,藉此完成模型調整。 最終結果可讓資料科學家和公民資料科學家為其最終客戶做出更好的模型最佳化決策。
什麼是量度?
實作和訓練模型後,資料科學家的下一步工作是找出模型的執行效能。 系統會使用各種量度來瞭解模型與其他量度相較之下的效能。 部分使用的量度範例包括:
- 分類準確度
- 曲線下的區域
- 混淆矩陣
- 分類報告
設定配方代碼
目前,模型深入分析架構支援下列執行階段:
配方範常式式碼可在以下網址找到: experience-platform-dsw-reference 存放庫位於 recipes
. 在本教學課程中,將會參考此存放庫中的特定檔案。
Scala scala
有兩種方式可將量度帶入配方。 一種是使用SDK提供的預設評估量度,另一種是撰寫自訂評估量度。
Scala的預設評估量度
預設評估作為分類演演算法的一部分進行計算。 以下是目前已實作的評估器的一些預設值:
evaluation.class
com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
com.adobe.platform.ml.impl.DefaultMultiClassificationEvaluator
com.adobe.platform.ml.impl.RecommendationsEvaluator
您可以在的配方中定義評估器 application.properties 中的檔案 recipe
資料夾。 啟用「 」的範常式式碼 DefaultBinaryClassificationEvaluator
如下所示:
evaluation.class=com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
evaluation.labelColumn=label
evaluation.predictionColumn=prediction
training.evaluate=true
啟用評估器類別後,系統會依預設在訓練期間計算多個量度。 您可以將下列行新增至以明確宣告預設量度 application.properties
.
evaluation.metrics.com=com.adobe.platform.ml.impl.Constants.DEFAULT
可以透過變更的值來啟用特定量度 evaluation.metrics.com
. 在以下範例中,已啟用F分數量度。
evaluation.metrics=com.adobe.platform.ml.impl.Constants.FSCORE
下表列出每個類別的預設量度。 使用者也可以使用 evaluation.metric
欄,以啟用特定量度。
evaluator.class
evaluation.metric
DefaultBinaryClassificationEvaluator
-Recall
— 混淆矩陣
-F分數
— 精確度
— 接收者操作特性
— 接收器操作特性下的區域
PRECISION
-
RECALL
-
CONFUSION_MATRIX
-
FSCORE
-
ACCURACY
-
ROC
-
AUROC
DefaultMultiClassificationEvaluator
-Recall
— 混淆矩陣
-F分數
— 精確度
— 接收者操作特性
— 接收器操作特性下的區域
PRECISION
-
RECALL
-
CONFUSION_MATRIX
-
FSCORE
-
ACCURACY
-
ROC
-
AUROC
RecommendationsEvaluator
— 標準化折現累積收益
— 平均倒數排名
— 量度K
MEAN_AVERAGE_PRECISION
-
NDCG
-
MRR
-
METRIC_K
Scala的自訂評估量度
擴充介面以提供自訂評估器 MLEvaluator.scala
在您的 Evaluator.scala
檔案。 在範例中 Evaluator.scala 檔案,我們定義自訂 split()
和 evaluate()
函式。 我們的 split()
函式會以8:2的比率隨機分割資料,而 evaluate()
函式會定義並傳回3個量度:MAPE、MAE和RMSE。
MLMetric
類別,請勿使用 "measures"
的 valueType
建立新時 MLMetric
否則量度不會填入自訂評估量度表格中。metrics.add(new MLMetric("MAPE", mape, "double"))
不是這個:
metrics.add(new MLMetric("MAPE", mape, "measures"))
一旦在配方中定義之後,下一步就是要在配方中啟用它。 這可在以下位置完成: application.properties 專案中的檔案 resources
資料夾。 此處 evaluation.class
設為 Evaluator
類別定義於 Evaluator.scala
evaluation.class=com.adobe.platform.ml.Evaluator
在 Data Science Workspace,使用者將可檢視實驗頁面中「評估量度」索引標籤中的深入分析。
Python/Tensorflow pythontensorflow
截至目前,尚無下列專案的預設評估量度 Python 或 Tensorflow. 因此,若要取得的評估量度 Python 或 Tensorflow,您需要建立自訂評估量度。 這可透過實作 Evaluator
類別。
自訂評估量度 Python
對於自訂評估量度,需要為評估器實作兩種主要方法: split()
和 evaluate()
.
對象 Python,這些方法的定義如下: evaluator.py 的 Evaluator
類別。 請遵循 evaluator.py 連結以取得以下專案的範例: Evaluator
.
在中建立評估量度 Python 需要使用者實作 evaluate()
和 split()
方法。
此 evaluate()
方法會傳回量度物件,該物件包含量度物件的陣列,其屬性為 name
, value
、和 valueType
.
目的 split()
方法是輸入資料,並輸出訓練和測試資料集。 在我們的範例中, split()
方法輸入資料時使用 DataSetReader
SDK,接著移除不相關的欄,以清除資料。 從那裡,其他功能是從資料中的現有原始功能建立的。
此 split()
方法應傳回訓練和測試資料流,然後由 pipeline()
訓練和測試ML模型的方法。
Tensorflow的自訂評估量度
對象 Tensorflow,類似於 Python,方法 evaluate()
和 split()
在 Evaluator
類別需要實作。 對象 evaluate()
,則傳回量度的時間 split()
傳回訓練集和測試資料集。
from ml.runtime.python.Interfaces.AbstractEvaluator import AbstractEvaluator
class Evaluator(AbstractEvaluator):
def __init__(self):
print ("initiate")
def evaluate(self, data=[], model={}, config={}):
return metrics
def split(self, config={}):
return 'train', 'test'
R r
截至目前,R沒有預設的評估量度。因此,若要取得R的評估量度,您需要定義 applicationEvaluator
類別作為配方的一部分。
R的自訂評估量度
的主要用途 applicationEvaluator
是傳回包含量度索引鍵值配對的JSON物件。
此 applicationEvaluator.R 可作為範例。 在此範例中, applicationEvaluator
分為三個常見的區段:
- 載入資料
- 資料準備/功能工程
- 擷取已儲存的模型並評估
資料會先從來源載入至資料集,如中所定義 retail.config.json. 從那裡,資料經過清理和工程處理,以符合機器學習模型。 最後,此模型可用我們的資料集進行預測,並根據預測值和實際值計算量度。 在這種情況下,MAPE、MAE和RMSE定義並傳回 metrics
物件。
使用預先建立的量度和視覺效果圖表
此 Sensei Model Insights Framework 將支援每個機器學習演演算法型別的預設範本。 下表顯示常見的高階機器學習演演算法類別以及對應的評估量度和視覺效果。
- MAPI
- MASE
- AME
— 精確召回
— 準確度
- F分數(特別指F1、F2)
- AUC
- ROC
— 針對每個類別:
— 精確召回率
- F分數(尤其是F1、F2)
- RI (蘭特指數)、ARI (調整後蘭特指數)
— 同質性分數、完整度分數和V量值
- FMI (Fowlkes-Mallows指數)
— 純度
- Jaccard索引
— 剪影係數
- CHI (Calinski-Harabaz index)
- DBI (Davies-Bouldin索引)
- Dunn索引
— 標準化折現累積收益
— 平均倒數排名
— 量度K