模型评估

282 阅读6分钟

一、分类评估指标

  • 真阳率:

    True Positive Rate=\frac {TP}{TP+FN}

    TruePositiveRate=TP+FNTP​

  • 假(伪)阳率:

    False Positive Rate=\frac{FP}{FP+TN}

    FalsePositiveRate=FP+TNFP​

  • ROCAUC:ROC曲线以TPR为纵轴,FPR为横轴绘制的ROC曲线,AUC为该曲线下的面积

  • 精确率:

    Precision=\frac {TP}{TP+FP}

    Precision=TP+FPTP​

  • 准确率:

    Accurary=\frac {TP+TN}{TP+TN+FP+FN}

    Accurary=TP+TN+FP+FNTP+TN​

  • 召回率:

    Recall=\frac {TP}{TP+FN}

    Recall=TP+FNTP​ =

    Tpr

    Tpr

  • F-measure:

    F-measure=\frac {2*Precision*Recall}{Precision+Recall}

    F−measure=Precision+Recall2∗Precision∗Recall​

二、回归评估指标 (y是真实值, \hat{y}y^​是预测值, var是方差,MAE是L1损失的期望,\bar{y}yˉ​是y的平均值)

1.均方误差 Mean squared error

  • MSE(y, \hat{y}) = \frac{1}{n_{samples}}\sum^{n_{samples-1}}_{i=0}(y_{i} - \hat{y_{i}})^2

    MSE(y,y^​)=nsamples​1​∑i=0nsamples−1​​(yi​−yi​^​)2

    2.平均绝对值误差 Mean absolute error

  • 取值越小,模型拟合效果越好

  • MAE(y, \hat{y}) = \frac{1}{n_{samples}}\sum^{n_{samples-1}}_{i=0}|y_{i} - \hat{y_{i}}|

    MAE(y,y^​)=nsamples​1​∑i=0nsamples−1​​∣yi​−yi​^​∣

    3. R² score 决定系数,R方

  • 度量多元回归方程中拟合程度的一个统计量,R越接近1,表明回归平方和占总平方和的比例越大,回归线与各观测点越接近,,回归线拟合程度越高。

  • 一般来说,增加自变量的个数,回归平方和会增加,残差平方和会减少,所以R方会增大。

  • R^2(y, \hat{y}) = 1 - \frac{\sum^{n}_{i=1}(y_i - \hat{y_i})^2}{\sum^{n}_{i=1}(y_i - \bar{y_i})^2}

    R2(y,y^​)=1−∑i=1n​(yi​−yi​ˉ​)2∑i=1n​(yi​−yi​^​)2​

    4.解释方差分 explained_variance_score

  • 取值:0-1,越小效果越差

  • explained\_variance(y,\hat{y}) = 1 - \frac{Var\{y - \hat{y}\}}{Var\{y\}}

    explained_variance(y,y^​)=1−Var{y}Var{y−y^​}​

    5.均方对数误差(Mean squared logarithmic error)

  • 在目标实现指数增长时,使用该指标较为合适。且y不可为负数

  • MSLE(y, \hat{y}) = \frac{1}{n_{samples}}\sum^{n_{samples-1}}_{i=0}(\log(1 + y_i) - \log(1 + \hat{y_i}))^2

    MSLE(y,y^​)=nsamples​1​∑i=0nsamples−1​​(log(1+yi​)−log(1+yi​^​))2

    6.中位数绝对误差(Median absolute error)

  • 适用于包含异常值的数据的衡量。

    MedAE(y, \hat{y}) = median(|y_1 - \hat{y_1}|, ...,|y_n - \hat{y_n}|)

    MedAE(y,y^​)=median(∣y1​−y1​^​∣,...,∣yn​−yn​^​∣)

三、聚类的评估指标

3.1.内部质量评价标准

3.1.1.轮廓系数

  • 轮廓系数的区间为:[-1, 1]。 -1代表分类效果差,1代表分类效果好。0代表聚类重叠,没有很好的划分聚类。

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    `from sklearn.cluster` `import` `KMeans`
    `from sklearn` `import` `cluster`
    `from sklearn` `import` `metrics`
    `# 基于Kmeans完成聚类`
    `kmeans = sc.KMeans(n_clusters=``4``)`
    `model.fit(x) # 完成聚类`
    `pred_y = kmeans.predict(x) # 预测点在哪个聚类中`
    `print(pred_y) # 输出每个样本的聚类标签`
    `# 轮廓系数`
    `metrics.silhouette_score(x, pred_y, sample_size=len(x), metric=``'euclidean'``)`
    `# 获取聚类中心`
    `centers = kmeans.cluster_centers_`
  • a:某个样本与其所在簇内其他样本的平均距离
    b:某个样本与其他簇样本的平均距离
    则针对某个样本的轮廓系数s为:

    s=\frac{b-a}{max(a,b)}

    s=max(a,b)b−a​
    聚类总的轮廓系数SC为:

    SC=\frac{1}{N}\Sigma_{i=1}^{N}SC(d_i)

    SC=N1​Σi=1N​SC(di​)

  • 轮廓系数的缺点:
    对于簇结构为凸的数据轮廓系数值高,而对于簇结构非凸需要使用DBSCAN进行聚类的数据,轮廓系数值低,因此,轮廓系数不应该用来评估不同聚类算法之间的优劣,比如Kmeans聚类结果与DBSCAN聚类结果之间的比较。

