2013-05-01 74 views
5

我有一个[66k,56k]大小(行,列)的csv文件。它是一个稀疏矩阵。我知道numpy可以处理矩阵的大小。我想知道基于每个人的经验,scikit-learn算法可以轻松处理多少功能?scikit-学习句柄有多少功能?

+0

我正在处理的任务是回归。但是,了解sklearn如何处理高维数据通常会很有用。 – viper 2013-05-02 16:24:05

回答

12

取决于估计量。在这个尺寸下,线性模型仍然表现良好,而支持向量机可能会永远训练(并且忘记随机森林,因为他们不会处理稀疏矩阵)。

我亲自使用了LinearSVCLogisticRegressionSGDClassifier,大小约为300k×330万的稀疏矩阵没有任何问题。请参阅@ amueller的scikit-learn cheat sheet,以便为手头的工作选择正确的估算值。

完全披露:我是一个scikit学习的核心开发人员。

1

如果您需要频繁地训练模型,某些线性模型(回归,SGD,贝叶斯)可能是您最好的选择。

虽然你去跑步任何模型之前,你可以试试下面的

1)功能降低。您的数据中是否有可以轻松删除的功能?例如,如果您的数据是文字或评分,则可以使用很多已知的选项。

2)学习曲线分析。也许你只需要一小部分数据来训练一个模型,然后你就只适合你的数据或者精确度的提高。

这两种方法都可以让您大大减少所需的训练数据。