我有[66k,56k]大小(行,列)的csv文件。它是一个稀疏矩阵。我知道numpy可以处理这个大小的矩阵。我想根据每个人的经验知道scikit-learn算法可以轻松处理多少功能?
答案 0 :(得分:13)
取决于估算师。在这个大小,线性模型仍然表现良好,而SVM可能需要永远训练(并忘记随机森林,因为它们不会处理稀疏矩阵)。
我个人使用LinearSVC
,LogisticRegression
和SGDClassifier
使用大小约为300k×330万的稀疏矩阵,没有任何问题。请参阅@ amueller的scikit-learn cheat sheet,以便为手头的工作选择合适的估算工具。
完全披露:我是一名scikit-learn核心开发人员。
答案 1 :(得分:1)
如果您需要经常训练模型,某些线性模型(回归,SGD,贝叶斯)可能是您最好的选择。
虽然在运行任何型号之前,您可以尝试以下
1)功能减少。您的数据中是否有可轻松删除的功能?例如,如果您的数据是基于文本或评级的,则可以使用许多已知选项。
2)学习曲线分析。也许您只需要一小部分数据来训练模型,然后您只需要适合您的数据或获得精确度的微小增加。
这两种方法都可以让您大大减少所需的训练数据。