12

私のブログ記事数は約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)

疑似コードでの回答を期待しています。

4

2 に答える 2

25

あなたの問題は、回帰(リンク)のカテゴリに分類されます。機械学習の用語では、機能のコレクション(リンク) (質問に記載) があり、それらの機能を考慮して予測するスコア値があります。

Ted Hopp が提案したのは、基本的には線形予測関数(リンク)です。これは、シナリオにとって単純すぎるモデルである可能性があります。

問題にロジスティック回帰(リンク)を使用することを検討してください。これを使用する方法は次のとおりです。

1. モデル学習データセットを作成する

4000 のセットからいくつかのブログ投稿をランダムに選択します。これは、これらのブログ投稿を手でm快適に閲覧できるように十分に小さいセットである必要があります。m

各ブログ投稿について、 からまでmの数字で「良い」点を採点してください。役立つ場合は、値に「星」を使用していると考えることができます。010, 1, 2, 3, 40, 0.25, 0.5, 0.75, 1

mこれで、それぞれが一連の機能とスコアを持つブログ投稿ができました。

オプションで機能セットを拡張して、派生機能を含めることができます。たとえば、「賛成票数」、「受信したコメント」、「共有数」、「フォロワー数」の対数を含めることができます。 「現在」と「作成時間」の間の時間数の対数。

2. モデルを学習する

勾配降下法を使用して、モデル学習データセットに適合するロジスティック回帰モデルを見つけます。モデル学習プロセスでそれぞれのステップを実行できるように、データセットをtrainingvalidation、およびtestセットに分割する必要があります。

このセクションについては、これ以上詳しく説明しません。インターネットには詳細があふれていて、既製のプロセスだからです。

ウィキペディアのリンク:

3. モデルを適用する

ロジスティック回帰モデルを学習したので、それを適用して、新しいブログ投稿の「良い」スコアを予測できます。単純に一連の機能 (および派生機能) を計算し、モデルを使用してそれらの機能をスコアにマッピングします。

繰り返しになりますが、インターネットにはこのセクションの詳細がたくさんありますが、これは既定のプロセスです。


ご不明な点がございましたら、お気軽にお問い合わせください。

機械学習についてさらに学びたい場合は、Coursera.orgで無料のオンライン スタンフォード機械学習コースを受講することを検討してください。(私はスタンフォード大学やコーセラと提携していません。)

于 2013-06-11T07:09:11.860 に答える
13

各ブログ投稿の個々のスコアの加重平均をお勧めします。各値の相対的な重要性と値のスケールの違いの両方を反映する重みを割り当てます (たとえば、E他の値と比較して非常に大きな数になります)。次に計算します。

rank = wP * P + wC * C + wS * S + wE * E + wF * F + wU * U;

各値の相対的な重要性や、ランクに関して値が何を意味するかについての情報さえも提供しません。したがって、これについてこれ以上具体的に説明することは不可能です。(作成時間が古いと、投稿のランクが上がるか下がるか? 下がっている場合wEはマイナスになるはずです。)

于 2013-06-11T04:59:34.107 に答える