机器学习:混淆矩阵中出现错误

时间:2018-11-01 04:41:25

标签: python machine-learning regression random-forest confusion-matrix

在运行随机森林回归模型时,运行混淆矩阵时出现错误。该模型可以预测y_pred,但由于无法运行精度矩阵,因此无法检查精度。

数据类型:

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 :(得分:0)

监督学习解决的主要问题是回归和分类。区分它们有不同的方法,但是基本上,如果您的输出是连续的,比如说您输入一个向量并期望一个实数作为输出,则您将面临回归问题,而如果您的输出包含类(离散输出) ,例如,您输入一个向量并期望是或否,0到9之间的数字,某种动物等。您正面临分类问题。

在分类问题中,您可以使用诸如准确性,分类错误,交叉熵,f1得分等指标,因为它们依赖于检查输入是否在正确的类别中进行了预测,但是无法在回归中进行问题,只是想像一下具有无限类的混淆矩阵。在回归分析中,常见的度量标准是例如均方误差和平均绝对误差。

结论:

  • 如果您遇到分类问题,则应切换到其他模型,例如“随机森林分类器”。
  • 如果您面临回归问题,则应改用其他指标,例如均方误差。使用此指标的有用可视化可能是错误的直方图。

答案 1 :(得分:0)

给出一个简单的答案:混淆矩阵是一个经常用于描述分类模型(或“分类器”)性能的表。在您的情况下,您试图找到连续变量的混淆矩阵。对于回归,请使用均方误差。 看看本讲座pdf:http://www.it.uu.se/edu/course/homepage/sml/lectures/lecture3_handout.pdf