在BBDM-LAB摸爬滚打的日子(1)

今天是2018年5月25日,纠正了对交叉验证的错误认识,还在努力实现AUC和AUPr的计算。 MATLAB的矩阵计算思维我还掌握不了,好难受……

交叉验证,以5折交叉验证为例。
已知数据为n个links、一个反应矩阵interaction。
5折交叉验证所说的“将数据集分为5份,其中4份为训练集,另一份为测试集”,这里的“数据集”指的是links,而不是interaction。

解释一下为什么划分的不是interaction。假如划分的数据集是interaction,很有可能取出的测试集值全为0(矩阵稀疏的时候很有可能是这种情况),也就是说,没有真正例和假正例,根本就计算不了评估指标(AUC等),没有实际意义。

model_evaluation(real, predict)
那么,输入模型评估函数的参数real和predict是什么呢?
‘test_index = find(train_interaction==0)’
‘real = interaction (test_index)’
‘predict = scores(test_index)’
上面三行是MATLAB代码。
注意,train_interaction是把测试集包含的links全置为0之后的反应矩阵。
所以,参与计算AUC等指标的interaction中的元素 包括:
1. 未知的link(值本就为0的元素) 未知的link就当作不存在这个link
2. 测试集中的link(值本来为1,后置为0的元素)

TP 真正例:预测为真且属于测试集的link
FP 假正例:预测为真但属于未知link
TN 真反例:预测为假且属于未知link
FN 假反例:预测为假但属于测试集的link

你可能感兴趣的:(学习笔记)