scikit-learn有多少功能可以处理?

时间:2013-05-01 21:18:20

标签: python numpy machine-learning scipy scikit-learn

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

2 个答案:

答案 0 :(得分:13)

取决于估算师。在这个大小,线性模型仍然表现良好,而SVM可能需要永远训练(并忘记随机森林,因为它们不会处理稀疏矩阵)。

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

完全披露:我是一名scikit-learn核心开发人员。

答案 1 :(得分:1)

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

虽然在运行任何型号之前,您可以尝试以下

1)功能减少。您的数据中是否有可轻松删除的功能?例如,如果您的数据是基于文本或评级的,则可以使用许多已知选项。

2)学习曲线分析。也许您只需要一小部分数据来训练模型,然后您只需要适合您的数据或获得精确度的微小增加。

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