我有一个数据点少但数据量大/功能高的数据集。我想知道是否有任何分类算法可以很好地处理此类数据集,而无需执行降维技术,例如PCA,TSNE?
df.shape
(2124, 466029)
答案 0 :(得分:1)
您可以尝试套索/岭/弹性网逻辑回归。
答案 1 :(得分:1)
这是维数(或p>>n
)问题的经典诅咒(p
是预测变量的数量,n
是观测数量的数量)。
已开发出许多技术来尝试解决此问题。
您可以随机限制变量(选择不同的随机子集),然后使用cross-validation评估其重要性。
更可取的方法(imho)是使用ridge-regression, lasso, or elastic net进行正则化,但是请注意,实际上它们的oracle属性很少满足。
最后,有些算法可以处理大量的预测变量(并且在实现中使用tweaks可以提高p >> n时的性能)。
支持向量机或随机森林就是这类模型的例子。
该主题上有很多资源,可以免费获得。
例如,您可以查看杜克大学的slides。
我不会以合理的数学方式进行解释,但我会简要地给您一些直觉。
Y= dependent variable, your target
X= regressors, your features
ε= your errors
我们定义一个收缩过程 oracle ,如果它能够渐近地做到:
有三个假设,如果满足,则将套索设为 oracle 。
实际上,您很少满足这些假设。
在这种情况下,发生的情况是收缩量不一定会保留 right 变量。
这意味着您不能对最终模型进行统计上合理的推断(由于这个原因和其他原因,您不能说X_1
解释了Y)。
直觉很简单。如果不满足假设1,则可能会错误地删除其中一个真实变量。如果不满足假设2,则可能会错误地保留与真实变量之一高度相关的变量,而不是正确的变量。
总而言之,如果您的目标是预测,则不必担心。您的预测仍然会很好!唯一的区别是,在数学上您不能再说选择概率为-> 1的正确变量了。
PS:套索是弹性网的特例,我隐约记得弹性网的预言性也得到了证明,但我可能是错的。 PPS:感谢我很长时间没有研究这些内容,并且可能存在不正确之处,因此进行了更正。