3.1.2.CH值

  • 通过计算总体的相似度,簇间平均相似度或簇内平均相似度来评价聚类质量。评价聚类效果的高低通常使用聚类的有效性指标,所以目前的检验聚类的有效性指标主要是通过簇间距离和簇内距离来衡量。

    CH(K)=\frac{tr(B)/(K-1)}{tr(W)/(N-K)}

    CH(K)=tr(W)/(N−K)tr(B)/(K−1)​

    tr(B)=\Sigma_k^{j=i}||z_j-z||^2

    tr(B)=Σkj=i​∣∣zj​−z∣∣2 表示簇间距离差矩阵的迹

    tr(w)=\Sigma_{j=1}^{k}\Sigma_ {x^{(i)}\epsilon{zk}}||x_i-z_j||^2

    tr(w)=Σj=1k​Σx(i)ϵzk​∣∣xi​−zj​∣∣2 表示簇内离差矩阵的迹,z是整个数据集的均值,

    z_j

    zj​是第j 个簇

    c_j

    cj​的均值,N 代表聚类个数,K 代表当前的类。 CH(K) 值越大,聚类效果越好,CH主要计算簇间距离与簇内距离的比值。

  • 1
    2
    3
    `kmeans_model = KMeans(n_clusters=``3``, random_state=``1``).fit(X)`
    `labels = kmeans_model.labels_`
    `metrics.calinski_harabaz_score(X, labels)`
  • 优点:
    1)当簇类密集且簇间分离较好时,Caliniski-Harabaz分数越高,聚类性能越好。
    2)计算速度快。

  • 缺点:
    1)凸簇的Caliniski-Harabaz指数比其他类型的簇高,比如通过DBSCAN获得的基于密度的簇。

3.1.3. DB指数

  • 图片说明

  • DB指数的下限为0,DB指数越小,聚类性能越好。

  • 优点:
    1)DB指数的计算比轮廓系数简单;
    2)DB指数的计算只需要知道数据集的数量和特征;

  • 缺点:
    1)凸簇的DB指数比其他类型的簇高,比如通过DBSCAN获得的基于密度的簇。
    2)簇类中心的距离度量限制在欧式空间

3.2.外部指标

3.2.1.RI兰德系数

  • RI是衡量两个簇类的相似度,假设样本个数是n,定义:

  • RI=\frac{a+b}{C_n^2}

    RI=Cn2​a+b​ (

    C_n^2

    Cn2​是所有可能的样本对个数)

    3.2.2.ARI调整兰德系数

  • ARI解决了RI不能很好的描述随机分配簇类标记向量的相似度问题。

  • 图片说明
    其中E表示期望,max表示取最大值

  • 优点:
    1)ARI的取值范围为[-1,1],ARI越大表示预测簇向量和真实簇向量相似度越高,,ARI接近于0表示簇向量是随机分配,ARI为负数表示非常差的预测簇向量;
    2)对于任意的簇类数和样本数,随机分配标签的ARI分数接近于0;
    3)可用于评估无假设簇类结构的性能度量,如比较通过谱聚类降维后的k均值聚类算法的性能;

  • 缺点:
    1)需要知道真实数据的标记类信息,因此在实践中很难得到应用或可以人工手动标定数据(类似监督学习);

    3.2.3.AMI调整的互信息指数

  • AMI是基于预测簇向量与真实簇向量的互信息分数来衡量其相似度的,AMI越大相似度越高,AMI接近于0表示簇向量是随机分配的。MI(互信息指数)和NMI(标准化的互信息指数)不符合簇向量随机分配的理论,即随着分配簇的个数增加,MI和NMI亦会趋向于增加,AMI的值一直接近于0,因此采用AMI作为基于互信息的角度衡量簇向量间的相似度。

3.2.4.同质性,完整性和V-measure

  • 同质性和完整性是基于条件熵的互信息分数来衡量簇向量间的相似度,V-meansure是同质性和完整性的调和平均。

  • 同质性:每个簇只包含单个类成员;其实也可以认为就是正确率(每个聚簇中正确分类的样本数占该聚簇总样本数的比例和);
    图片说明

  • 完整性:给定类的所有成员分配给同一簇类;每个聚簇中正确分类的样本数占类型的总样本数比例的和。图片说明

  • V-measure是结合同质性和完整性两个因素来评价簇向量间的相似度,V-measure为1表示最优的相似度:
    图片说明