我有大约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)
我期待在伪代码中回答。
答案 0 :(得分:23)
您的问题属于regression (link)类别。在机器学习术语中,您有一个features (link)的集合(您在问题中列出),并且您有一个得分值,您希望预测特征
Ted Hopp所建议的基本上是linear predictor function (link)。对于您的场景,这可能过于简单。
考虑使用logistic regression (link)解决您的问题。以下是您将如何使用它。
从您的4000集中随机选择一些m
博客文章。它应该是一个足够小的集合,您可以轻松地手动查看这些m
博客文章。
对于每个m
博客帖子,使用从0
到1
的数字评分“好”。如果有帮助,您可以将其视为使用0, 1, 2, 3, 4
“星号”作为值0, 0.25, 0.5, 0.75, 1
。
您现在拥有m
篇博文,每篇博文都有一系列功能和分数。
您可以选择扩展您的功能集以包含派生功能 - 例如,您可以包括“Upvote Count”,“Comments Recieved”,“Share Count”和“Follower Count”的对数,以及你可以包括“现在”和“创建时间”之间的小时数的对数。
使用渐变下降来查找适合您的模型学习数据集的逻辑回归模型。您应该将数据集划分为培训,验证和测试集,以便您可以在模型学习过程中执行相应的步骤。
我不再详细介绍这一部分,因为互联网上充满了细节,而且是一个固定的过程。
维基百科链接:
在学习了逻辑回归模型后,您现在可以应用它来预测新博客文章“好”的分数!只需计算一组要素(和派生要素),然后使用您的模型将这些要素映射到得分。
同样,互联网上充满了本节的细节,这是一个固定的过程。
如果您有任何疑问,请务必询问!
如果您有兴趣了解有关机器学习的更多信息,则应考虑考虑the free online Stanford Machine Learning course on Coursera.org。 (我不隶属于斯坦福大学或Coursera。)
答案 1 :(得分:13)
我建议每篇博文的各个分数的加权平均值。指定一个反映每个值的相对重要性和值标度差异的权重(例如,E
与其他值相比将是一个非常大的数字)。然后计算:
rank = wP * P + wC * C + wS * S + wE * E + wF * F + wU * U;
您不提供有关每个值的相对重要性的任何信息,甚至不提供值在排名方面的含义。因此,不可能对此更加具体。 (较旧的创作时间是否会在排名上下推送帖子?如果下来,则wE
应为负数。)