МАШИННОЕ ОБУЧЕНИЕ И АНАЛИЗ ДАННЫХ (Machine Learning and Data Mining) Н. Ю. Золотых http://www.ui .unn.ru/~zny/ml Лекция 7 Наивный байесовский классификатор 7.1. Определения Пусть все компоненты случайной величины X = (X1, . . . , Xd) дискретны. Pr {Y = y | X = x} = Pr {Y = y} · Pr {X = x | Y = y} K ∑ Pr {Y = k} · Pr {X = x | Y = k} k=1 Основное предположение наивного байесовского классификатора: переменные X1, . . . , Xd условно независимы при любом заданном Y = y: Pr {X1 = x1, . . . , Xd = xd | Y = y} = Pr {X1 = x1 | Y = y} · · · · · Pr {Xd = xd | Y = y} , или, короче, d Pr {X = x | Y = y} = ∏ Pr {Xj = xj |Y = y} . j=1 По принципу максимума апостериорной вероятности d ! f (x) = argmax Pr {Y = y | X = x} = argmax Pr {Y = y} · ∏ Pr {Xj = xj | Y = y} . y y j=1 Вероятности заменяем частотой: o 1 n (i) Pr {Y = y} ≈ | i : y = y | N o n (i) | i : xj = xj | Pr {Xj = xj | Y = y} ≈ | i : y (i) = y | Задача: предсказать исход матча команды A с командой B по имеющимся данным о предыдущих матчах. № Поле Ключевые игроки Ключевые игроки противника X1 1 свое X2 присутствуют X3 Погода Исход X4 Y присутствуют дождь поражение 2 чужое отсутствуют отсутствуют нет дождя победа 3 свое присутствуют отсутствуют нет дождя победа 4 свое присутствуют отсутствуют дождь ничья 5 чужое отсутствуют присутствуют дождь поражение 6 чужое присутствуют присутствуют нет дождя поражение 7 чужое отсутствуют присутствуют нет дождя поражение 8 свое отсутствуют отсутствуют нет дождя ничья 9 свое присутствуют отсутствуют дождь 10 чужое присутствуют отсутствуют нет дождя победа победа Априорные вероятности: Y победа ничья поражение 0.4 0.2 0.4 Условные вероятности: Поле Y Ключевые игроки Y свое чужое отсутствуют присутствуют победа 0.50 0.50 победа 0.25 0.75 ничья 1.00 0.00 ничья 0.50 0.50 поражение 0.25 0.75 поражение 0.50 0.50 Ключевые игроки противника Погода Y отсутствуют присутствуют Y победа 1 0 победа 0.25 0.75 ничья 1 0 ничья 0.50 0.50 поражение 0 1 поражение 0.50 0.50 дождь нет дождя Нужно предсказать Y , если X1 = ñâîå, X2 = ïðèñóòñòâóþò, X3 = îòñóòñòâóþò, X4 = äîæäü. Pr {ïîáåäà | ñâîå, ïðèñóòñòâóþò, îòñóòñòâóþò, äîæäü} = Pr {ïîáåäà} · Pr {ñâîå | ïîáåäà} · Pr {ïðèñóòñòâóþò | ïîáåäà} · Pr {îòñóòñòâóþò | ïîáåäà} · Pr {äîæäü | ïîáåäà} = = Pr {ñâîå, ïðèñóòñòâóþò, îòñóòñòâóþò, äîæäü} = 0.4 · 0.5 · 0.75 · 1 · 0.25 0.0375 = = 0.4286 0.0375 + 0.05 + 0 0.0875 Pr {íè÷üÿ | ñâîå, ïðèñóòñòâóþò, îòñóòñòâóþò, äîæäü} = Pr {íè÷üÿ} · Pr {ñâîå | íè÷üÿ} · Pr {ïðèñóòñòâóþò | íè÷üÿ} · Pr {îòñóòñòâóþò | íè÷üÿ} · Pr {äîæäü | íè÷üÿ} = = Pr {ñâîå, ïðèñóòñòâóþò, îòñóòñòâóþò, äîæäü} 0.05 0.2 · 1 · 0.5 · 1 · 0.5 = = 0.5714 = 0.0375 + 0.05 + 0 0.0875 Pr {Y = ïîðàæåíèå | ñâîå, ïðèñóòñòâóþò, îòñóòñòâóþò, äîæäü} = Pr {ïîðàæ.} · Pr {ñâîå | ïîðàæ.} · Pr {ïðèñóòñòâóþò | ïîðàæ.} · Pr {îòñóòñòâóþò | ïîðàæ.} · Pr {äîæäü | ïîðàæ.} = = Pr {ñâîå, ïðèñóòñòâóþò, îòñóòñòâóþò, äîæäü} 0.4 · 0.25 · 0.5 · 0 · 0.5 = =0 0.0375 + 0.05 + 0 На обучающей выборке ошибка 0.1 (неправильно 9-й → ничья) 7.1.1. Сглаживание Лапласа Пусть нужно предсказать Y , если X1 = íåéòðàëüíîå, X2 = ïðèñóòñòâóþò, X3 = îòñóòñòâóþò, X4 = íåò äîæäÿ. Pr {X1 = íåéòðàëüíîå | Y = y} ≈ n | i: (i) x1 o = íåéòðàëüíîå | =0 (i) | i: y =y | Pr {X1 = íåéòðàëüíîå, X2 = ïðèñóòñòâóþò, X3 = îòñóòñòâóþò, X4 = íåò äîæäÿ} = = Pr {íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ | ïîáåäà} · Pr {ïîáåäà} + + Pr {íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ | íè÷üÿ} · Pr {íè÷üÿ} + + Pr {íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ | ïîðàæåíèå} · Pr {ïîðàæåíèå} = 0 0 Pr {ïîáåäà | íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = 0 0 Pr {íè÷üÿ | íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = 0 Pr {ïîðàæåíèå | íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = 0 0 Сглаживание Лапласа: o n (i) | i : xj = xj | + 1 , Pr {Xj = xj | Y = y} ≈ (i) | i : y = y | + sj где sj — количество значений, которые принимает признак xj . (т.е. притворяемся, что видели каждый признак 1 раз больше, чем на самом деле) Легко видеть, что тогда o n (i) | i : xj = xj | + 1 ∑ | i : y(i) = y | + sj = 1, xj Сглаживание Лидстоуна: n (i) xj o = xj | + α | i: Pr {Xj = xj | Y = y} ≈ , (i) | i : y = y | + αsj где sj — количество значений, которые принимает признак xj , α ≥ 0. Априорные вероятности Y (не изменятся): победа ничья поражение 0.4 0.2 0.4 Поле Y Ключевые игроки Y свое чужое нейтральное отсутствуют присутствуют победа 3/7 3/7 1/7 победа 0.25 0.75 ничья 3/5 1/5 1/5 ничья 0.50 0.50 поражение 2/7 4/5 1/7 поражение 0.50 0.50 Ключевые игроки противника Погода Y отсутствуют присутствуют Y победа 5/6 1/6 победа 2/3 1/3 ничья 3/4 1/4 ничья 1/2 1/2 поражение 1/6 5/6 поражение 1/2 1/2 дождь нет дождя Предсказать Y , если X1 = íåéòðàëüíîå, X2 = ïðèñóòñòâóþò, X3 = îòñóòñòâóþò, X4 = íåò äîæäÿ. Pr {ïîáåäà | íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = = Pr {ïîáåäà} · Pr {íåéòðàëüíîå | ïîáåäà} · Pr {ïðèñóòñòâóþò | ïîáåäà} · Pr {îòñóòñòâóþò | ïîáåäà} · Pr {íåò äîæäÿ | ïîáåäà} Pr {íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} 2/5 · 1/7 · 2/3 · 5/6 · 2/3 0.0212 = = 0.6817 0.0212 + 0.0075 + 0.0024 0.0311 Pr {íè÷üÿ | íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = = Pr {íè÷üÿ} · Pr {íåéòðàëüíîå | íè÷üÿ} · Pr {ïðèñóòñòâóþò | íè÷üÿ} · Pr {îòñóòñòâóþò | íè÷üÿ} · Pr {íåò äîæäÿ | íè÷üÿ} = Pr {íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = 0.0075 1/5 · 1/5 · 1/2 · 3/4 · 1/2 = = 0.2416 0.0212 + 0.0075 + 0.0024 0.0311 Pr {ïîðàæåíèå | íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = Pr {ïîðàæ.} · Pr {íåéòðàëüíîå | ïîðàæ.} · Pr {ïðèñóòñòâóþò | ïîðàæ.} · Pr {îòñóòñòâóþò | ïîðàæ.} · Pr {íåò äîæäÿ | ïîðàæ.} = Pr {íåéòðàëüíîå, ïðèñóòñòâóþò, îòñóòñòâóþò, íåò äîæäÿ} = 2/5 · 1/7 · 1/2 · 1/6 · 1/2 0.0024 = = 0.0767 0.0212 + 0.0075 + 0.0024 0.0311 7.1.2. Наивный байесовский классификатор для задачи классификации текстов (Например, детектирование спама) 1. Многомерный Бернулли (Multivariate Bernoulli Model) Используем Bag of Words. Словарь длины d. Модель: j-е слово из словаря вставляется в сообщение с вероятностью соответственно Pr (Xj = 1| Y = 0) (ham) или Pr (Xj = 1| Y = 1) (spam) Именно этот вариант рассматривался выше. 2. Мультиномиальная модель (Multinomial Model) Сообщение рассматривается как последовательность (x1, x2, . . . , xn), где xj — № слова в словаре (j = 1, 2, . . . , n), n — длина сообщения (может варьироваться в зависимости от сообщения). Модель: j-е слово в сообщении генерируется согласно мультиномиальному распределению Pr (Xj = x | Y = 0) или Pr (Xj = x | Y = 1), где x — № слова в словаре. N N i=1 i=1 L = ∏ Pr (x(i), y (i)) = ∏ откуда получаем оценки для вероятностей. Также применяем сглаживание Лапласа ni ! ∏ Pr (xj | y) Pr y(i) → max j=1 (i) Распознавание спама «Bag of words» — модель представления текста как набора (мультимножества, bag — сумки) слов, входящих в него. При этом, как правило, не делают различий между разными формами одного и того же слова. Для этого слова приводят к начальной (канонической) форме (лемме) или находят основу слова (stem). Процесс нахождения основы слова называется стеммингом (stemming). Данные из SMS Spam Corpus http://www.esi.uem.es/jmgomez/smsspam orpus Almeida, T.A., Gomez Hidalgo, J.M., Yamakami, A. Contributions to the study of SMS Spam Filtering: New Collection and Results. Proceedings of the 2011 ACM Symposium on Document Engineering (ACM DOCENG’11), Mountain View, CA, USA, 2011. like pleas will callsendneed still make good phone day say work back repli dont home ask today one lor know later meet sorri come free stop take cant well now getwaitweek ill new think txt just see tell time textmobil got wantlove can hope mobil min award urgent rington custom tone text ppmtri cost phone nokia stop will won messag callclaim pleas new chat txt chanc line contact collect well miss later feel take illmeet wat today get work dear come box prize week per know say night hope will hey repli get wait got send show latest receiv everi servic todaywin draw day offer think just cash voucher now free guarante can sorrigood thing time still lor love one back now day justmuch see like home ask dont call happi send make cant way tell need want 0.022 0.020 0.018 Error 0.024 0.026 Train Test 3.0 2.5 2.0 1.5 Laplace 1.0 0.5 0.0 TN FN FP TP TN – true negative FP – false positive FN – false negative TP – true positive FP – ложные тревоги (ошибки 1-го рода или α-ошибки) FN – промахи (ошибки 2-го рода или β-ошибки) FP = FP – вероятность ошибки первого рода (уровень значимости) α = FPR = TN+FP N FN FN = FN+TP P TN TN = TN+FP N = 1 β = FNR = – вероятность ошибки второго рода − FPR – специфичность (вероятность предсказать отсутствие болезни, при TNR = условии, что ее нет) TP TPR = FN+TP = TP P = 1 − FNR – чувствительность, или полнота (recall) (вероятность предсказать болезнь, при условии, что она есть) TP – precision (positive predictive value) PPV = FP+TP TP+TN P+N – accuracy FP+FN P+N = 1 − accuracy – error (мы раньше (среднее гармоническое) F1 = 2·PPV·TPR PPV+TPR мерили только ее) ROC-кривая (receiver operating characteristic) — график зависимости TPR от FPR при изменении порога в дискриминантной функции бинарного классификатора f (x) = I Pr (y = 1| x) > α = I(g(x) ≥ α) g(x) — дискриминантная функция (в Scikit-learn — decision function) Пусть x(1), x(2), . . . , x(N ) упорядочены: g(x(1)) ≤ g(x(2)) ≤ . . . ≤ g(x(N )) hFPR ← 1/N, hTPR ← 1/P, FPR ← 1, TPR ← 1 Рисуем точку (1, 1) for i = 1, 2, . . . , N if y (i) = 0 FPR ← FPR − hFPR else TPR ← TPR − hTPR Рисуем точку (FPR, TPR) AUC (area under curve) — площадь под ROC-кривой — доля правильно упорядоченных пар 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 120 50 0.0 60 0.2 70 0.4 80 TPR heart 90 0.6 100 0.8 110 Low level T4 High level T4 1.0 1.5 lg SDNN 2.0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 1.0 ROC-кривая. SMS Laplace = 1 test.FPR[threshold.seq == 0.99] = 0.04290429 1 - test.TPR[threshold.seq == 0.99] = 0.01648352 test.Err[threshold.seq == 0.99] = 0.03945481 AUC = 0.994646 1 0.0 0.2 0.4 TPR 0.6 0.8 0.99 0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 3615:565call call yes 200:244claim claim 200:244 3615:565 no 3415:321txttxt 3415:321 spam spam 200:183ill ill 200:183 3409:214free free 3409:214 0:61 6:107 ham 157:183min min 157:183 30:44now now 30:44 3379:170repli repli 3379:170 43:0 spam spam 157:147servic servic 157:147 30:29text text 30:29 28:31stop stop 28:31 3351:139text text 3351:139 0:36 0:15 spam spam spam ham 157:118urgent urgent 157:118 27:15week week 27:15 54:30mobil mobil 54:30 3297:109pmsg pmsg 3297:109 0:29 3:14 0:13 28:18 spam spam spam spam 157:93free free 157:93 27:10servic servic 27:10 54:24unsubscrib unsubscrib 54:24 3297:98claim claim 3297:98 0:25 0:5 0:6 0:11 spam ham spam spam 8:28sirsir 8:28 149:65award award 149:65 54:19win win 54:19 3297:90tone tone 3297:90 0:4 27:6 0:5 0:8 ham spam spam spam ham spam 149:56privat privat 149:56 3297:84mobil mobil 3297:84 3:0 5:28 0:9 0:4 54:15 0:6 spam spam 149:48pmin pmin 149:48 3292:77secret secret 3292:77 0:8 5:7 spam 149:41new new 149:41 3:6contact contact 3:6 3289:71unsubscrib unsubscrib 3289:71 0:7 spam spam ham spam 149:34collect collect 149:34 3289:68voucher voucher 3289:68 0:7 0:6 3:0 0:3 spam spam 149:27now now 149:27 3289:65collect collect 3289:65 0:7 0:3 ham ham 135:15repli repli 135:15 3281:61real real 3281:61 14:12 8:4 spam ham 134:11contact contact 134:11 3263:56video video 3263:56 1:4 18:5 spam spam 134:9match match 134:9 3263:54ltdltd 3263:54 0:2 0:2 spam spam 134:7credit credit 134:7 3263:52sms sms 3263:52 0:2 0:2 spam ham ham 3257:49import import 3257:49 0:2 134:5 6:3 ham 3250:46chat chat 3250:46 7:3 ham 3241:43picpic 3241:43 9:3 ham 3229:40play play 3229:40 12:3 ham 3215:37select select 3215:37 14:3 ham 3212:35appli appli 3212:35 3:2 ham ham 3:2 3209:33 3615:565call call 3615:565 yes no 200:244claim claim 200:244 3415:321txt txt 3415:321 spam 200:183illill 200:183 0:61 spam 3409:214free free 3409:214 6:107 ham 157:183min min 157:183 43:0 spam 157:147servic servic 157:147 0:36 spam 157:118urgent urgent 157:118 0:29 spam ham 0:25 157:93 spam 3379:170repli repli 3379:170 30:44 spam 3351:139text text 3351:139 28:31 ham 3297:109pmsg pmsg 3297:109 54:30 spam 3297:98claim claim 3297:98 0:11 spam 3297:90tone tone 3297:90 0:8 spam 3297:84mobil mobil 3297:84 0:6 spam 3292:77secret secret 3292:77 5:7 spam ham 3:6 3289:71 1.0 Дерево решений ROC-кривая. tree.test.FPR[tree.threshold.seq == 0.9] = 0.07920792 1 tree.test.TPR[tree.threshold.seq == 0.9] = 0.1428571 tree.test.Err[tree.threshold.seq == 0.9] = 0.08751793 AUC = 0.916712 1 0.985 0.0 0.2 0.4 TPR 0.6 0.8 0.9 Naive Bayes Tree 0 0.0 0.2 0.4 0.6 FPR 0.8 1.0 GBT 0.08 0.06 0.04 0.02 Error 0.10 0.12 Train Test 0 5000 10000 Trees 15000 20000 0.7 0.4 0.3 0.2 Deviance 0.5 0.6 Train 10−fold CV 0 5000 10000 Trees 15000 20000 0.0 0.2 0.4 TPR 0.6 0.8 1.0 Hos13 ROC-кривая. AUC = 0.8415 0.0 0.2 0.4 0.6 FPR 0.8 1.0 7.1.3. Наивный Байес для количественных признаков Два подхода: • дискретизация; • оценка параметров распределения. Рассмотрим второй подход. Pr {Y = y | X = x} = p(x | y) · Pr y p(x) · Pr y = p(x) ∑y′ p(x |y ′) · Pr y ′ Основное предположение наивного байесова классификатора: p(x | y) = p(x1 | y) p(x2 | y) . . . p(xd | y) Предположим, что p(xj | y) нормальное: 1 p(xj | y) = √ e 2πσj Оцениваем µj , σj по выборке. (x−µj )2 − 2σj2 Методы решения задачи классификации: • Дискриминантные (разделительные) (discriminant): – напрямую строим f (x); – моделируем (оцениваем) апостериорную вероятность Pr (y | x) и используем метод максимума апостериорной вероятности; • Генеративные (generative) — моделируем (оцениваем) правдоподобие p(x | y) и априорную вероятность Pr (y) и используем метод максимума апостериорной вероятности. Внимание: так называемые методы дискриминантного анализа являются генеративными, а не дискриминантными! К какому методу относится метод k ближайших соседей?