我应该研究哪些算法/概念来进行作者预测

4 投票
4 回答
860 浏览
提问于 2025-04-17 19:47

我一直在做一个项目,想通过我自己的数据集来找出某个专栏的作者。

我打算使用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(最近邻算法)是一个不错的起点。此外,你还可以尝试其他几种算法,比如逻辑回归、朴素贝叶斯分类器和神经网络,这些可能会给你更准确的结果。

我自己也对作者身份识别和抄袭检测很感兴趣。实际上,我已经用上面提到的技术来判断源代码的作者。你可以通过以下研究论文了解更多相关内容。

  1. http://www.ijmlc.org/papers/50-A243.pdf [基于机器学习的源代码抄袭检测工具]
  2. http://dl.acm.org/citation.cfm?id=2423074 [使用无监督特征学习进行源代码作者识别]

另外,如果你打算使用Python,可以看看http://scikit-learn.org/stable/这个库。这个库功能很全面,并且有很好的文档说明。

2

在mlpy上有很多算法可以选择,所以你应该没问题。我同意Steve L的看法,支持向量机(Support Vector Machines)确实很不错,但即使它比较容易使用,里面的细节对于刚接触机器学习的人来说也不太容易理解。

除了kNN,你还可以考虑分类树(分类树学习)和逻辑回归(逻辑回归)。

对于初学者来说,分类树的一个优点是它的输出结果很容易理解,因此也更容易调试。

而逻辑回归则可以在数据量增加时依然表现良好,给你带来不错的结果。

我觉得在你的情况下,应该选择一个你看了之后觉得比较容易上手的算法。大多数情况下,这些算法都能给你带来相当不错的结果。祝你好运!

3

如果你有足够的训练数据,那么可以使用kNN(k-最近邻)分类器来实现你的目标。这个方法简单易懂,但功能强大。

你可以查看 scikits.ann,那里有可能的实现方式。

这个教程是scikits-learn的一个很好的参考。

补充:此外,这里有一个关于 scikits-learn中kNN的页面。你可以通过给出的例子轻松理解它。

另外,mlpy也似乎有 kNN

撰写回答