У объекта 'numpy.ndarray' нет атрибута 'sqrt' - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь получить стандартное значение этого вывода, используя numpy.std()

[[array([0.92473118, 0.94117647]), array([0.98850575, 0.69565217]), array([0.95555556, 0.8       ]), 0.923030303030303], [array([0.85555556, 0.8       ]), array([0.95061728, 0.55172414]), array([0.9005848 , 0.65306122]), 0.8353285811932428]]

Для получения этого вывода я использовал код (он проходит через цикл, в этом примере он прошел две итерации)

precision, recall, fscore, support = precision_recall_fscore_support(np.argmax(y_test_0, axis=-1),                                                                              np.argmax(probas_, axis=-1))

eval_test_metric = [precision, recall, fscore, avg_fscore]
test_metric1.append(eval_test_metric)

std_matrix1 = np.std(test_metric1, axis=0)

Я хотел бы получить вывод, схожий по структуре с тем, когда я делаю np.mean(). Пожалуйста, извините за «точность», «вспомните», я только что сделал это в своем коде для ясности.

dr_test_metric = dict(zip(['specificity avg', 'sensitivity avg', 'ppv avg', 'npv avg'], np.mean(test_metric2, axis=0)))

print(dr_test_metric,'\n')

output, (где 0,89014337 в «точности avg»: массив ([0,89014337, 0,87058824] является средним значением точности класса 0 для моей модели, а 0,8705 - средним значением точности для класса 1 для моей модели))

{'precision avg': array([0.89014337, 0.87058824]), 'recall avg': array([0.96956152, 0.62368816]), 'fscore avg': array([0.92807018, 0.72653061]), 'avg_fscore avg': 0.8791794421117729} 
...