#python #arrays #loops #s
#питон #массивы #петли #s
Вопрос:
Я хочу, чтобы TPP был массивом со значением TPP для каждого порога. Печать должна быть такой: TPP-это: n1, n2…
threshold=[0, 6, 15] df=[3,13,19,21] y_true=[0,0,1,0] y_pred=np.where(dflt;threshold,1,0) cm=confusion_matrix(y_true,y_pred) TP=cm[0,0] FN=cm[0,1] TPP=TP/(TP FN) print('TPP is:',TPP)
Комментарии:
1. Зачем этот
s
тег, если вы используете Python?2. «порог», вероятно, должен быть константой, если вы определяете значения «df» (которое в python является перегруженным именем).
3. под TPP вы подразумеваете «истинную положительную ставку»? Если это так, то это должно быть одно число в диапазоне [0.0, 1.0]
4. Я не имею ни малейшего представления о том, почему существует тег «s». Вероятно, из-за недостатка внимания.
Ответ №1:
Мне кажется, что этот код достигает вашей цели:
from sklearn.metrics import confusion_matrix import numpy as np threshold = [0, 6, 15, 20] df = [3,13,19,21] y_true = [0,0,1,0] print('TPP is:', end=' ') for idx, i in enumerate(threshold): y_pred = np.where(np.array(df) lt; i,1,0) are_ones = y_true == np.ones(len(y_true)) predicted_as_zero = y_pred == np.zeros(len(y_true)) TP = sum( are_ones amp; np.array(y_pred) ) FN = sum( are_ones amp; predicted_as_zero ) if idx 1 == len(threshold): print(TP/(TP FN), end='') else: print(TP/(TP FN), end=', ')
Комментарии:
1. Спасибо, но есть ли способ хранить TP и FN в виде массивов, а не просто печатать по одному за раз?