我一直在尝试使用线性分类器和自定义特征提取管道解决二进制分类问题的结果不一致,并决定通过训练和测试我的分类器来快速检查我的代码中的错误数据集。我希望这会产生非常高(100%?)的准确率/召回率和精确度统计数据,但令我惊讶的是,我得到的结果与我通常在不同的训练和测试集上得到的结果相当甚至更低(~70% 召回率) )。
分类器在应用于自己的训练数据时应该非常准确,还是我的代码中存在错误?我在 ML 方面不是很有经验,所以任何帮助都将不胜感激!谢谢!!
我一直在尝试使用线性分类器和自定义特征提取管道解决二进制分类问题的结果不一致,并决定通过训练和测试我的分类器来快速检查我的代码中的错误数据集。我希望这会产生非常高(100%?)的准确率/召回率和精确度统计数据,但令我惊讶的是,我得到的结果与我通常在不同的训练和测试集上得到的结果相当甚至更低(~70% 召回率) )。
分类器在应用于自己的训练数据时应该非常准确,还是我的代码中存在错误?我在 ML 方面不是很有经验,所以任何帮助都将不胜感激!谢谢!!
不,您的数据可能无法完美分类,尤其是通过线性分类器,这并不总是因为分类器或您正在使用的功能。没有一个特征可能包含足够的差异来提供清晰的界限。
您可以尝试非线性模型,它可以提供更好的分类以及更高的过度拟合风险。使用验证集可以帮助您确定是否需要不同的模型,或者问题在于数据的性质。
不,并不总是可以在数据集中所有“1”和“0”之间的预测空间中创建线性边界(这是完美线性分类器所需要的)。
例如,如果你有一个预测变量并且训练数据是 , 1,3,2,4) 怎么办。您可以想象具有更多预测变量的类似场景。
不,正如之前的答案所述,每个数据集都不是线性可分的。
除非...您的预测变量多于观察值(或列多于行)。
因此,您应该确保您使用的特征提取管道不会产生比您的观察次数更多的特征。
想象一下,它确实是一个随机数据集。假设您正在尝试将数据分类为生病和健康,并且发生这种情况时,疾病的发生率是真正随机的,至少与您的任何预测变量无关。在这种情况下,您不应该在没有过度拟合的情况下获得良好的准确度指标