【问题标题】:Which supervised classifiers in scikit-learn are recommended for large datasets?大型数据集推荐使用 scikit-learn 中的哪些监督分类器?
【发布时间】:2017-10-23 08:08:34
【问题描述】:

scikit-learn 中有许多有监督的分类器算法,但我找不到任何关于它们在大型数据集上的可扩展性的信息。我知道,例如,支持向量机在处理大型数据集时表现不佳,但其他的呢? 哪种监督/半监督分类器算法最适合大型数据集?

【问题讨论】:

  • 例如:基于随机梯度下降的一切:SGDClassifier(包括线性 SVM),如果选择了正确的方法,可能大部分 linear_model(文档)。还有LinearSVC。但巨大是主观的。

标签: machine-learning scikit-learn large-data large-files large-data-volumes


【解决方案1】:

如果你专门在 sklearn 中寻找分类器,可以看看这个链接:Scaling Strategies for large datasets。

通常,分类器通过创建小批量对您的数据集进行增量学习。这里有一些链接供参考:

增量学习链接

您可以在 SKlearn 中查看这些分类器以了解更多信息

如果您的数据在输入期间以流的形式提供,您可以查看Apache Spark Streaming 并跳转到MlLib in Apache Spark 了解更多信息。

您还可以查看Feature Hasher,了解 sklearn 中的大规模特征散列。

【讨论】:

  • @stackoverflow.com/users/8160718/mohammed-kashif 谢谢,这是很好的信息来源!半监督分类器(LabelPropagation 和 LabelSpreading)呢?它们在大型数据集上表现良好吗?
  • @zlatko 欢迎您!虽然我不确定半监督分类器。需要查一下。一旦我发现相关内容,我会及时通知您。
  • 如果使用标准拟合方法而不是 partial_fit,这些增量分类器的行为如何?如果不使用 partial_fit,与其他算法的性能有何不同?
【解决方案2】:

您所说的大型数据集是指像“iris”默认数据集吗?

取决于您想用这些算法做什么,例如训练和拟合。 我将写下我用于 BIG 数据集的那些,并且工作正常。

from sklearn.cross_validation import train_test_split
from sklearn import datasets, svm\n
import numpy as np\n
import matplotlib.pyplot as plt\n
from sklearn.model_selection import GridSearchCV\n
from sklearn.metrics import mean_squared_error\n
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import SGDRegressor\n

但你当然需要知道你想用它们做什么。 在这里,您可以查看您想了解的有关这些或更多内容的所有信息。 http://scikit-learn.org/stable/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 2012-11-24
    • 2019-04-16
    • 1970-01-01
    • 2017-02-01
    • 2015-08-23
    • 2018-07-27
    • 2017-08-18
    相关资源
    最近更新 更多