我有一组功能,其中一个是字符串。我通过将字符串视为 36 基数(我只使用前 13 个字符)将字符串转换为整数。然后我可以使用 DecisionTrees,因为在 sklearn 实现中您需要将其转换为数字。当我尝试不同的模型时,比如逻辑回归,性能急剧下降,比如从 80% 到 30% 的准确度。
如果我能够在 DecisionTrees 模型中使用字符串,我可能会接受这个结果,但是由于我对两个模型都使用了相同的字符串到整数的转换,为什么会有如此大的差异?
我无法详细说明,但让我为您提供一个类比。假设您正在按有用性对数百万个对象进行分类。所以你说锤子是 4 个,螺丝刀 6 个,垫圈 10 个,等等。当然,你有不止一把螺丝刀,有时你会忘记并给它一个 5 的值,或者别的什么。该模型经过数百万个示例,然后对每个对象的数量进行预测。正如我解释的那样,我将名称转换为整数,决策树给了我 80% 的准确率,线性回归 30%。我认为问题在于线性回归试图找出一些不存在的数学规则。但是为什么决策树不受这个问题的影响呢?