0

私は R にかなり慣れていないので、このサンプル データセットを分析して Naive Bayes 分類を開始しようとしていました。

Day     Outlook  Temperature    Humidity    Wind    Play
1       Sunny    Hot            High        Weak    No  
2       Sunny    Hot            High        Strong  No  
3       Overcast Hot            High        Weak    Yes  
4       Rain     Mild           High        Weak    Yes  
5       Rain     Cool           Normal      Weak    Yes  
6       Rain     Cool           Normal      Strong  No  
7       Overcast Cool           Normal      Strong  Yes  
8       Sunny    Mild           High        Weak    No  
9       Sunny    Cool           Normal      Weak    Yes  
10      Rain     Mild           Normal      Weak    Yes  
11      Sunny    Mild           Normal      Strong  Yes  
12      Overcast Mild           High        Strong  Yes  
13      Overcast Hot            Normal      Weak    Yes  
14      Rain     Mild           High        Strong  No  

関数を使用して、table()Outlook、Temperature、Humidity、Wind、Play などのカテゴリ変数の各値の出現回数を取得できました。次の段階に進むには、特定のターゲット クラスの値である Yes と No について、カテゴリ変数の各値の対応する出現回数を計算する必要があります。たとえば、X(outlook=Sunny,play= の出現回数を知るにはいいえ) 上記のデータセットの 2 です。目的の結果を得るには、どのコマンドを使用すればよいですか?

注: Naive Bayes で確率が計算されることはわかっていますが、この場合は頻度を取得することに関心があります。

4

2 に答える 2

2

あなたはこれを探していますか:

by(DF[-1], DF$Play, sapply, table)

? (あなたのデータフレームであると仮定DFします。)

結果:

DF$Play: No
$Outlook

Overcast     Rain    Sunny 
       0        2        3 

$Temperature

Cool  Hot Mild 
   1    2    2 

$Humidity

  High Normal 
     4      1 

$Wind

Strong   Weak 
     3      2 

$Play

 No Yes 
  5   0 

----------------------------------------------------------------------------------------------------------------------------- 
DF$Play: Yes
$Outlook

Overcast     Rain    Sunny 
       4        3        2 

$Temperature

Cool  Hot Mild 
   3    2    4 

$Humidity

  High Normal 
     3      6 

$Wind

Strong   Weak 
     3      6 

$Play

 No Yes 
  0   9 
于 2013-09-24T16:53:25.543 に答える
2

に複数の引数を渡すtable()ことで、不測の事態を得ることができます。たとえば、次のデータ フレームがあるとします。

    outlook play
1      rain   no
2  overcast   no
3       sun   no
4      rain  yes
5      rain   no
6      rain  yes
7  overcast   no
8      rain  yes
9  overcast  yes
10     rain  yes

それで:

> table(df$outlook)

overcast     rain      sun 
       3        6        1 
> table(df$outlook,df$play)

           no yes
  overcast  2   1
  rain      2   4
  sun       1   0
于 2013-09-24T17:01:11.783 に答える