Машинное обучение: ошибка в Матрице путаницы - PullRequest
0 голосов
/ 01 ноября 2018

При работе с моделью регрессии случайных лесов я получаю сообщение об ошибке при выполнении матрицы путаницы. Модель способна предсказать y_pred, но я не могу проверить точность, так как не могу запустить матрицу точности.

Datatypes:

type(y_test)
Out[124]: numpy.ndarray

type(y_pred)
Out[125]: numpy.ndarray

Ниже приведен мой код для матрицы путаницы:

from sklearn.metrics import confusion_matrix
matrix = confusion_matrix(y_test, y_pred)

print(matrix)

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)

Ошибка:

confusion_matrix(y_test, y_pred)

Traceback (most recent call last):

File "<ipython-input-121-7a3dbcfd18a0>", line 1, in <module>
confusion_matrix(y_test, y_pred)

File "/Users/srikantswamy/anaconda3/lib/python3.6/site-packages/sklearn  /metrics/classification.py", line 253, in confusion_matrix
y_type, y_true, y_pred = _check_targets(y_true, y_pred)

File "/Users/srikantswamy/anaconda3/lib/python3.6/site-packages/sklearn /metrics/classification.py", line 88, in _check_targets
raise ValueError("{0} is not supported".format(y_type))

ValueError: continuous is not supported

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Чтобы дать простой ответ: Матрица путаницы - это таблица, которая часто используется для описания эффективности модели классификации (или «классификатора») . В вашем случае вы пытаетесь найти путаницу для непрерывных переменных. для регрессии используйте среднеквадратическую ошибку. Посмотрите эту лекцию pdf: http://www.it.uu.se/edu/course/homepage/sml/lectures/lecture3_handout.pdf

0 голосов
/ 01 ноября 2018

Основными проблемами, решаемыми с помощью контролируемого обучения, являются регрессия и классификация. Существуют разные способы их различения, но, в основном, если ваш вывод непрерывный, скажем, вы вводите вектор и ожидаете, что в качестве выходных данных будет действительное число, вы столкнетесь с проблемой регрессии, тогда как если ваш вывод состоит из классов (дискретный вывод) Допустим, вы ввели вектор и ожидаете «да» или «нет», цифру от 0 до 9, своего рода животное и т. д., вы столкнулись с проблемой классификации.

В задачах классификации вы можете использовать такие метрики, как точность, неправильная классификация, кросс-энтропия, f1-оценка и т. Д., Поскольку они основаны на проверке того, были ли входные данные предсказаны в правильном классе, но в регрессии нет способа сделать это проблемы, просто попытайтесь представить матрицу путаницы с бесконечными классами. В регрессии общими показателями являются, например, среднеквадратичная ошибка и средняя абсолютная ошибка.

В заключение:

  • Если вы столкнулись с проблемой классификации, вам следует переключиться на другую модель, такую ​​как Random Forest Clasifier.
  • Если вы столкнулись с проблемой регрессии, вам следует переключиться на другую метрику, например среднеквадратическую ошибку. Полезной визуализацией с использованием этой метрики может быть гистограмма ошибок.
...