2013-09-24 3 views
0

Я довольно новичок в R и пытался проанализировать этот набор данных примера, чтобы начать работу с классификацией Наивного Байеса.Как получить количество вхождений в R для классификации Наивных Байес

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, температура, влажность, ветер и Play. Теперь, чтобы перейти к следующему этапу, мне нужно рассчитать соответствующее количество вхождений каждого значения категориальных переменных для конкретного целевого значения класса Да и № Например, чтобы узнать количество вхождений X (outlook = Sunny, play = Нет), который равен 2 для вышеуказанного набора данных, какую команду следует использовать для получения желаемого результата?

Примечание: Я знаю, что для Наивного Байеса вычисляется вероятность, но я больше заинтересован в получении частоты в этом случае.

ответ

2

Вы ищете это:

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

? (Предполагается, что DF ваш dataframe.)

Результат:

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 
+0

Эй человек работает отлично спасибо за тонну. –

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 
+0

Интересное использование 'table'. Попробуйте использовать это: 'sapply (df [-1], table, df $ Play)', чтобы получить все непредвиденные обстоятельства в одном вызове. –

+0

Умный и точный. Работает хорошо. Спасибо за помощь. –

Смежные вопросы