Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 混淆矩阵-不随预测模型变化(Sklearn)_Python 3.x_Pandas_Machine Learning_Scikit Learn_Sklearn Pandas - Fatal编程技术网

Python 3.x 混淆矩阵-不随预测模型变化(Sklearn)

Python 3.x 混淆矩阵-不随预测模型变化(Sklearn),python-3.x,pandas,machine-learning,scikit-learn,sklearn-pandas,Python 3.x,Pandas,Machine Learning,Scikit Learn,Sklearn Pandas,我有3个预测模型,我正在用混淆矩阵评估它们的性能。 对于这3个模型中的每一个,我都得到了相同的混淆矩阵结果。 我预计不同的模型会表现不同,产生不同的混淆矩阵。我是预测建模新手,所以我怀疑我犯了一个“新手错误”。我使用的完整脚本位于GiThub上的Jupyter笔记本中 下面是3个模型的代码截图 有人能指出哪里出了问题吗? 干杯 迈克 这仅仅是因为您使用相同的训练数据进行预测。由于您的模型已经基于您正在进行预测的相同数据进行了训练,因此它们将返回相同的结果(最终是相同的混淆矩阵)。您需要将数据集拆

我有3个预测模型,我正在用混淆矩阵评估它们的性能。 对于这3个模型中的每一个,我都得到了相同的混淆矩阵结果。 我预计不同的模型会表现不同,产生不同的混淆矩阵。我是预测建模新手,所以我怀疑我犯了一个“新手错误”。我使用的完整脚本位于GiThub上的Jupyter笔记本中

下面是3个模型的代码截图

有人能指出哪里出了问题吗? 干杯 迈克


这仅仅是因为您使用相同的训练数据进行预测。由于您的模型已经基于您正在进行预测的相同数据进行了训练,因此它们将返回相同的结果(最终是相同的混淆矩阵)。您需要将数据集拆分为训练集和测试集。然后在训练集上训练分类器,并在测试集上进行预测


您可以使用Sklearn将数据集拆分为训练集或测试集

这仅仅是因为您使用相同的训练数据进行预测。由于您的模型已经基于您正在进行预测的相同数据进行了训练,因此它们将返回相同的结果(最终是相同的混淆矩阵)。您需要将数据集拆分为训练集和测试集。然后在训练集上训练分类器,并在测试集上进行预测


您可以使用Sklearn将数据集拆分为训练集或测试集

如上所述:对测试数据进行预测。但请记住,你的目标是倾斜的!所以使用层叠褶皱或类似的东西

我猜你的数据有点损坏了。虽然所有的模型都显示了相同的结果,但这可能是一个很大的错误

一些问题/建议: 1.您是否缩放了数据? 2.你用了一个热编码吗? 2.不要使用决策树,而是使用森林/XGBoost。容易与DT过度配合。 3.不要在NN中使用>2个隐藏层,因为它也很容易过度拟合。首先使用2。你的架构(30,30,30)有两个目标类,看起来很奇怪。
4.如果你想使用>2个隐藏层,请转到Keras或TF。您会发现有许多功能可以帮助您避免过度拟合。

如前所述:对测试数据进行预测。但请记住,你的目标是倾斜的!所以使用层叠褶皱或类似的东西

我猜你的数据有点损坏了。虽然所有的模型都显示了相同的结果,但这可能是一个很大的错误

一些问题/建议: 1.您是否缩放了数据? 2.你用了一个热编码吗? 2.不要使用决策树,而是使用森林/XGBoost。容易与DT过度配合。 3.不要在NN中使用>2个隐藏层,因为它也很容易过度拟合。首先使用2。你的架构(30,30,30)有两个目标类,看起来很奇怪。
4.如果你想使用>2个隐藏层,请转到Keras或TF。您会发现有许多功能可以帮助您避免过度拟合。

尝试调整超参数。请注意,您应该在训练中适应,但在测试中预测,这是您获得有意义数据的地方。还有,您是否检查了所有不同模型的所有预测值是否完全相同?@Tbaki是的,奇怪的是,所有3个模型的行值预测值都是相同的。根据Mohammed Kashif的建议,我将使用train_test_split方法分割数据,以获得更有意义的数据,并重新运行预测。尝试调整超参数。请注意,您应该适合列车,但在测试中预测,这就是您获得有意义数据的地方。还有,您是否检查了所有不同模型的所有预测值是否完全相同?@Tbaki是的,奇怪的是,所有3个模型的行值预测值都是相同的。根据Mohammed Kashif的建议,我将使用train_test_split方法分割数据,以获得更有意义的数据,并重新运行预测。