收集机器学习训练数据

Collecting Machine learning training data

我是机器学习的新手,需要澄清几件事。我正在尝试根据某人在 Facebook 上的点赞来预测他们点赞 activity 的概率。我正在使用朴素贝叶斯分类器,但我不确定有几件事。 1. 我的 labels/inputs 是什么? 2.训练数据需要收集哪些信息?我的猜测是创建一个调查并询问此人是否会喜欢 activity(从 1-10 分)

这对于朴素贝叶斯来说可能相当困难。您需要收集(或计算)一个人是否喜欢 activity X 的样本,以及他们在 Facebook 上点赞的详细信息(以某种一致的方式组织)。

基本上,对于朴素贝叶斯,您的训练数据应该与您的测试数据具有相同的数据类型。

如果您可以访问每个人的 Facebook 点赞历史,调查方法可能会奏效。

在有监督的class化中,所有class化器都需要使用已知的标记数据进行训练,该数据称为训练数据。你的数据应该有一个特征向量,后面跟着一个叫做 class 的特殊向量。在你的问题中,如果这个人已经享受了 activity 与否。

训练 classifier 后,您应该使用另一个数据集测试它的行为,以免出现偏差。此数据集必须具有 class 作为训练数据。如果您使用相同的数据集进行训练和测试,您的 classifiers 预测可能非常好但不公平。

我建议你看一下 K 折交叉验证等评估技术。

您应该知道的另一件事是,常见的朴素贝叶斯 classifier 用于预测二进制数据,因此您的 class 应该为 0 或 1,这意味着您进行调查的人喜欢或者不是 activity。它还在 Weka (Java) 或 SkLearn (Python) 等软件包中实现。

如果你真的对贝叶斯分类器感兴趣,我需要说的是,事实上,用于二进制 class 化的朴素贝叶斯并不是最好的,因为 Minsky in 1961 discovered that the decision boundaries are hyperplanes. Also the Brier Score 真的很糟糕,据说这个 class 校准器没有很好地校准。但是,它毕竟做出了很好的预测。

希望对您有所帮助。