的 问题类型 强>
最重要的是,请注意这是一个回归型问题,而不是分类。您希望尽可能接近正确的天数,而不是必须得到确切的答案(或失去所有信用)。你的成功标准应该是 不 是正确的百分比;相反,它应该是某种平均误差百分比。您可以抛弃使用独立分类预测的技术。
的 数据形状 强>
您如何知道您的数据包含足够的信息以进行准确的预测?通常,这一发现来自于试验各种ML算法。您是否对空间或任何类型的相关性进行了任何可视化,以估计最大可能的准确度?
的 当前的方法 强>
KNN是 不 对此有好处。将两个字符串功能放在线性连续体上没有正确描述它们。你给出的编码告诉我们aardvark是 许多 与飞机更密切相关而不是斑马。你需要分开这些。如 Matthijs 已经指出,单热编码是将这些分成正交特征的理想方法。
Matthijs
是个 modelitem 功能独立于类别?如果是这样,那么它也应该是单热编码的。如果它是依赖的,类别的子类型,那么你有一个更难的问题:在分离主要时保持二级鉴别器相关。这是决策树是一个好工具的地方。
modelitem
的 一般建议 强>
将此视为经典的回归问题,与许多介绍性讲座中的规范房屋定价示例一致。首先探索SGD和相关算法。如果你没有得到满意的结果,至少你有一个坚实的起点,并可以再次发布您的精炼问题。
您当前使用称为LabelEncoding的方法对您的类别进行了编码。有一个 方法 在SKLearn,顺便说一句,它可以为你做到这一点。
如果您使用此方法进行编码并使用诸如nearest-neighbors之类的模型,那么您暗示类别中按字母顺序排列的类也在语义上非常接近。
对于非基于树的模型的分类值进行编码,使用起来要好得多 OneHotEncoding 。这将为每个填充了1或0的类创建一个列,具体取决于该条目是否属于列中指定的类。这看起来如下:
Category | is_a | is_b | is_c A | 1 | 0 | 0 B | 0 | 1 | 0
这样可以确保A与模型中的C一样远离B,这样可以显着提高结果。