1. PCC
PCC 是指皮尔逊相关系数(Pearson Correlation Coefficient),也称为皮尔逊相关性。
皮尔逊相关系数是用来衡量两个变量之间线性关系强度和方向的统计量。它的取值范围在 -1 到 1 之间,其中 -1 表示完全负相关,0 表示无相关性,1 表示完全正相关。
计算两个变量 X 和 Y 的皮尔逊相关系数的公式如下:
PCC(X, Y) = Cov(X, Y) / (std(X) * std(Y))
其中,Cov(X, Y) 是 X 和 Y 的协方差,std(X) 和 std(Y) 分别是 X 和 Y 的标准差。
协方差(Covariance)是用来衡量两个变量之间的总体线性关系的统计量。它的计算公式如下:
Cov(X, Y) = Σ((X - μX) * (Y - μY)) / N
其中,Σ 表示求和,X 和 Y 分别表示变量 X 和 Y 的取值,μX 和 μY 分别表示变量 X 和 Y 的平均值,N 表示样本数量。
标准差(Standard Deviation)是用来衡量一个变量的离散程度的统计量。它的计算公式如下:
std(X) = sqrt(Σ((X - μX)^2) / N)
其中,sqrt 表示平方根,X 表示变量 X 的取值,μX 表示变量 X 的平均值,N 表示样本数量。
皮尔逊相关系数的值越接近于 -1 或 1,表示两个变量之间的线性关系越强;值越接近于 0,表示两个变量之间的线性关系越弱或无关。
皮尔逊相关系数在统计学和数据分析中广泛应用,可以用于研究变量之间的关系、评估模型的拟合程度等。
2. SCC
SCC 是指斯皮尔曼等级相关系数(Spearman's Rank Correlation Coefficient)。
斯皮尔曼等级相关系数是一种非参数统计量,用于衡量两个变量之间的单调关系。与皮尔逊相关系数不同,斯皮尔曼等级相关系数不要求变量之间的关系是线性的,而是通过将变量的观测值转换为等级(即排名),然后计算这些等级之间的相关性。
计算两个变量 X 和 Y 的斯皮尔曼等级相关系数的步骤如下:
-
对变量 X 和 Y 的观测值进行排序,并为每个观测值分配一个等级(排名)。如果有相同的观测值,可以使用平均等级。
-
计算变量 X 和 Y 的等级差值,即 X 的等级减去 Y 的等级。
-
计算等级差值的平方和。
-
使用以下公式计算斯皮尔曼等级相关系数:
SCC(X, Y) = 1 - (6 * Σ(d^2)) / (n * (n^2 - 1))
其中,SCC(X, Y) 表示变量 X 和 Y 的斯皮尔曼等级相关系数,Σ 表示求和,d 表示等级差值,n 表示观测值的数量。
斯皮尔曼等级相关系数的取值范围在 -1 到 1 之间,其中 -1 表示完全负相关,0 表示无相关性,1 表示完全正相关。
斯皮尔曼等级相关系数在统计学和数据分析中常用于衡量两个变量之间的非线性关系,特别适用于处理不满足正态分布假设的数据。
3. RMSE
RMSE 是均方根误差(Root Mean Square Error)的缩写。
均方根误差是一种常用的评估预测模型准确性的指标。它衡量了预测值与真实值之间的差异程度,即模型的预测误差。均方根误差越小,表示模型的预测能力越好。
计算均方根误差的步骤如下:
-
对于每个样本,计算预测值与真实值之间的差值。
-
对这些差值进行平方。
-
对平方差值求平均。
-
取平均平方差值的平方根。
具体的计算公式如下:
RMSE = sqrt(Σ((y_pred - y_true)^2) / n)
其中,RMSE 表示均方根误差,sqrt 表示平方根,Σ 表示求和,y_pred 表示预测值,y_true 表示真实值,n 表示样本数量。
需要注意的是,均方根误差对于异常值比较敏感,因为它对误差进行了平方运算。在使用均方根误差进行模型评估时,需要根据具体情况进行判断和解释。
4. NDCG
NDCG是Normalized Discounted Cumulative Gain的缩写,是一种用于评估推荐系统性能的指标。它基于排名列表和相关性得分,将推荐列表的质量表示为一个介于0和1之间的归一化分数。具体来说,它通过计算推荐列表中每个项目的贡献来计算NDCG分数,其中项目的贡献是相关性得分的折扣值,折扣值随着项目在列表中的位置而降低。NDCG越高,推荐系统的性能越好。
假设有一个推荐系统,它向用户推荐了以下五个电影,并按照相关性得分从高到低进行排序:
- The Shawshank Redemption (相关性得分为5.0)
- The Godfather (相关性得分为4.5)
- The Dark Knight (相关性得分为4.0)
- The Godfather: Part II (相关性得分为3.5)
- Schindler's List (相关性得分为3.0)
现在,我们要计算NDCG@5的分数,其中@5表示考虑前5个推荐项。假设用户对这些电影的实际评分如下:
- The Shawshank Redemption (实际评分为5.0)
- The Godfather (实际评分为4.0)
- The Dark Knight (实际评分为3.0)
- The Godfather: Part II (实际评分为2.0)
- Schindler's List (实际评分为1.0)
我们可以按照以下步骤计算NDCG@5分数:
-
计算每个电影的折扣值:,其中是电影在推荐列表中的排名。
对于这个例子,前五个电影的折扣值分别为:
,,,,
-
计算每个电影的贡献值:,其中是电影的实际评分。
对于这个例子,前五个电影的贡献值分别为:
,,,,
-
计算NDCG@5的分数:,其中是电影在实际评分中的排名。
对于这个例子,我们可以把加入到表格中:
推荐项 相关性得分 实际评分 排名 折扣值 贡献值 1 5.0 5.0 1 1.000 5.000 2 4.5 4.0 2 0.630 2.520 3 4.0 3.0 3 0.500 1.500 4 3.5 2.0 4 0.430 0.860 5 3.0 1.0 5 0.386 0.386 然后,我们可以计算NDCG@5的分数:
因此,这个推荐系统在NDCG@5方面得分为0.941,说明它的推荐列表质量比较高。
5. PC 和 NWPC
5.1 PC
PC是 probabilistic c-index的缩写,C-index(也称为Concordance Index或Concordance Probability Estimate)是一种用于评估生存分析模型预测性能的指标。它常用于评估预测模型在生存分析中的排序能力,即模型对于不同个体的生存时间排序的准确性。
C-index的取值范围在0到1之间,其中0表示模型的预测完全不准确,1表示模型的预测完全准确。C-index的计算方法如下:
-
对于每一对不同的样本(即有不同的观测时间和事件状态),比较模型的预测结果。如果一个样本的观测时间比另一个样本的观测时间更早,并且两个样本的事件状态不同(一个发生了事件,一个没有发生事件),则称这对样本是可比较的。
-
对于所有可比较的样本对,计算模型的预测结果是否符合观测时间和事件状态的顺序。如果模型的预测结果正确,即预测的生存时间较短的样本具有较早的观测时间和发生事件的状态,那么该样本对被认为是一致的。
-
计算一致样本对的比例,即一致样本对的数量除以可比较样本对的总数量。这个比例就是C-index。
下面是一个示例,说明如何使用C-index来评估生存分析模型的性能:
from lifelines.utils import concordance_index
from lifelines import CoxPHFitter
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
# 加载乳腺癌数据集
data = load_breast_cancer()
X, y = data.data, data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建Cox比例风险模型
model = CoxPHFitter()
model.fit(X_train, y_train)
# 在测试集上进行预测
predictions = model.predict_expectation(X_test)
# 计算C-index
c_index = concordance_index(y_test, -predictions)
print("C-index:", c_index)
在上述示例中,我们使用 load_breast_cancer()
加载乳腺癌数据集,并将数据集划分为训练集和测试集。然后,我们使用 CoxPHFitter
创建了一个Cox比例风险模型,并在训练集上进行拟合。接下来,我们使用模型在测试集上进行预测,并使用 concordance_index
函数计算C-index来评估模型的性能。
需要注意的是,上述示例仅用于说明如何使用C-index来评估生存分析模型的性能。在实际应用中,你可能需要根据具体任务和数据的特点进行适当的调整和修改。
5.2 NWPC
PC是 normalized weighted probabilistic c-index 的缩写,Normalized Weighted Probabilistic C-Index是一种评估生存分析模型性能的指标。它可以用于比较不同模型的预测准确性,并且可以考虑到不同时间点的重要性。它基于C-Index,但是通过加权和标准化来考虑每个时间点的权重。这个指标的值越高,表示模型的性能越好。
5.2.1 计算流程
Normalized Weighted Probabilistic C-Index的计算过程比较复杂,需要先计算出每个时间点的权重,然后对每个时间点的预测结果进行加权平均,最后再将结果进行标准化。下面是具体的计算过程:
-
计算每个时间点的权重。一种常用的方法是根据生存曲线的斜率来确定每个时间点的权重。具体而言,可以计算出每个时间点上的生存概率和其对应的风险值,然后用生存概率乘以风险值来得到该时间点的权重。
-
对每个时间点的预测结果进行加权平均。对于某个样本,如果其生存时间小于等于某个时间点t,那么就将该样本在t时刻的预测概率乘以t时刻的权重。将所有样本在t时刻的加权预测概率相加,得到该时刻的加权平均预测概率。
-
将加权平均预测概率进行标准化。将每个样本在所有时间点的加权平均预测概率相加,得到该样本的总预测概率。将所有样本的总预测概率相加,并除以样本数,得到标准化后的Normalized Weighted Probabilistic C-Index。
需要注意的是,这里的计算过程仅供参考,实际上可能会因为具体问题而有所不同。
5.2.2 demo
假设我们有一个生存分析模型,可以预测患者在接受治疗后的生存时间。我们有一组测试数据,包含100个患者的生存时间和预测概率。现在我们想要使用Normalized Weighted Probabilistic C-Index来评估该模型的性能。
-
计算每个时间点的权重。我们可以使用生存曲线的斜率来确定每个时间点的权重。假设我们选择了10个时间点(0、1、2、3、4、5、6、7、8、9),则可以计算出每个时间点上的生存概率和风险值,并用生存概率乘以风险值来得到该时间点的权重。例如,在时间点2处,假设生存概率为0.8,风险值为0.6,则该时间点的权重为0.48(0.80.6)*。
-
对每个时间点的预测结果进行加权平均。对于某个样本,如果其生存时间小于等于某个时间点t,那么就将该样本在t时刻的预测概率乘以t时刻的权重。例如,对于某个样本,如果其生存时间为3,且在时间点2处的预测概率为0.7,则在时间点2处的加权预测概率为0.336(0.70.48)。将所有样本在t时刻的加权预测概率相加*,得到该时刻的加权平均预测概率。
-
将加权平均预测概率进行标准化。将每个样本在所有时间点的加权平均预测概率相加,得到该样本的总预测概率。例如,对于某个样本,其在所有时间点的加权平均预测概率为0.8,则该样本的总预测概率为8。将所有样本的总预测概率相加,并除以样本数,得到标准化后的Normalized Weighted Probabilistic C-Index。
最终得到的Normalized Weighted Probabilistic C-Index值越高,表示模型的性能越好。
6. AUROC和AUPRC
6.1 AUROC和AUPRC区别
AUROC(Area Under the Receiver Operating Characteristic Curve)和AUPRC(Area Under the Precision-Recall Curve)都是用来评估二分类模型性能的指标,但是它们在评估模型性能时关注的方面略有不同。
AUROC是基于真阳性率(True Positive Rate,也称为灵敏度)和假阳性率(False Positive Rate)的指标。它描述了在不同的分类阈值下,模型能够正确预测正例和负例的能力。AUROC的取值范围在0.5到1之间,值越大表示模型性能越好。
AUPRC则是基于精确率(Precision)和召回率(Recall)的指标。它描述了在不同的分类阈值下,模型能够正确预测正例的能力。AUPRC的取值范围在0到1之间,值越大表示模型性能越好。
AUROC适用于当正负样本的比例发生变化时,或者当关注的是分类的整体能力时。而AUPRC适用于当正负样本的比例严重不平衡时,或者当关注的是分类的精确度时。
总的来说,AUROC和AUPRC都是常用的评估二分类模型性能的指标,但是在不同的应用场景下,选择合适的指标进行评估是很重要的。
6.2 AUROC
ROC-AUC 和 AUROC(Area Under the Receiver Operating Characteristic Curve)是同一个指标的不同名称。AUROC 是 ROC 曲线下的面积,用于评估二分类模型的性能。
ROC-AUC 是接收者操作特征曲线下的面积(Receiver Operating Characteristic Area Under the Curve)的缩写。
ROC-AUC 是一种用于评估二分类模型性能的指标。ROC 曲线是以模型的真阳性率(True Positive Rate,也称为灵敏度或召回率)为纵轴,以模型的假阳性率(False Positive Rate)为横轴绘制的曲线。ROC 曲线可以展示模型在不同阈值下的分类性能。
ROC-AUC 表示 ROC 曲线下的面积,取值范围在 0 到 1 之间。ROC-AUC 越接近于 1,表示模型的分类性能越好;ROC-AUC 等于 0.5,表示模型的分类性能等同于随机猜测。
计算 ROC-AUC 的步骤如下:
-
根据模型的预测结果和真实标签,计算出不同阈值下的真阳性率和假阳性率。
-
绘制出真阳性率和假阳性率的折线图,形成 ROC 曲线。
-
计算 ROC 曲线下的面积,即ROC-AUC。
ROC-AUC 是一种常用的模型评估指标,它对于处理不平衡数据集和评估分类模型的性能都很有用。较高的 ROC-AUC 值表示模型能够更好地区分正例和负例,具有更好的分类能力。
6.3 AUPRC
AUPRC(Area Under the Precision-Recall Curve)是 Precision-Recall 曲线下的面积,用于评估二分类模型的性能。
Precision-Recall 曲线是以不同阈值下的精确率(Precision)和召回率(Recall)为纵轴和横轴绘制的曲线。Precision 表示被模型预测为正例的样本中真正为正例的比例,Recall 表示真正为正例的样本中被模型预测为正例的比例。
计算 AUPRC 的步骤如下:
-
根据模型的预测结果和真实标签,计算出不同阈值下的精确率和召回率。
-
绘制出精确率和召回率的折线图,形成 Precision-Recall 曲线。
-
计算 Precision-Recall 曲线下的面积,即 AUPRC。
AUPRC 的取值范围在 0 到 1 之间,越接近于 1 表示模型的分类性能越好,等于 0.5 表示模型的分类性能等同于随机猜测。
AUPRC 是另一个常用的模型评估指标,特别适用于处理不平衡数据集和评估分类模型在偏斜数据中的性能。
网友评论