3

我有一个网站一年的数据。我想训练一种机器学习算法来根据某些变量(例如,字数、发布时间等)预测新内容的成功与否

我想获取一条新数据,输入有关它的某些特征,并获得它在网站上表现如何的概率。

此外,我想继续将未来的数据添加到训练集中,并不断训练算法以随着时间的推移变得更智能。

我的问题是:我应该如何使用 scikit-learn 来完成这项工作?

4

1 回答 1

3

你所拥有的是一个二元分类问题,即你必须决定给定的输入是否好。

尝试不同的回归算法,scikits-learn 让切换算法变得超级容易,让您看到哪些有效,哪些无效。

从我的脑海中,这里有一些我会尝试的方法:

  • 支持向量机
  • 随机森林(scikits 中的随机树森林)
  • 回归(Ridge、Lasso、IRLS、logistic)
  • 朴素贝叶斯
  • k 最近邻

如何评估给定方法的质量?使用交叉验证(如果你有足够的数据,做 10 倍,否则做 5 倍)。scikits-learn 手册中有一个完整的部分(5.1)专门用于此。

向训练集​​中添加新数据需要重新训练模型。根据您手头的计算能力,它可能是也可能不是问题。如果您有很多示例,添加一个不会有太大变化,因此请务必使用一些新示例重新训练您的算法。这将节省计算时间。

使用训练集的算法称为离线算法。另一方面,在线算法每次出现新示例时都会学习。如果你真的需要这个,试试在线方法,比如 k 个最近的邻居。

如果您需要示例代码,scikit-learn 文档非常有帮助:- http://scikit-learn.org/0.10/auto_examples/linear_model/logistic_l1_l2_sparsity.html#example-linear-model-logistic-l1-l2-sparsity-py - http://scikit-learn.org/0.10/modules/linear_model.html#ridge-regression

http://scikit-learn.org/0.10/user_guide.html

于 2012-05-07T20:17:05.943 回答