問題タブ [bayesian]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 多因子加重ソートで最も関連性の高い結果を提供する方法
「関連性」の順に、2+ファクターの加重ソートを提供する必要があります。ただし、1つ以上の要素が他の要素の「緊急性」(重み)に影響を与えるようにしたいという点で、要素は完全に分離されていません。
例:投稿されたコンテンツ(記事)は賛成/反対投票できるため、評価があります。投稿日があり、カテゴリもタグ付けされています。ユーザーは記事を書いて投票することができ、自分自身に何らかのランキング(専門家など)がある場合とない場合があります。おそらくStackOverflowに似ていますよね?
タグでグループ化され、「関連性」でソートされた記事のリストを各ユーザーに提供したいと思います。関連性は記事の評価と年齢に基づいて計算され、著者のランキングの影響を受ける可能性があります。IEは、数年前に書かれた高ランクの記事が、昨日書かれた中ランクの記事ほど関連性があるとは限りません。また、専門家が記事を書いた場合、「ジョー・シュモー」が書いた記事よりも関連性が高いものとして扱われる可能性があります。
もう1つの良い例は、ホテルに価格、評価、アトラクションで構成される「メタスコア」を割り当てることです。
私の質問は、多因子ソートに最適なアルゴリズムは何ですか?これはその質問の複製かもしれませんが、私は任意の数の要因(より合理的な期待は2〜4の要因)の一般的なアルゴリズム、できれば私がする必要のない「完全自動」関数に興味がありますユーザー入力を微調整または要求すると、線形代数と固有ベクトルの奇抜さを解析できません。
私がこれまでに見つけた可能性:
注:S
は「ソートスコア」です
- 「線形加重」 -次のような関数を使用します。ここで、任意に割り当てられた加重であり、因子の値です。また、正規化する必要があります(つまり)。これは、 Lucene検索の仕組みのようなものだと思います。
S = (w1 * F1) + (w2 * F2) + (w3 * F3)
wx
Fx
F
Fx_n = Fx / Fmax
- 「Base-N加重」 -加重よりもグループ化に似ており、加重が基数10の倍数で増加する線形加重であるため(CSSセレクターの特異性と同様の原則)、より重要な要素が大幅に高くなります 。
S = 1000 * F1 + 100 * F2 + 10 * F3 ...
- 推定真の値(ETV) -これは明らかにGoogle Analyticsがレポートで導入したものであり、ある要素の値が別の要素に影響を与えます(重み)-結果として、より「統計的に有意な」値でソートされます。リンクはそれをかなりよく説明しているので、ここに方程式があります: ここで、は「より重要な」要因(記事の「バウンス率」)であり、「重要性の変更」要因(記事の「訪問」)です。
S = (F2 / F2_max * F1) + ((1 - (F2 / F2_max)) * F1_avg)
F1
F2
- ベイズ推定値-ETVに非常によく似ています。これは、IMDbが評価を計算する方法です。説明については、このStackOverflowの投稿を参照してください; 方程式:、ここで、は#3と同じであり、「有意性」係数の最小しきい値制限です(つまり、X未満の値は考慮されません)。
S = (F2 / (F2+F2_lim)) * F1 + (F2_lim / (F2+F2_lim)) × F1_avg
Fx
F2_lim
オプション#3または#4は、#1および#2のように任意の重み付けスキームを選択する必要がないため、非常に有望に見えますが、問題は、2つ以上の要因に対してこれをどのように行うかです。
また、2要素均等化アルゴリズムのSQL実装に出くわしました。これは、基本的に、最終的に作成する必要があるものです。
mahout - トレーニング モデルをオンザフライで更新する
apache mahout の単純ベイズ分類器を使用しています。100 個のトレーニング データを使用してモデルをトレーニングし、さらに 50 個のトレーニング データを取得したとします。トレーニング済みのモデルに新しいデータを追加する方法はありますか、それとも 150 個のデータで最初から再トレーニングする必要がありますか?
この機能が現在利用できない場合、将来のリリースのカードに含まれていますか?
r - 多項単純ベイズ分類器
私はCRANで多項単純ベイズ分類器を探していましたが、これまでのところ、パッケージ内の二項実装だけを思いつくことができますe1071
。多項ベイズ分類器を備えたパッケージを知っている人はいますか?
mahout - ベイジアン分類器のトレーニング データ サイズ
カスタマー サポート ドメインでセンチメント分析を実行するために apache mahout を使用しています。適切なトレーニング データ セットを取得できないため、独自に作成しました。今では、肯定的な感情に対して 100 通、否定的な感情に対して 100 通のサポート メールがあります。
しかし、問題は、精度を達成できないことです。55% 前後にとどまり、哀れです。約 70% 前後の精度で十分です。また、Apache mahout の無料の単純なベイズ分類器を使用していることにも注意してください。
正確に言えば、データセットのサイズが小さいことが精度を低下させているのでしょうか? そうでない場合、どこを微調整すればよいですか?
php - 大規模なデータ セット用の軽量ベイズ フィルター
CMS 用にさらに別のスパム検出を作成したいと考えています。現在、次の 3 つのオプションが表示されます。
- 単純な php クラスを使用し、MySQL にトークンを保存する
- spamassassin をインストールし、php-connector を使用する
- 象使いのような大きなもの
私は MySQL のアプローチが好きではありません。時間の経過とともに非常に大きくなり、システム全体のパフォーマンスが低下するのではないかと心配しているからです。spamassassin のアプローチはより魅力的であるように見えますが、インターネット上のあらゆる場所で、SA のルールはメールとヘッダーに重点が置かれており、これは理想的な方法ではないと書いています。最後に大事なことを言い忘れましたが、私は mahout を認識していますが、それは少し大きすぎて、多くの管理オーバーヘッドが発生するのではないかと心配しています。
Linuxサーバーで実行でき、phpからアクセスできる、小さくて効率的なものはありますか?
r - Rでの単純なMCMCベイズ推定
Rで単純なMCMCベイジアンネットワーク推論関数/パッケージを探しています。基本的に、サンプルx変数(+バーンインや反復カウントなどのオプションのパラメーター)を含む行列を受け入れ、隣接関係を返す関数が必要です。推論されたネットワークの行列。
私はMatlabツールキット「BayesNet」を使用していました。これは、私が探しているもののほとんどを提供する単純な「learn_struct_mcmc」関数を提供します。Rで同等のものを探しています。
私はhttp://cran.r-project.org/web/views/Bayesian.htmlのパッケージを調べてきましたが、探しているものを完全に実行するものは何も見ていません。私は統計家としての訓練を受けていませんでした。そのリストで見たパッケージの多くは、ドキュメントが不足しているか、自分で配線するよりも複雑な統計を持っています。開始するには、「合理的な」デフォルトの単純な関数が必要です。
Rmpiまたは雪を活用するもののボーナスポイント。
matlab - MATLAB - 分類出力
私のプログラムは、ユーザーからの一定量のクラスターの K-means クラスタリングを使用します。この k=4 の場合、後でクラスター化された情報を matlabs 単純ベイズ分類器で実行したいと思います。
クラスターを分割して、matlab の異なる単純な分類器に供給する方法はありますか?
単純ベイズ:
K-平均:
k個のクラスターを形式k1、k2、k3に出力し、単純な分類器にそれらをピックアップさせるようなもので、テストの代わりにk1、k2..などになります。
しかし、matlab の k クラスターの出力を何らかの形式に送信する方法がわかりません。(このプログラムには本当に新しい)
編集
php - 5 つ星以外の評価システムにベイジアン平均を適用する
ベイジアン アプローチを適用して、好きなもの、嫌いなもの、レビュー数を考慮したリストに優先順位を付けることを楽しみにしています。
ここにリストされているアプローチは、ベイジアン平均に依存しています。
$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
。
これまでのコードは次のとおりです。
r - R:階層データのベイズロジスティック回帰
これはstats.stackexchangeからの再投稿で、満足のいく応答が得られませんでした。私は2つのデータセットを持っています。1つ目は学校に関するもので、2つ目は標準化されたテストに失敗した各学校の生徒をリストしています(意図的に強調)。偽のデータセットは次の方法で生成できます(Tharenのおかげで):
P(Fail = 1 | Student Race、School Revenue)を推定しようとしています。学生のデータセットで多項離散選択モデルを実行すると、明らかにP(Race | Fail = 1)を推定することになります。私は明らかにこれの逆を見積もる必要があります。すべての情報が2つのデータセット(P(Fail)、P(Race)、Revenue)で利用できるため、これができない理由はわかりません。しかし、私は実際にRで実装する方法について困惑しています。どんなポインタでも大歓迎です。ありがとう。