网站后台上传附件,锦州网站建设工作,移动端网站提交提交,天津城市基础设施建设投资集团有限公司网站1 分类
1.1 accuracy_score 分类准确率得分
在多标签分类中#xff0c;此函数计算子集准确率#xff1a;y_pred的标签集必须与 y_true 中的相应标签集完全匹配。 1.1.1 参数
y_true真实#xff08;正确#xff09;标签y_pred由分类器返回的预测标签normalize 默认为 Tr…1 分类
1.1 accuracy_score 分类准确率得分
在多标签分类中此函数计算子集准确率y_pred的标签集必须与 y_true 中的相应标签集完全匹配。 1.1.1 参数
y_true真实正确标签y_pred由分类器返回的预测标签normalize 默认为 True返回正确分类的样本比例 如果为 False返回正确分类的样本数量 sample_weight样本权重 二元分类中等同于 jaccard_score
1.1.2 举例
from sklearn.metrics import accuracy_scorey_pred [0, 2, 1, 3]
y_true [0, 1, 2, 3]
accuracy_score(y_true, y_pred)
#0.5accuracy_score(y_true, y_pred, normalizeFalse)
#2
1.2 balanced_accuracy_score 计算平衡准确率
平衡准确率用于二元和多类分类问题中处理数据不平衡的情况。它定义为每个类别上获得的召回率的平均值。
当 adjustedFalse 时最佳值为 1最差值为 0
sklearn.metrics.balanced_accuracy_score(y_true, y_pred, *, sample_weightNone, adjustedFalse)
1.2.1 参数
y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重adjusted当为真时结果会进行机会调整使随机性能得分为 0而完美性能保持得分为 1
1.2.2 举例
from sklearn.metrics import balanced_accuracy_score
y_true [0, 1, 0, 0, 1, 0]
y_pred [0, 1, 0, 0, 0, 1]
balanced_accuracy_score(y_true, y_pred),accuracy_score(y_true, y_pred)
#(0.625, 0.6666666666666666)
3/41/20.6251.3 top_k_accuracy_scoreTop-k 准确率分类得分
计算正确标签位于预测按预测得分排序的前 k 个标签中的次数
sklearn.metrics.top_k_accuracy_score(y_true, y_score, *, k2, normalizeTrue, sample_weightNone, labelsNone)
1.3.1 参数
y_true真实正确的目标值y_pred由分类器返回的预估目标值ktopk的knormalize 默认为 True返回正确分类的样本比例 如果为 False返回正确分类的样本数量 sample_weight样本权重
1.3.2 举例
import numpy as np
from sklearn.metrics import top_k_accuracy_score
y_true np.array([0, 1, 2, 2])
y_score np.array([[0.5, 0.2, 0.2], # 0 is in top 2[0.3, 0.4, 0.2], # 1 is in top 2[0.2, 0.4, 0.3], # 2 is in top 2[0.7, 0.2, 0.1]]) # 2 isnt in top 2
top_k_accuracy_score(y_true, y_score, k2)
#0.75
1.4 f1_score F1 分数
sklearn.metrics.f1_score(y_true, y_pred, *, labelsNone, pos_label1, averagebinary, sample_weightNone, zero_divisionwarn) 1.4.1 参数
y_true真实正确的目标值y_pred由分类器返回的预估目标值labels 当 average ! binary 时包括的标签集以及 average 为 None 时的标签顺序。 可以排除labels数据中存在的标签例如在多类分类中可视为被排除的“负类” 默认情况下labelsNone即使用 y_true 和 y_pred 中的所有标签按排序顺序 pos_label 如果 averagebinary 且数据为二元则报告该类 对于多类或多标签目标设置 labels[pos_label] 并且 average ! binary 来仅报告一个标签的指标 average 这是对多类/多标签目标必需的。 如果为 None则返回每个类的分数。 否则这决定了对数据执行的平均类型 binary仅报告由 pos_label 指定的类的结果micro通过计算总的真正例、假负例和假正例来全局计算指标macro为每个标签计算指标并找到它们的无权重平均。这不考虑标签不平衡。weighted为每个标签计算指标并根据支持度每个标签的真实实例数找到它们的加权平均samples为每个实例计算指标并找到它们的平均sample_weight样本权重zero_division当发生零除法时返回的值即所有预测和标签都是负的情况
1.4.2 举例
import numpy as np
from sklearn.metrics import f1_score
y_true [0, 1, 2, 0, 1, 2]
y_pred [0, 2, 1, 0, 0, 1]
f1_score(y_true, y_pred, averagemacro)
#0.26666666666666666
f1_score(y_true, y_pred, averagemicro)
#0.3333333333333333
f1_score(y_true, y_pred, averageweighted)
#0.26666666666666666
f1_score(y_true, y_pred, averageNone)
#array([0.8, 0. , 0. ])
这个是怎么算出来的呢 1.5 precision_score recall_score
参数和用法和f1_score一致就不多说了
1.6 jaccard_score
参数和f1_score一致 1.6 log loss 交叉熵损失
对于具有真实标签 y 和概率估计 p 的单个样本log loss 为
1.6.1 参数
y_true真实正确的目标值y_pred由分类器返回的预估目标值eps Log loss 在 p0 或 p1 时未定义因此概率被剪辑到 max(eps, min(1 - eps, p)) 默认值取决于 y_pred 的数据类型 normalize bool默认为 True则返回每个样本的平均损失否则返回每个样本损失的总和。sample_weight样本权重labels labels array-like默认为 None 如果未提供将从 y_true 推断出标签。 提取出所有unique的label然后排序如果 labels 为 None 且 y_pred 的形状为 (n_samples,)则假定标签为二进制并从 y_true 中推断出来 1.6.2 举例
from sklearn.metrics import log_loss
log_loss([spam, ham, ham, spam],[[.1, .9], [.9, .1], [.8, .2], [.35, .65]])
#0.21616187468057912
怎么算出来的呢
首先这里没有提供labels所以需要自己从y_true中infer出来这边有两个不同的label“ham和”spam通过排序可以知道每一个二元组中的第一个元素是ham的概率第二个元素是spam的概率’‘
import math# 计算第一个样本的 log loss
loss1 -(1 * math.log(0.9) 0 * math.log(0.1))# 计算第二个样本的 log loss
loss2 -(0 * math.log(0.1) 1 * math.log(0.9))# 计算第三个样本的 log loss
loss3 -(0 * math.log(0.2) 1 * math.log(0.8))# 计算第四个样本的 log loss
loss4 -(1 * math.log(0.65) 0 * math.log(0.35))# 计算平均 log loss
average_log_loss (loss1 loss2 loss3 loss4) / 4
average_log_loss
#0.21616187468057912
2 聚类
2.1 调整互信息
sklearn.metrics.adjusted_mutual_info_score(labels_true, labels_pred, *, average_methodarithmetic)
调整互信息AMIAdjusted Mutual Information是互信息MIMutual Information的一个改进版本用于考虑随机性的影响。互信息通常会随着聚类数量的增加而增加无论是否实际上共享了更多的信息。AMI通过修正互信息排除了这种数量上的偏差。对于两个聚类 U 和 VAMI的计算公式如下
2.1.1 参数
y_true真实正确的目标值y_pred由分类器返回的预估目标值average_method {‘min’, ‘geometric’, ‘arithmetic’, ‘max’}默认为 ‘arithmetic’ 计算分母中规范化因子的方法
2.1.2 举例
from sklearn.metrics import adjusted_mutual_info_score
labels_true [0, 0, 1, 1, 2, 2]
labels_pred [0, 0, 1, 2, 2, 2]
ami_score adjusted_mutual_info_score(labels_true, labels_pred)
print(Adjusted Mutual Information (AMI) score:, ami_score)
#Adjusted Mutual Information (AMI) score: 0.5023607027202738
3 回归
3.1 max_error
sklearn.metrics.max_error(y_true, y_pred)y_true真实正确的目标值y_pred由分类器返回的预估目标值
from sklearn.metrics import max_error
y_true [3, 2, 17, 1]
y_pred [4, 2, 7, 1]
max_error(y_true, y_pred)
#10 3.2 mean_absolute_error
sklearn.metrics.mean_absolute_error(y_true, y_pred, *, sample_weightNone, multioutputuniform_average) 3.2.1 参数
y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重
3.2.2 举例
from sklearn.metrics import mean_absolute_error
y_true [0.5, -1, 7]
y_pred [0, -1, 8]
mean_absolute_error(y_true, y_pred)
#0.5y_true [[0.5, 1], [-1, 1], [7, -6]]
y_pred [[0, 2], [-1, 2], [8, -5]]
mean_absolute_error(y_true, y_pred, multioutputraw_values)
#array([0.5, 1. ])mean_absolute_error(y_true, y_pred)
#0.75
#上式两个取平均mean_absolute_error(y_true, y_pred, multioutput[0.3, 0.7])
#0.85
#0.5*0.31*0.7
3.3mean_squared_error sklearn.metrics.mean_squared_error(y_true, y_pred, *, sample_weightNone, multioutputuniform_average, squareddeprecated)
y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重squared 如果为True就是MSE 如果为False就是RMSE
3.4 root_mean_squared_error y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重
3.5mean_squared_log_error
sklearn.metrics.mean_squared_log_error(y_true, y_pred, *, sample_weightNone, multioutputuniform_average, squareddeprecated) y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重squared 如果为True就是MSLE 如果为False就是RMSLE
3.6 root_mean_squared_log_error
root_mean_squared_log_error(y_true, y_pred, *, sample_weightNone, multioutputuniform_average)
y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重
3.7 median_absolute_error sklearn.metrics.median_absolute_error(y_true, y_pred, *, multioutputuniform_average, sample_weightNone)
y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重 3.8 median_absolute_error
sklearn.metrics.median_absolute_error(y_true, y_pred, *, multioutputuniform_average, sample_weightNone)
absolute error的中位数
y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重 3.9 mean_absolute_percentage_error
sklearn.metrics.mean_absolute_percentage_error(y_true, y_pred, *, sample_weightNone, multioutputuniform_average) y_true真实正确的目标值y_pred由分类器返回的预估目标值sample_weight样本权重multioutput 定义多输出值的聚合方式 ‘raw_values’在多输出输入的情况下返回每个输出的完整误差集。‘uniform_average’所有输出的误差将以均匀权重进行平均。若为 array-like 值则定义用于平均误差的权重