我应该研究哪些算法/概念来进行作者预测
我一直在做一个项目,想通过我自己的数据集来找出某个专栏的作者。
我打算使用mlpy这个Python库。它的文档写得很好,有大约100页的PDF文件。我也欢迎其他库的推荐。
问题是,我对数据挖掘和机器学习的概念感到很迷茫。这方面的内容太多了,算法和概念也数不胜数。
我想请教一下,应该学习哪些算法和概念,来解决我具体的问题。
到目前为止,我已经建立了一个数据集,内容大致是这样的。
| author | feature x | feature y | feature z | some more features |
|--------+-----------+-----------+-----------+--------------------|
| A | 2 | 4 | 6 | .. |
| A | 1 | 1 | 5 | .. |
| B | 12 | 15 | 9 | .. |
| B | 13 | 13 | 13 | .. |
接下来,我会获取一个新的专栏并进行解析,之后我将拥有这个专栏的所有特征,我的目标是找出这个专栏的作者是谁。
因为我对机器学习不太了解,所以我只想到可以计算所有行特征之间的距离,然后选择最近的那个。但我很确定这不是我应该走的路。
如果有人能提供一些方向、链接或阅读材料,我将非常感激。
4 个回答
2
正如其他人提到的,你可以用很多算法来判断文章的作者。kNN(最近邻算法)是一个不错的起点。此外,你还可以尝试其他几种算法,比如逻辑回归、朴素贝叶斯分类器和神经网络,这些可能会给你更准确的结果。
我自己也对作者身份识别和抄袭检测很感兴趣。实际上,我已经用上面提到的技术来判断源代码的作者。你可以通过以下研究论文了解更多相关内容。
- http://www.ijmlc.org/papers/50-A243.pdf [基于机器学习的源代码抄袭检测工具]
- http://dl.acm.org/citation.cfm?id=2423074 [使用无监督特征学习进行源代码作者识别]
另外,如果你打算使用Python,可以看看http://scikit-learn.org/stable/这个库。这个库功能很全面,并且有很好的文档说明。
3
如果你有足够的训练数据,那么可以使用kNN(k-最近邻)分类器来实现你的目标。这个方法简单易懂,但功能强大。
你可以查看 scikits.ann,那里有可能的实现方式。
这个教程是scikits-learn的一个很好的参考。
补充:此外,这里有一个关于 scikits-learn中kNN的页面。你可以通过给出的例子轻松理解它。
另外,mlpy也似乎有 kNN。