排名算法

sha*_*jin 11 algorithm math machine-learning ranking rank

我有大约4000篇博文.我想根据以下值对所有帖子进行排名

Upvote Count => P
Comments Recieved => C
Share Count => S
Created time in Epoch => E
Follower Count of Category which post belongs to => F (one post has one category)
User Weight => U (User with most number of post have biggest weight)
Run Code Online (Sandbox Code Playgroud)

我期待在伪代码中回答.

Tim*_*lds 23

您的问题属于回归(链接)类别.在机器学习术语中,您有一系列功能(链接)(您在问题中列出),并且您有一个您想要预测分数值.

Ted Hopp建议的基本上是线性预测函数(链接).对于您的场景而言,这可能过于简单.

考虑使用逻辑回归(链接)来解决您的问题.这是你如何使用它.

1.创建模型学习数据集

m从你的4000集中随机选择一些博客文章.它应该是一个足够小的集合,你可以轻松地m手工浏览这些博客文章.

对于每一个的m博客文章,比分是如何"好"是从数量01.如果它有帮助,您可以将其视为使用0, 1, 2, 3, 4"星星"作为值0, 0.25, 0.5, 0.75, 1.

您现在有m博客帖子,每个博客都有一组功能和分数.

您可以选择扩展您的功能集以包含派生功能 - 例如,您可以包括"Upvote Count","Comments Recieved","Share Count"和"Follower Count"的对数,您可以包括"现在"和"创建时间"之间的小时数的对数.

2.学习你的模型

使用梯度下降来查找适合您的模型学习数据集的逻辑回归模型.您应该将数据集划分为训练,验证测试集,以便您可以在模型学习过程中执行相应的步骤.

我将不再详细介绍这一部分,因为互联网上充满了细节,而且它是一个罐装过程.

维基百科链接:

3.应用你的模型

在学习了逻辑回归模型之后,您现在可以应用它来预测新博客文章"好"的分数!只需计算一组要素(和派生要素),然后使用您的模型将这些要素映射到得分.

互联网上充满了本节的细节,这是一个固定的过程.


如果您有任何疑问,请务必询问!

如果您有兴趣了解更多关于机器学习,你应该考虑免费上Coursera.org在线斯坦福大学机器学习课程.(我不隶属于斯坦福大学或Coursera.)


Ted*_*opp 13

我建议每篇博文的个人得分的加权平均值.指定一个权重,反映每个值的相对重要性和值标度的差异(例如,E与其他值相比,将是一个非常大的数字).然后计算:

rank = wP * P + wC * C + wS * S + wE * E + wF * F + wU * U;
Run Code Online (Sandbox Code Playgroud)

您不提供有关每个值的相对重要性的任何信息,甚至不提供值在排名方面的含义.因此,不可能对此更加具体.(较旧的创作时间是否会在排名中上升或下降?如果下降,wE则应为负数.)