我有[66K,56K]大小(行,列)的CSV文件。 它是一个稀疏矩阵。 我知道numpy的可以处理该尺寸的矩阵。 我想知道,根据每个人的经验,有多少功能scikit学习算法可以从容应付?
Answer 1:
取决于估计。 在这种规模,线性模型仍然表现良好,而支持向量机可能会永远采取列车(而忘记了随机森林,因为他们不会处理稀疏矩阵)。
我个人使用LinearSVC
, LogisticRegression
和SGDClassifier
与尺寸大致300K×330万的稀疏矩阵没有任何麻烦。 见@ amueller的scikit学习小抄为选择合适的估计手头的工作。
披露:我是一个scikit学习的核心开发人员。
Answer 2:
有些线性模型(回归,SGD,贝叶斯)可能会是你最好的选择,如果你需要经常训练模型。
虽然你去跑步任何模型之前,你可以尝试以下方法
1)特性降低。 在你的数据有特点,可以很容易地被删除? 例如,如果你的数据是基于文本或评级有很多知名可供选择。
2)学习曲线分析。 也许你只需要你的数据来训练模型的一小部分,在那之后你只安装到您的数据或获取精度的微小增加。
这两种方法都可以让你大大减少所需的训练数据。
文章来源: How many features can scikit-learn handle?