ベイジアン アプローチを適用して、好きなもの、嫌いなもの、レビュー数を考慮したリストに優先順位を付けることを楽しみにしています。
ここにリストされているアプローチは、ベイジアン平均に依存しています。
$bayesian_rating = ( ($avg_num_votes * $avg_rating) + ($this_num_votes * $this_rating) ) / ($avg_num_votes + $this_num_votes);
私の場合、$avg_rating
5 つ星システムではないため存在しません。いいね、嫌い、レビューの数は常に増加するため、リストの真の表現に注意する必要があります。
ここでの解決策は、アプローチを決定するのに十分ではありませんでした。
数学的アプローチを適用したい場合の最善の解決策は何ですか?
編集が追加されました:参照。@Ina、いいねを5倍すると、5つ星システムで最高の値になり、5つ星システムを反映することができます。
コードに戻って、処理する変数をいくつか追加した後 (好き、嫌い、レビューの数、バスケットに追加された回数)、何を入力できるかわかりませ$avg_rating
ん$this_rating
。
これまでのコードは次のとおりです。
// these values extracted from the database
$total_all_likes = 10; //total likes of all the products
$total_all_dislikes = 5; //total dislikes of all the products
$total_all_reviews = 7; //total reviews of all the products
$total_all_addedToBasket = 2; //total of products that has been added to basket for all the users
$total_all_votes = ($total_all_likes *5) + $total_all_dislikes; //total of likes and dislikes
$total_all_weight = $total_all_votes + $total_all_reviews + $total_all_addedToBasket; //total interactions on all the products
$total_all_products = 200; //total products count
//Get the average
$avg_like = ($total_all_likes*5)/$total_all_votes; //Average of likes of all the votes
$avg_dislike = $total_all_dislikes/$total_all_votes; //Average of dislikes of all the votes
$avg_reviews = $total_all_reviews/$total_all_products; //Average of reviews of all the products
$avg_addedToBasket = $total_all_addedToBasket/$total_all_products; //Average of added to basket count of all the products
$avg_weight = $avg_like + $avg_dislike + $avg_reviews + $avg_addedToBasket; //Total average weight
//New product, it has not been liked, disliked, added to basket or reviewed
$this_like = 0 *5;
$this_dislike = 0;
$this_votes = $this_like + $this_dislike;
$this_review = 0;
$this_addedToBasket = 0;
$this_weight = $this_votes + $this_review + $this_addedToBasket;
//$avg_rating
//$this_rating
$bayesian_rating = (($avg_weight * $avg_rating) + ($this_weight * $this_rating) ) / ($avg_weight + $this_weight);