【问题标题】:Machine Learning: Getting error in Confusion Matrix机器学习:混淆矩阵中的错误
【发布时间】:2019-04-05 07:46:27
【问题描述】:

在运行随机森林回归模型时,我在运行混淆矩阵时遇到错误。该模型能够预测 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

【问题讨论】:

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


    【解决方案1】:

    监督学习解决的主要问题是回归和分类。有不同的方法可以区分它们,但基本上如果你的输出是连续的,比如你输入一个向量并期望一个实数作为输出,你就会面临一个回归问题,而如果你的输出由类组成(离散输出) ,假设您输入一个向量并期望一个是或否、一个 0 到 9 的数字、一种动物等。您正面临分类问题。

    在分类问题中,您可以使用准确度、错误分类、交叉熵、f1 分数等指标,因为它们依赖于检查输入是否在正确的类别中被预测,但在回归中没有办法做到这一点问题,试着想象一个具有无限类的混淆矩阵。在回归中,常见的度量标准有均方误差和平均绝对误差。

    总结:

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

    【讨论】:

    • 感谢这真的很有帮助。是的,我的预测输出是浮点数。
    【解决方案2】:

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

    【讨论】:

    • 谢谢,是的,我的输出是浮点数。
    猜你喜欢
    • 2013-08-25
    • 2019-06-11
    • 2019-01-22
    • 2020-07-25
    • 2021-11-30
    • 2021-02-01
    • 2021-11-30
    • 1970-01-01
    • 2019-10-15
    相关资源
    最近更新 更多