我有一个[66k, 56k]大小的csv文件(行,列)。它是一个稀疏矩阵。我知道那个笨蛋能处理这么大的矩阵。我想知道根据每个人的经验,scikit-learn算法可以轻松处理多少功能?
取决于估计者。在这种规模下,线性模型仍然表现良好,而支持向量机可能需要很长时间来训练(忘记随机森林,因为它们不会处理稀疏矩阵)。
我个人使用LinearSVC
, LogisticRegression
和SGDClassifier
的稀疏矩阵大小大约为300k × 330万,没有任何麻烦。请参阅@amueller的scikit-learn小抄,为手头的工作选择合适的估价师。
完全披露:我是一个scikit-learn核心开发者。
如果你需要经常训练你的模型,一些线性模型(回归,SGD,贝叶斯)可能是你最好的选择。
尽管在运行任何模型之前,您可以尝试以下
1)特征约简。你的数据中是否有可以轻易删除的特征?例如,如果您的数据是基于文本或评级的,那么就有许多已知的选项可用。
2)学习曲线分析。也许你只需要一小部分数据来训练一个模型,之后你只能拟合你的数据,或者在准确性上获得微小的提高。这两种方法都可以让你大大减少所需的训练数据。