机器学习:在混淆矩阵中出错
Machine Learning: Getting error in 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
监督学习主要解决的问题是回归和分类。有不同的方法来区分它们,但基本上如果你的输出是连续的,假设你输入一个向量并期望一个实数作为输出,你将面临回归问题,而如果你的输出包含 class es(离散输出),假设你输入一个向量并期望是或否,从 0 到 9 的数字,一种动物等。你正面临分类问题。
在class化问题中,您可以使用准确度、错误class化、交叉熵、f1 分数等指标,因为它们依赖于检查输入是否在正确的 class,但在回归问题中没有办法做到这一点,只需尝试想象一个具有无限 class 的混淆矩阵。在回归中,常见的指标是,例如,均方误差和平均绝对误差。
总结:
- 如果您遇到 class化问题,您应该切换到另一个模型,例如随机森林分类器。
- 如果您遇到回归问题,您应该切换到另一个指标,例如均方误差。使用此指标的有用可视化可能是错误的直方图。
给出一个简单的答案:混淆矩阵是table,通常用于描述分类模型的性能(或"classifier") 。在您的情况下,您正在尝试找到连续变量的混淆矩阵。对于回归使用均方误差。
看看这个讲座 pdf:http://www.it.uu.se/edu/course/homepage/sml/lectures/lecture3_handout.pdf
运行宁随机森林回归模型时,运行宁混淆矩阵时出现错误。该模型能够预测 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
监督学习主要解决的问题是回归和分类。有不同的方法来区分它们,但基本上如果你的输出是连续的,假设你输入一个向量并期望一个实数作为输出,你将面临回归问题,而如果你的输出包含 class es(离散输出),假设你输入一个向量并期望是或否,从 0 到 9 的数字,一种动物等。你正面临分类问题。
在class化问题中,您可以使用准确度、错误class化、交叉熵、f1 分数等指标,因为它们依赖于检查输入是否在正确的 class,但在回归问题中没有办法做到这一点,只需尝试想象一个具有无限 class 的混淆矩阵。在回归中,常见的指标是,例如,均方误差和平均绝对误差。
总结:
- 如果您遇到 class化问题,您应该切换到另一个模型,例如随机森林分类器。
- 如果您遇到回归问题,您应该切换到另一个指标,例如均方误差。使用此指标的有用可视化可能是错误的直方图。
给出一个简单的答案:混淆矩阵是table,通常用于描述分类模型的性能(或"classifier") 。在您的情况下,您正在尝试找到连续变量的混淆矩阵。对于回归使用均方误差。 看看这个讲座 pdf:http://www.it.uu.se/edu/course/homepage/sml/lectures/lecture3_handout.pdf