模型分析框架为数据科学家提供了 Data Science Workspace 在实验的基础上,快速、灵活地选择最优的机器学习模型。 该框架将提高机器学习工作流的速度和有效性,并提高数据科学家的易用性。 这是通过为每个机器学习算法类型提供默认模板来协助模型调整来完成的。 最终结果使数据科学家和公民数据科学家能够为其最终客户做出更好的模型优化决策。
在实施和训练模型之后,数据科学家下一步要做的就是找到模型的性能。 可使用各种量度来查找与其他量度相比,模型的效果如何。 使用的量度示例包括:
目前,模型分析框架支持以下运行时:
方法的示例代码可在 experience-platform-dsw-reference 存储库 recipes
. 在本教程中将引用此存储库中的特定文件。
可通过两种方式将量度引入方法。 一种是使用SDK提供的默认评估量度,另一种是编写自定义评估量度。
默认评估将作为分类算法的一部分进行计算。 以下是当前实施的计算器的一些默认值:
计算器类 | evaluation.class |
---|---|
DefaultBinaryClassificationEvaluator | com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator |
DefaultMultiClassificationEvaluator | com.adobe.platform.ml.impl.DefaultMultiClassificationEvaluator |
RecommendationsEvaluator | 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 |
— 精度 — 召回 — 混淆矩阵 -F分数 — 准确度 接收器操作特性 接收器工作特性下的区域 |
-PRECISION - RECALL - CONFUSION_MATRIX - FSCORE - ACCURACY - ROC - AUROC |
DefaultMultiClassificationEvaluator |
— 精度 — 召回 — 混淆矩阵 -F分数 — 准确度 接收器操作特性 接收器工作特性下的区域 |
-PRECISION - RECALL - CONFUSION_MATRIX - FSCORE - ACCURACY - ROC - AUROC |
RecommendationsEvaluator |
— 平均精度(MAP) — 标准化折扣累计收益 — 平均倒数排名 — 量度K |
-MEAN_AVERAGE_PRECISION - NDCG - MRR - METRIC_K |
通过扩展的接口,可以提供自定义计算器 MLEvaluator.scala
在 Evaluator.scala
文件。 在示例中 计算器.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. 因此,要获取 Python 或 Tensorflow,则需要创建自定义评估量度。 这可以通过实施 Evaluator
类。
对于自定义评估量度,需要为评估器实施以下两种主要方法: split()
和 evaluate()
.
对于 Python,这些方法将在 evaluator.py 对于 Evaluator
类。 关注 evaluator.py 链接,以查看 Evaluator
.
在中创建评估量度 Python 需要用户实施 evaluate()
和 split()
方法。
的 evaluate()
方法返回包含属性为 name
, value
和 valueType
.
的目的 split()
方法是输入数据并输出训练和测试数据集。 在本例中, split()
方法使用 DataSetReader
SDK,然后通过删除不相关的列来清理数据。 从此处,将根据数据中的现有原始功能创建其他功能。
的 split()
方法应返回训练和测试数据帧,然后数据帧将被使用 pipeline()
ML模型的训练和测试方法。
对于 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的评估量度,您需要定义 applicationEvaluator
类。
的主要目的 applicationEvaluator
是返回包含量度键值对的JSON对象。
此 applicationEvaluator.R 例子。 在本例中, applicationEvaluator
分为三个熟悉的部分:
数据首先从源加载到数据集(如 retail.config.json. 从那里,将清理并设计数据以适合机器学习模型。 最后,利用模型进行预测,根据预测值和实际值计算量度。 在这种情况下,定义MAPE、MAE和RMSE,并在 metrics
对象。
的 Sensei Model Insights Framework 将为每种类型的机器学习算法支持一个默认模板。 下表显示了常见的高级机器学习算法类以及相应的评估量度和可视化图表。
ML算法类型 | 评估量度 | 可视化图表 |
---|---|---|
回归 | - RMSE - MAPE - MASE - MAE |
预测值与实际值叠加曲线 |
二进制分类 | — 混淆矩阵 - Precision-recall — 准确性 - F分数(特别是F1、F2) - AUC — 中华民国 |
ROC曲线与混淆矩阵 |
多类分类 | — 混淆矩阵 — 对于每个类: — 精度查全率 - F分数(特别是F1、F2) |
ROC曲线与混淆矩阵 |
聚类(含地面真值) | - NMI(标准化互信分数)、AMI(调整后互信分数) - RI(兰德指数)、ARI(调整后兰德指数) — 同质性分数、完整性分数和V度量 - FMI(福尔克斯 — 马洛斯指数) — 纯度 - Jaccard索引 |
具有相对簇大小的簇和中心的簇图反映位于簇内的数据点 |
聚类(不含地面真值) | — 惯性 — 侧面影像系数 - CHI(卡林斯基 — 哈拉巴斯指数) - DBI(Davies-Bouldin指数) - Dunnindex |
具有相对簇大小的簇和中心的簇图反映位于簇内的数据点 |
推荐 | — 平均精度(MAP) — 标准化折扣累计收益 — 平均倒数排名 — 量度K |
待定 |
TensorFlow用例 | 张量流模型分析(TFMA) | 深度比较神经网络模型比较/可视化 |
其他/错误捕获机制 | 由模型作者定义的自定义量度逻辑(和相应的评估图)。 模板不匹配时的正常错误处理 | 包含评估量度键值对的表 |