У меня проблема с назначением, когда я должен использовать столбцы y
и y_score
в файле .csv, где y
- это действительный результат, а y_score
- это выходной. Я должен рассмотреть уникальные y_score
значения и отсортировать их в порядке возрастания и использовать каждое из них в качестве порогового значения и сравнить с фактическим y_score
, чтобы найти y_predicted
. Итак, y_predicted = [0 if y_score < threshold else 1]
. из этого найдите Ложный положительный и ложный отрицательный для расчета A = 500*number of false negative + 100* number of false positive
. Наконец найдите самое низкое значение metri c A.
Вот что я написал:
...
import pandas as pd
data2 = pd.read_csv('5_c.csv')
uniq2= data2['prob'].unique()
uniq2.sort()
aa=[]
for k,v in enumerate(uniq2):
data2['thr'] = v
for j,l in enumerate(data2['prob']):
if l>v:
data2['pred'] = 0
else:
data2['pred']=1
df = data2[(data2['y']==0)&(data2['pred']==1)]
FP = df.shape
df = data2[(data2['y']==1)&(data2['pred']==1)]
FN = df.shape
A=100*FN+500*FP
aa.append(A)
m=np.argmin(aa)
print(m)
...
Это образец моего CSV-файла
y prob
0 0.458521
0 0.505037
0 0.418652
0 0.412057
0 0.375579
0 0.595387
0 0.370288