pyspark上的MCC(马修斯相关系数)

pyspark上的MCC(马修斯相关系数),pyspark,Pyspark,是否有在pyspark上获取MCC(Mathhews相关系数)的现有实现? 从混淆矩阵中实现一个很容易,但如果已经实现了一个,则最好重用它 SKLearn API用于相同的: 您可以将数据收集到name节点,并在那里使用sklearn的实现,但这可能不是最好的主意 y_cap = [int(i['prediction']) for i in predictions.select('prediction').collect()] y = [int(i[condition]) for i in p

是否有在pyspark上获取MCC(Mathhews相关系数)的现有实现? 从混淆矩阵中实现一个很容易,但如果已经实现了一个,则最好重用它

SKLearn API用于相同的:

您可以将数据收集到name节点,并在那里使用sklearn的实现,但这可能不是最好的主意

y_cap = [int(i['prediction']) for i in predictions.select('prediction').collect()]
y = [int(i[condition]) for i in predictions.select(condition).collect()]
confusion = confusion_matrix(y, y_cap)
print(confusion)
tn = np.float64(confusion[0][0])
tp = np.float64(confusion[1][1])
fp = np.float64(confusion[0][1])
fn = np.float64(confusion[1][0])
mcc = (tp * tn - fp * fn) / math.sqrt((tp + fp) * (tp + fn) * (tn + fp) * (tn + fn))
print(mcc)