Я пытаюсь построить кривую ROC для дерева решений. Но при вычислении матрицы неточностей вычисление каждого порога занимает слишком много времени. Итак, есть ли лучший способ вычислить матрицу.
Кривая ROC для дерева решений
Ответы (2)
в вашем методе confusion_matrix вы можете кэшировать прогнозы для оптимизации производительности
def confusion_matrix(predictions):
# Calculate the elements of the confusion matrix
predictions.cache()
TN = predictions.filter('prediction = 0 AND label = 0').count()
TP = predictions.filter('prediction = 1 AND label = 1').count()
FN = predictions.filter('prediction = 0 AND label = 1').count()
FP = predictions.filter('prediction = 1 AND label = 0').count()
predictions.unpersist()
return TP,TN,FP,FN
Удачи!
person
Michael Fu
schedule
30.09.2020
Я предлагаю вам использовать реализацию scikit-learn, вам просто нужно предоставить массив с истинными значениями, а другой с прогнозами: sklearn.metrics.roc_curve
person
Hugo Guillen
schedule
28.09.2020
OP явно находится в среде больших данных: они используют Pyspark, что подразумевает, что задействованные фреймы данных не могут поместиться в памяти одной машины, поэтому scikit-learn здесь не применим.
- person desertnaut; 28.09.2020