机器数据分析平台

  • 机器数据分析平台 > 使用文档 > 应用平台 > Pandora机器学习工具包 >score的使用方式详述

    score的使用方式详述

    最近更新时间:2020-12-14 19:24:37

    Machine Learning App提供score算子用来做不同场景和不同数据下的模型评估。

    score支持的算法评估方式可以分为以下几类:

    1. 分类 - Classification
    2. 回归 - Regression
    3. 聚类 - Clustering

    分类 - Classification

    使用场景及限制:

    • 建议在测试数据集上运行,通过比较目标变量的真实数据和预测数据,用来评估分类模型的预测效果。
    • 支持1-1,1-n,n-n的比较,多用于评估比较不同分类模型在同一数据集上的预测效果。
    • 数据必须为int或者str,不支持float。
    • 模糊搜索( *)只能在1-n的情况下使用。

    通用语法:

    ..| score <scoring-method-name> [options] <actual_field_1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n>
    

    以下算法评估方式可以用来评估分类模型的预测效果。

    准确性 - Accuracy

    用accuracy_score可以计算真实值和预测值之间的准确性,即对于给定的测试数据集,分类器正确分类的样本数与总样本数之比,通常来说,准确率越高,分类器越好

    语法:

    ..| score accuracy_score normalize=<True|False> <actual_field_1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n> 
    

    参数说明:

    • 当normalize=True的时候,输出为正确分类的比例;当normalize=False的时候,输出为正确分类的绝对数量。
    • normalize 默认为True。

    混淆矩阵 - Confusion Matrix

    用confusion_matrix可以计算真实值和预测值的混淆矩阵,其每一列代表预测值,每一行代表的是实际的类别。它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。

    语法:

    ..| score confusion_matrix <actual_field> against <predicted_field>
    

    使用场景:

    • 只支持1-1的比较。
    • 不支持模糊搜索( *)。
    • 不接受任何参数。

    F-1值 - F1-score

    用f1_score可以计算真实值和预测值之间的F-1值,即精确率和召回率的一种调和平均数,F-1值越高,分类器越好。F-1值默认准确率和召回率所占权重相同。

    语法:

    ..| score f1_score average=<binary(default) | micro | macro | weighted> pos_label=<str | int> <actual_field_1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n> 
    

    参数说明:

    • average参数用来指定计算平均值的方式,支持设为None, Binary, Micro, Macro and Weighted。
      • average=Binary(默认值),只支持二元数据(即数据中只有两个类),输出为定义为pos_label的类的平均值。
      • average=None,输出为每一个类分别的平均值,只适用于1-1比较的情况。
      • average=micro,计算总体的平均值。
      • average=macro,计算每一个类的不加权的平均值,不关心类的数量的不平衡。
      • average=weighted,计算每一个类的加权后的平均值,关心类的数量的不平衡。
    • pos_label参数用来指定在二元数据中的正样本。
      • pos_label必须存在于预测值或者真实值之中。
      • 当average不是binary的时候,pos_label会被忽略。

    AUC值 - ROC-AUC-Score

    用roc_auc_score可以计算真实值和预测值之间的AUC值,即ROC曲线下的面积。AUC值越高,分类器越好。

    语法:

    score roc_auc_score pos_label=<str | int> <actual_field_1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n> 
    

    使用场景:

    • 只能用于二元数据的分析。如果原始数据是多元的,必须通过pos_label参数把多元数据转变成二元数据。
    • 输入值必须为连续性数据(int或者float)。

    参数说明:

    • pos_label参数用来指定数据中的正样本。
      • 当数据是二元的时候,pos_label可以不提供。
      • 当数据是多元的时候,pos_label必须提供,且存在于预测值或者真实值之中。在这种情况下,pos_label指定的正样本会被识别为1,其他所有类都会被识别为0。

    回归 - Regression

    使用场景及限制:

    • 建议在测试数据集上运行,通过比较目标变量的真实数据和预测数据,用来评估回归模型的预测效果。
    • 支持1-1,1-n,n-n的比较,多用于评估比较不同回归模型在同一数据集上的预测效果。
    • actual_fields的数量和predicted_fields的数量必须相等或者其中一者的数量为1。
    • 在1-n的情况下,参数multioutput自动设为raw_values,如果用户已经设定multioutput为其他参数数值,评估算法会报错。
    • 数据必须为int或者float,不支持str。
    • 模糊搜索( *)只能在1-n的情况下使用。

    通用语法:

    ..| score <scoring-method-name> [options] <actual_field_1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n> 
    

    以下算法评估方式可以用来评估回归模型的预测效果

    决定系数 - R2-score

    用r2_score可以计算真实值和预测值的R-squared值。

    语法:

    ...|score r2_score multioutput=<raw_values(default) | uniform_average | variance_weighted | None > <actual_field_1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n>
    

    参数说明:

    • multioutput用来指定若干单个变量损失以何种方式被平均
      • multioutput=raw_values(默认值),分别返回各维度得分。在multi-class的场景,输出每一个actual_field的field和每一个predicted_field的field相互比较的得分。
      • multioutput=uniform_average, 各输出维度得分的平均
      • multioutput=variance_weighted, 对所有输出的分数进行平均,并根据每个输出的方差进行加权。
      • multioutput=None, 等于multioutput=uniform_average

    均方误差 - Mean Squared Error (MSE)

    用mean_squared_error可以计算真实值和预测值的MSE值。

    语法:

    ...|score mean_squared_error multioutput=<raw_values(default) | uniform_average> <actual_field__1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n> 
    

    参数说明:

    • multioutput用来指定若干单个变量损失以何种方式被平均
      • multioutput=raw_values(默认值),分别返回各维度得分。在multi-class的场景,输出每一个actual_field的field和每一个predicted_field的field相互比较的得分。
      • multioutput=uniform_average, 各输出维度得分的平均

    平均绝对误差 - Mean Absolute Error (MAE)

    用mean_absolute_error可以计算真实值和预测值的MAE值。

    语法:

    ...|score mean_absolute_error multioutput=<raw_values(default) | uniform_average> <actual_field__1> ... <actual_field_n> against <predicted_field_1> ... <predicted_field_n> 
    

    参数说明:

    • multioutput用来指定若干单个变量损失以何种方式被平均
      • multioutput=raw_values(默认值),分别返回各维度得分。在multi-class的场景,输出每一个actual_field的field和每一个predicted_field的field相互比较的得分。
      • multioutput=uniform_average, 各输出维度得分的平均

    聚类 - Clustering

    使用场景及限制:

    • 建议在测试数据集上运行,通过验证聚类之后的结果评估聚类模型的效果。
    • 不支持模糊搜索( *)

    通用语法:

    ..| score <scoring-method-name> [options] <label_field> against <feature_field_1> ... <feature_field_n>
    

    以下算法评估方式可以用来评估聚类模型的预测效果

    轮廓系数 - Silhouette Score

    用silhouette_score可以计算聚类结果的轮廓系数。通过计算样本i距离簇内其他样本的平均距离(即样本i的簇内不相似度),和样本i距离其他某簇Cj的所有样本的平均距离(样本i与簇Cj的不相似度),评估聚类模型对于簇的划分是否理想。通常来说,轮廓系数越大,说明聚类模型的分簇效果越好。

    语法:

    ...|score silhouette_score metric=<euclidean(default) | cityblock | cosine | l1 | l2 | manhattan | braycurtis | canberra | chebyshev | correlation | hamming | matching | minkowski | sqeuclidean> <label_field> against <feature_field_1> ... <feature_field_n> 
    

    参数说明:

    • feature_array可以有一个或者n个字段,数据必须为int或者float,不支持str。feature_array的输入为用来做聚类建模的特征字段。
    • label_array仅允许一个字段,且该字段必须为离散型数据(例如:a,b,c或1,2,3)。label_arary的输入为聚类的类别标签,可以是真实标签或者聚类之后划分的标签。
    • metric用来设定计算样本间距离的方式,默认为euclidean(欧式距离)。
    以上内容是否对您有帮助?
  • Qvm free helper
    Close