問題タブ [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 - 加重平均と評価
数学は私の強みではなく、ここで途方に暮れています。
基本的に、私が必要とするのは、1から5のスケールで加重評価を与える単純な式です。投票数が非常に少ない場合、それらは影響力が少なく、評価は平均に向かってより強くなります(この場合、私はそれを望んでいます)他のすべての評価の平均ではなく、3になります)。
私はいくつかの異なるベイジアン実装を試しましたが、これらはうまくいきませんでした。私が探しているグラフィック表現は、次のように表示できると思います。
乾杯
matlab - この条件付き確率の問題をMATLABで解決するにはどうすればよいですか?
P(c j | x i)がすでにわかっている場合、i = 1,2、... n; j = 1,2、... k;
計算/推定方法: P(c j | x l、x m、x n)、ここでj = 1,2、... k; l、m、nはhttp://latex.mathoverflow.net/jsMath/fonts/cmsy10/alpha/120/char32.png {1,2、... n}に属していますか?
algorithm - 単純なベイジアン分類 (スパム フィルタリング) - どの計算が正しいですか?
スパム フィルタリング用にナイーブ ベイジアン分類器を実装しています。ある計算に疑問があります。何をすべきか明確にしてください。これが私の質問です。
この方法では、計算する必要があります
P(S|W) -> ワード W が発生した場合、メッセージがスパムである確率。
P(W|S) -> 単語 W がスパム メッセージに含まれる確率。
P(W|H) -> ハム メッセージで単語 W が発生する確率。
したがって、P(W|S) を計算するには、次のうちどれが正しいですか。
(迷惑メールにWが出現した回数)/(全メッセージにWが出現した回数の合計)
(スパムに単語 W が含まれる回数)/(スパム メッセージに含まれる単語の総数)
では、P(W|S) を計算するには、(1) または (2) を実行する必要がありますか? ((2)だと思ったのですが、よくわかりません。)
ちなみに、情報についてはhttp://en.wikipedia.org/wiki/Bayesian_spam_filteringを参照しています。
今週末までに実装を完了しなければなりません:(
「W」という単語を繰り返し使用すると、メッセージのスパム スコアが高くなるのではないですか? あなたのアプローチではそうではありませんよね?
100 個のトレーニング メッセージがあり、そのうち 50 個がスパムで、50 個がハムであるとします。各メッセージの word_count = 100 と言います。
また、スパム メッセージでは単語 W が各メッセージで 5 回出現し、ハム メッセージでは単語 W が 1 回出現するとします。
したがって、すべてのスパム メッセージで W が発生する合計回数 = 5*50 = 250 回。
また、すべての Ham メッセージで W が発生した合計回数 = 1*50 = 50 回。
すべてのトレーニング メッセージでの W の合計発生数 = (250+50) = 300 回。
では、このシナリオでは、どのように P(W|S) と P(W|H) を計算しますか?
当然期待すべきP(W|S) > P(W|H)
ですよね?
matlab - MATLABのPRToolsを使用して未知の誤分類の事後分布を計算します
私はPRToolsMATLABライブラリーを使用して、いくつかの分類器をトレーニングし、テストデータを生成し、分類器をテストしています。
私は次の詳細を持っています:
- N:テスト例の総数
- k:各分類器とクラスの誤分類の数
私はやってみたいです:
誤分類の未知の確率(qで示される)のベイズ事後分布を計算してプロットします。つまり、確率密度関数がq自体に対して機能します(したがって、P(q)はqに対して0から1までプロットされます)。
私はそれを持っています(matlabコードではなく数式です!):
事前確率は1に設定されているため、尤度と正規化定数を計算するだけで済みます。
尤度は次のように表すことができることを私は知っています(ここで、B(N、k)は二項係数です):
...したがって、正規化定数は、0から1までの上記の後部の積分にすぎません。
(二項係数(B(N、k))は、尤度定数と正規化定数の両方に表示されるため、省略できます)
さて、正規化定数の積分は一連のように計算できるはずだと聞きました...次のようなものです。
あれは正しいですか?(このシリーズの講義ノートはいくつかありますが、正規化定数積分用なのか、誤分類(q)の全体的な分布用なのかわかりません)
また、これを実際に計算する方法としてヒントを歓迎しますか?(階乗は簡単に切り捨てエラーを作成しますよね?)...そして、最終的なプロット(0から1までのqの事後分布)を実際に計算する方法。
probability - スパム確率の計算
私はpython/djangoでウェブサイトを構築していて、ユーザーの送信が有効かどうか、またはスパムかどうかを予測したいと思います。
このウェブサイトのように、ユーザーは提出物の合格率を持っています。
ユーザーは他のユーザーの送信をモデレートできます。これらのモデレートは、後で管理者によってメタモデレートされます。
これを考えると:
- 提出受理率60%の登録ユーザーAが何かを提出します。
- ユーザーBは、Aの投稿を有効な送信としてモデレートします。ただし、ユーザーBは70%の確率で間違っています。
- ユーザーCはAの投稿をスパムとしてモデレートします。ユーザーCは通常正しいです。ユーザーCが何かがスパムである/スパムがないと言った場合、これは80%の確率で正しいでしょう。
Aの投稿がスパムになる可能性をどのように予測できますか?
編集:私はこのシナリオをシミュレートするPythonスクリプトを作成しました:
スクリプトを実行すると、次の出力が得られます。
- ユーザーAは100000件の提出を行いました。それらの60194は「ハム」です。
- ユーザーBは29864件の送信を正しくモデレートしました。
- ユーザーCは79990の送信を正しくモデレートしました。
- 「spam」は、ユーザーBによって「spam」として識別され、ユーザーCによって「ham」として2346回識別されました。
- 「ham」は、ユーザーBによって「spam」として識別され、ユーザーCによって「ham」として33634回識別されました。
- ユーザーBがスパムだと言い、ユーザーCがハムだと言った場合、6.52%の確率でスパムになり、93.48%の確率でハムになります。
ここでの確率は妥当ですか?これはシナリオをシミュレートする正しい方法でしょうか?
clojure - ClojureまたはSchemeのベイジアン分類ライブラリ?
スキーム/ラケットまたは clojure ベイジアン分類ライブラリへのポインタはありますか? これから行うおもちゃ/学習プロジェクト用に 1 つ必要です。
algorithm - ベイジアン評価式の要約
このURLに基づいて、評価モデルを非常によく説明しているベイジアン評価を見つけました。SQLステートメントを実装する人にとってはるかに簡単になるように式を要約したいと思いました。このような式を要約した場合、これは正しいでしょうか?
ガト
java - classifier4J と複合語
BayesianClassifierクラスを使用してスパムを分類しています。問題は、複合語が認識されないことです。
たとえば、led zeppelinを一致として追加した場合、それを含む文は一致として認識されますが、一致として認識されません。
一致を追加するために、SimpleWordsDataSource の addMatch() を使用しています
一致を求めるために、BayesianClassifierのisMatch()を使用しています
これを修正する方法についてのアイデアはありますか?
わかりました、洞察に感謝します。さらにソースコードを添付します。
今、私は BayesianClassifier の teacherMatch メソッドを使用していますが、異なる結果が得られました。led zeppelinを含む文は一致として分類されますが、これは問題ありません。しかし、 led itを含む文も一致として分類されますが、これは間違っています。
関連するコードは次のとおりです。
bayesian - デシジョンツリーとベイジアンネットワークの違いは何ですか?
私が正しく理解していれば、どちらもベイズの定理を使用して非巡回グラフを生成し、すべてのノードに適用されている関数に基づいてパーセンテージを計算します。
違いはなんですか?