具有连续和分类特征的预测


26

一些预测建模技术更适合处理连续的预测变量,而另一些则更适合处理分类变量或离散变量。当然,存在将一种类型转换为另一种类型的技术(离散,伪变量等)。但是,是否有任何设计用来同时处理两种类型的输入而无需简单地转换要素类型的预测建模技术?如果是这样,这些建模技术是否倾向于在更适合它们的数据上更好地工作?

最接近的事,我知道的是,通常决策树处理离散数据很好,他们处理连续的数据,而不需要在前面离散化。但是,这并不是我一直在寻找的东西,因为有效地分割连续特征只是动态离散化的一种形式。

作为参考,以下是一些相关的,不可重复的问题:


1
您可以说些什么吗?当然,您可以对连续和分类协变量同时使用多元回归来建立预测模型。这是相当基本的。您是不是要预测多个响应变量(例如,其中有些是续而有些是猫)?
gung-恢复莫妮卡

@gung您如何在将分类预测变量转换为数字的情况下进行涉及分类协变量的多元回归?
Michael McGowan

1
“数字”没有任何意义-它们并不是真正的数字。在方式上,您使用编码方案。参考单元编码(通常称为“虚拟编码”)是最常见的,但是有很多方案。是学习各种可能方案的好资源。例如,在R中,实际上不需要这样做,但是,如果包含矢量或字符数据(即名称),它将为您处理所有事情。
gung-恢复莫妮卡

2
恐怕我仍然不遵循问题背后的动力(我有点慢)。类别变量不会“转换”或“转换”为数值变量。它们由1 表示,但1并不是真正的数字。定性预测变量在多元回归中的数值并不比决策树(即CART)中的数值多。从理论上讲,那里什么也没有。从实际的角度来看,如果您试图保存几行代码,例如,软件(例如R)通常会为您做到这一点。
gung-恢复莫妮卡

1
足够公平,您能(从理论角度)解释您的想法吗?虚拟编码如何将分类变量转换为有意义的数字变量?CART的工作如何允许变量保留其“分类性质”,而伪编码却不允许呢?我不知所措,您可以从上面的问题中找出这些问题的答案,并且看不到您以前的帖子。
gung-恢复莫妮卡

Answers:


6

据我所知,过去我已经对此问题进行了深入研究,没有预测建模技术(除了树,XgBoost等)可以同时处理两种类型的输入而无需简单地转换功能类型。

请注意,随机森林和XGBoost之类的算法接受混合特征的输入,但是它们在节点拆分期间会应用一些逻辑来处理它们。确保您了解“内幕”的逻辑,并且对黑匣子中发生的一切都没问题。

然而,基于距离/内核的模型(例如,K-NN,NN回归,支持向量机)可以用于通过定义“特殊”距离函数来处理混合类型特征空间。这样,对于每个特征,都应用适当的距离度量(例如,对于数字特征,我们将计算2个数字的欧几里得距离,而对于分类特征,我们将简单地计算2个字符串值的重叠距离)。所以,用户之间的距离/相似和在特征,如下所示: 如果特征 是分类, 如果特征u1u2fid(u1,u2)fi=(discategorical(u1,u2)fi ˚F ð Û 1ù 2 ˚F = ð š - ñ ù中号Ë ř Ç Û 1ü 2 ˚F ˚F ˚F ù 1 ü 2fid(u1,u2)fi=disnumeric(u1,u2)fifi 是数字。并且如果特征1中没有定义或。fiu1u2

有关分类特征的一些已知距离函数:

  • Levenshtien距离(或任何形式的“编辑距离”)

  • 最长公共子序列度量

  • 高尔距离
  • 而更多的指标在这里

5

我知道这个问题发布已经有一段时间了,但是如果您仍然在研究这个问题(或类似的问题),您可能需要考虑使用广义加性模型(GAM)。我不是专家,但是这些模型允许您组合不同的模型以创建单个预测。用于查找放入模型的系数的过程可一次解决所有问题,因此您可以将广义加性模型发送给您喜欢的分类预测变量模型,并将喜欢的模型发送连续预测变量,并获得一个最小化RSS或任何其他您要使用的错误标准。

令我烦恼的是,我知道唯一实现GAM的软件包是语言R,但是我敢肯定还有其他语言。


SAS的程序称为Proc Gam。
Alph

1
大多数主要的统计软件包(例如,Stata)都可以实施GAM。然而,更重要的是,GAM将使用伪代码将分类变量表示为预测变量。尚不清楚OP在寻找一个使用分类预测变量作为分类变量但没有用伪代码表示它们的模型时想要什么,但这不太可能。
gung-恢复莫妮卡

欢迎来到简历。请注意,您的用户名,identicon和指向用户页面的链接会自动添加到您发布的每条帖子中,因此无需签名。实际上,我们不希望您不这样做。
gung-恢复莫妮卡

4

尽管离散化将连续数据转换为离散数据,但很难说伪变量将分类数据转换为连续数据。实际上,由于算法可以在计算机上运行,​​因此几乎没有分类器算法不会将分类数据转换为伪变量。

从同样的意义上说,分类器最终将其预测变量转换为表示类别归属的离散变量(即使它输出类别概率,您最终也会选择一个临界值)。实际上,许多分类器(例如逻辑回归,随机森林,决策树和SVM)都可以很好地处理这两种类型的数据。

我怀疑很难找到一种可以处理连续数据但根本无法处理分类数据的算法。通常,我倾向于发现它对模型左侧的数据类型有更大的影响。


2
不,我的意思是逻辑回归等在我用两种类型的数据描述时都不起作用。它们至少在某种意义上要求您将所有预测变量视为数字,或者都不将其视为数字。我知道,例如,通过将“性别”编码为“男性”为1,将“女性”编码为0,人们通常可以通过逻辑回归获得良好的结果。但是,我想知道是否可以使用任何已知的建模范例来避免这种类型的过程。
Michael McGowan

1

这是一个深层的哲学问题,通常从统计以及机器学习的角度来解决。有人说,对于离散指标到分类指标而言,分类更好,因此程序包可以轻松地消化模型输入。其他人说,合并会导致信息丢失,但是分类变量可以/必须转换为{1,0}指标变量,而忽略了模型残差的最后一类。

应用线性回归》一书(Kutner等人) 在前几章中提到了在模型中引入指标变量的逻辑。可能还有其他类似的文本。

我对此的看法可能有点牵强:如果我们想象一下实验设计中的块之类的分类变量,那么指标变量自然是对非基于实验的数据分析的扩展。关于数据挖掘算法(决策树系列),分类是不可避免的(手动或自动合并),必须将其输入模型中。

因此,可能没有一个模型以相同的方式专门针对数字变量和分类变量(没有分类数值或使用指标分类)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.