我正在建立模型,我认为地理位置可能非常擅长预测目标变量。我有每个用户的邮政编码。不过,我并不完全确定将邮政编码作为模型中的预测器功能的最佳方式。尽管邮政编码是一个数字,但是无论数字升或降,它都没有任何意义。我可以对所有30,000个邮政编码进行二值化处理,然后将其包含为功能或新列(例如{user_1:{61822:1,62118:0,62444:0等}}}。但是,这似乎会增加很多模型的功能
对解决这种情况的最佳方法有何想法?
我正在建立模型,我认为地理位置可能非常擅长预测目标变量。我有每个用户的邮政编码。不过,我并不完全确定将邮政编码作为模型中的预测器功能的最佳方式。尽管邮政编码是一个数字,但是无论数字升或降,它都没有任何意义。我可以对所有30,000个邮政编码进行二值化处理,然后将其包含为功能或新列(例如{user_1:{61822:1,62118:0,62444:0等}}}。但是,这似乎会增加很多模型的功能
对解决这种情况的最佳方法有何想法?
Answers:
我最喜欢的邮政编码数据用途之一是根据邮政编码查找人口统计变量,否则在各个级别上可能无法使用...
例如,通过http://www.city-data.com/,您可以查询收入分配,年龄范围等信息,这可能会告诉您有关数据的一些信息。至少对于相对有限的数据量而言,这些连续变量通常比仅基于二值化邮政编码更有用。
另外,邮政编码是分层的……如果您采用前两位或三位数,并根据这些数字进行二值化处理,则您将拥有一定数量的区域信息,这比单独的邮政编码能为您提供更多的数据。
正如Zach所说,使用的纬度和经度也可能有用,尤其是在基于树的模型中。对于正则化线性模型,您可以使用四叉树,将美国分为四个地理组,对它们进行二值化,然后将这些区域中的每一个划分为四组,并将其作为附加的二元变量...因此对于n个总叶区域,您最终得到[(4n-1)/ 3-1-]总变量(n表示最小区域,n / 4表示下一级别,依此类推)。当然,这是多重共线性的,这就是为什么需要正则化的原因。
我见过2个不错的选择:
就个人而言,我真的很喜欢基于树的模型(例如随机森林或GBM),因此我几乎总是选择选项2。如果真的很喜欢,可以使用人口中心的纬度/经度作为邮政编码,而不是邮政编码质心。但这很难实现。
2
提案的。
在训练使用母语作为特征的分类器时,我处理了类似的问题(如何测量英语和西班牙语之间的相似性?)有很多方法可用于确定非分类数据之间的相似性。
这取决于您的数据,但是如果您发现与邮政编码的地理距离并不像给定输入中是否包含特定邮政编码那样重要,则非分类方法可能会有所帮助。
如果要计算记录之间的距离(如在聚类或K-NN中),则原始格式的邮政编码之间的距离可能会提供参考。从地理位置上来说,02138比45139更接近02139。
您可以将邮政编码转换为标称变量(字符串/因子)。但是,据我所记得,邮政编码可能包含县,地区等其他信息。我要做的是了解邮政编码如何编码信息并将其解码为多个功能。
无论如何,将邮政编码作为数字变量并不是一个好主意,因为某些模型可能会将数字顺序或距离视为要学习的东西。
您可以使用上述技术来使Zipcode功能化,但让我建议一种替代方法。假设我们有二进制类标签。在数据中,我们有“ n”个邮政编码。现在,假设某些类标签(1或0),我们考虑数据中每个pincode出现的可能性。因此,让我们说一个邮政编码“ j” ------ >>>>我们得到的概率P_j为:否。类标签为1或0时“ j”的出现次数/“ j”的出现总数。通过这种方式,我们可以将其转换为非常好的概率解释。