AxisError: ось 1 выходит за границы массива измерения 1 при расчете AUC - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть проблема классификации, когда у меня есть значения пикселей изображения 8x8 и число, которое представляет изображение, и моя задача состоит в том, чтобы предсказать число (атрибут «Number») на основе значений пикселей, используя RandomForestClassifier. Значения числовых значений могут быть 0-9.

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score

forest_model = RandomForestClassifier(n_estimators=100, random_state=42)
forest_model.fit(train_df[input_var], train_df[target])
test_df['forest_pred'] = forest_model.predict_proba(test_df[input_var])[:,1]
roc_auc_score(test_df['Number'], test_df['forest_pred'], average = 'macro', multi_class="ovr")

Здесь выдается ошибка AxisError.

Traceback (most recent call last):
  File "dap_hazi_4.py", line 44, in 
    roc_auc_score(test_df['Number'], test_df['forest_pred'], average = 'macro', multi_class="ovo")
  File "/home/balint/.local/lib/python3.6/site-packages/sklearn/metrics/_ranking.py", line 383, in roc_auc_score
    multi_class, average, sample_weight)
  File "/home/balint/.local/lib/python3.6/site-packages/sklearn/metrics/_ranking.py", line 440, in _multiclass_roc_auc_score
    if not np.allclose(1, y_score.sum(axis=1)):
  File "/home/balint/.local/lib/python3.6/site-packages/numpy/core/_methods.py", line 38, in _sum
    return umr_sum(a, axis, dtype, out, keepdims, initial, where)

AxisError: axis 1 is out of bounds for array of dimension 1

1 Ответ

0 голосов
/ 18 апреля 2020

Вы уверены, что это [:,1] в test_df['forest_pred'] = forest_model.predict_proba(test_df[input_var])[:,1] правильно? Это, вероятно, 1D массив

...