据我所知,并且我过去曾深入研究过这个问题,没有任何预测建模技术(除了树、XgBoost 等)可以同时处理两种类型的输入,而无需简单地转换特征的类型。
请注意,随机森林和 XGBoost 等算法接受混合特征的输入,但它们会应用一些逻辑来在节点拆分期间处理它们。确保您了解“幕后”的逻辑,并且您对黑匣子中发生的任何事情都感到满意。
然而,基于距离/核的模型(例如,K-NN、NN 回归、支持向量机)可用于通过定义“特殊”距离函数来处理混合类型的特征空间。这样,对于每个特征,应用适当的距离度量(例如,对于数字特征,我们将计算 2 个数字的欧几里德距离,而对于分类特征,我们将简单计算 2 个字符串值的重叠距离)。所以,用户之间的距离/相似度u1和u2在功能fi, 如下:
d(u1,u2)fi=(dis−categorical(u1,u2)fi如果特征fi 是分类的,
d(u1,u2)fi=dis−numeric(u1,u2)fi如果特征fi 是数字。和 1 如果特征fi没有定义在u1或者u2.
分类特征的一些已知距离函数: