1

Naive Bayes がどのように機能しているかを理解しようとしています。

次のようなデータセットがあります。

> data.flu
    chills runnyNose headache fever flu
1      1         0        M     1   0
2      1         1        N     0   1
3      1         0        S     1   1
4      0         1        M     1   1
5      0         0        N     0   0
6      0         1        S     1   1
7      0         1        S     0   0
8      1         1        M     1   1

これらの列の型が次のようになっている場合:

str(data.flu)
'data.frame':  8 obs. of  5 variables:
  $ chills   : num  1 1 1 0 0 0 0 1
$ runnyNose: num  0 1 0 1 0 1 1 1
$ headache : Factor w/ 3 levels "M","N","S": 1 2 3 1 2 3 3 1
$ fever    : num  1 0 1 1 0 1 0 1
$ flu      : Factor w/ 2 levels "0","1": 1 2 2 2 1 2 1 2

モデルは次のようになります。

Naive Bayes Classifier for Discrete Predictors
Call:
  naiveBayes.default(x = X, y = Y, laplace = laplace)
A-priori probabilities:
  Y
0     1 
0.375 0.625 

Conditional probabilities:
  chills
Y        [,1]      [,2]
0 0.3333333 0.5773503
1 0.6000000 0.5477226
...

P(chills=1|flu=1) + P(chills=0|flu=1) != 1の見解では、fluが陽性の場合、人は悪寒を持っているかどうかのどちらかである..確率に関する私の初歩的な知識に対して、何かが完全に間違っていました。

すべてのタイプを因数に変更することで自分の考えを検証し、すべての数値が私の便利な計算と一致しました。

A-priori probabilities:
  Y
0     1 
0.375 0.625 

Conditional probabilities:
  chills
Y           0         1
0 0.6666667 0.3333333
1 0.4000000 0.6000000
...

列に数値列が含まれている場合、最初のシナリオの確率がどのように計算されるかを誰かに説明してもらえますか...本や紙を教えてくれると非常に役立ちます。

どうもありがとう

4

1 に答える 1

0

質問に答えるには: すべてのカテゴリ列は因子である必要があり、そうでない場合は数値として扱われます。

e1071 パッケージを使用していると仮定して、ドキュメントを参照してください

予測子変数ごとに 1 つずつあるテーブルのリスト。各カテゴリ変数について、各属性レベルについて、ターゲット クラスが与えられた条件付き確率を示すテーブル。各数値変数について、各ターゲット クラスについて、(サブ) 変数の平均と標準偏差を示すテーブル。

つまり、最初の例では、P(chills=1|flu=0) と P(chills=0|flu=0) の条件付き確率ではなく、chills|flu の平均と標準偏差が表示されます。 =0。次に悪寒は、インフルエンザを条件とする正規分布を使用して、連続変数として扱われます。

于 2018-11-07T13:03:24.437 に答える