サイトでのユーザーの人気のアルゴリズムは「標準的なものに対する非標準的なアプローチ」です

誰もがウェブサイト上の記事や資料の評価システムを見ました。 多くは自分でそれをしましたが、誰もがサイト上の人々の評価をしませんでした。
この記事では、リソースのユーザー向けに高品質の評価システムを作成する方法を説明します。



最初に、さまざまな評価アルゴリズムの線を引きます。
I-ユーザーは「+」のみを受け取ります
主な利点:
短所:

II-ユーザーは「+」および「-」を取得します
以前のシステムとの大きな違いはほとんどありません。 別のフィールドがデータベースに追加されました。
主な利点:
短所:

III-@ klim-danilovklim-danilovからの双曲線
はい、これはかなり興味深いアイデアですが、素材を評価するためのものです。 しかし、ユーザーではありません。
主な利点:
短所:

IV-平均統計
最も一般的なシステムの1つ。 これは、有権者の合計数と合計スコアを互いに分けたものに基づいています。
主な利点:
短所:

V-フローティングシステム
原理は、プラスまたはマイナスの方向のカルマの変化に基づいています。
主な利点:
短所:

今、私は少しやります。
人を評価するためのアルゴリズムがすでに存在するのに、なぜ車輪を再発明したのですか?
-そして答えは簡単です。リソース上で真に権威のある人々を強調する必要性についての会話があるとき、彼らは正しくありません。

このアルゴリズムは、「直角三角形」の幾何学的形状に基づいています。
はい、幾何学では非常に珍しいものを見つけることができます。

なぜ三角形が選ばれたのですか?
実際、三角形の高さは、評価を与えるユーザーの評価に対応することができます。
定格の三角形の長さは定格です。 そして、斜辺はユーザーの権威間のまさにその違いです。

それでは、楽しい部分に移りましょう。
$a = 254; //    $b = 47; //     /*   ,      */ if($b<=0){ $b=1; } /*         $b */ ###     * 2 ### $aInSquare = ($a * 2) * ($a * 2); /*   ,        2 ?   ,       $a    2 ,       */ ###    B ### $bInSquare = $b * $b; ###    ### $cInSquare = $bInSquare + $aInSquare; ###   ### $c = sqrt($cInSquare); $result = (int) round($c / $b); /*        $b             int */ if($result > $b / 2){ $result = (int) round($b / 2); } /*        .      ,      50% */ var_dump($result); /*       11,        . */ ?> 

たぶん誰かが尋ねます。 数式$ result =($ a * 2)/ $ b;を使用しなかったのはなぜですか?
この式は、$ aが2回以上$ b未満の場合、適切に機能しません。

数か月以内に、プロジェクトの作成を終了します(これについては、クローズドベータテスト後に記述します)。
アルゴリズムは、非常に必要な実際のプロジェクトでテストされます。

結果:

$ a = rand(0.99999)で1000回テストした後、 $ b = rand(0,99999);
いくつかのバグに遭遇しました。
1-0で除算します。
if($ b <= 0){$ b = 1; }

2番目-受信ユーザーが1ポイントを持ち、1000からユーザーから受信すると、結果のボリュームは2000になります
if($ result> $ b / 2){$ result =(int)round($ b / 2); }最大値を50%増やすことができます。

Code-Igniterベンチマークは、ロード結果を生成しませんでした(0.0000)。

どうもありがとう。 あなたが見るすべてのインスピレーションを探してください。

Source: https://habr.com/ru/post/J107685/


All Articles