Предисловие

Здравствуйте! Спасибо за интерес к моему проекту через Medium. В этом проекте моя цель — поэкспериментировать с использованием повествовательного повествования, чтобы объяснить механизмы, лежащие в основе теоремы Байеса и наивного байесовского алгоритма. Хотя может быть сложно понять математические уравнения, лежащие в основе алгоритмов, я надеюсь, что вы, читатель, поймете их полностью. Читая от начала до конца, я также стремлюсь сделать процесс обучения приятным и эффективным с помощью истории Байеса и его коллег. Пожалуйста, наслаждайтесь просмотром моих проектов, и я буду рад вашим отзывам о моем коде, истории или объяснениях. Я обязательно использую обратную связь для руководства будущими проектами или статьями, которые я выпускаю. Чтобы увидеть исходный блокнот Colab, из которого был создан этот пост, нажмите здесь. Увидимся на другой стороне!

вступление

Томас Байес все больше беспокоился за своих соседей по их сонной деревушке Виктория, расположенной на крошечном острове Мальта. В последнее время он слышал все больше историй от жителей о письмах, которые убедили их отдать значительные суммы денег отправителю-мошеннику. Содержание многих из этих писем включало угрозы со стороны Королевской гвардии неуплаты налогов или отчужденных членов семьи, требующих быстрых денег для освобождения под залог в тюрьме. Поскольку в 1736 году это было новое явление, горожане называли эту форму обмана спамом. Они полагали, что это исходило от группы местных воров, которые собирали конфиденциальную информацию о жителях деревни.

Этот вопрос также касался руководства города, которое приняло предложение предоставить власть любому, у кого есть решение для последовательной идентификации спам-писем. Будучи умным и заинтересованным человеком, Томас был вынужден принять участие в этой инициативе. Однако его наставник, профессор Фреквентия, отговорил его от пустой траты времени. Профессор Frequentia уже изучил частоту спама и пришел к выводу, что он должен появляться только в 13% всех отправленных писем.

Томас не был убежден, что статистика профессора Фреквентии была высечена на камне. Ему было трудно поверить, что в данном наборе писем всегда должно быть не менее 13% мошеннических писем. Потратив несколько дней на размышления над проблемой, Томас выдвинул гипотезу. Томас подумал про себя: При достаточном обучении любой наивный человек сможет обнаружить наличие спама, изучив большую выборку писем и изучив отличительные характеристики спама. Чем больше писем можно обучить, тем лучше будет обнаруживать спам! Позднее Томас назвал этот метод “ (1) сбор данных, (2) создание и обучение, (3) тестирование и оценка , & (4) Predict” для правильной классификации письма на спам или нет, и решил проверить его.

Шаг 1 — Сбор данных

Зная, что он принял решение, профессор Фреквентиа порекомендовал Томасу обратиться за консультацией к своим коллегам из UCI по поводу имеющихся у них данных о спаме. «Как вы знаете, UCI — главный государственный университет Мальты. В их исследовательской библиотеке есть коллекция писем, которые были предварительно помечены как спам или нет, и вы можете изучить их, — объяснил профессор Томасу. Томас последовал совету наставника и посетил университетскую библиотеку. Получив доступ к набору данных, Томас понял, что его наставник, должно быть, получил статистику из этого источника и предположил, что они репрезентативны для всего населения. Предварительные выводы Томаса подтвердили первоначальное утверждение профессора Фреквентиа о том, что 13% писем в этом наборе данных были спамом, а остальные 87% — нет.

Однако Томас просмотрел эти первоначальные статистические данные и очистил/подготовил данные, чтобы протестировать другой подход для правильного прогнозирования появления спама. Поскольку коллекция UCI содержала 5 572 образца предварительно помеченных букв, Томас был уверен, что она достаточно велика, чтобы вывести его выводы из реальной проблемы. Затем Томас провел следующие несколько месяцев, разрабатывая модель и сотрудничая со своими ближайшими соратниками именно по этой проблеме.

Как только Томас почувствовал, что у него есть решение проблемы, он собрал своих ближайших современников, чтобы обсудить принципы своего нового положения (или теоремы). В следующей лекции Томас предложил следующие аксиомы (или принципы), которые утверждают, что наша неотъемлемая способность учиться проистекает из обновления наших ранее существовавших убеждений на основе значимости новой информации, с которой мы сталкиваемся.

Шаг 2 — Создание модели и обучение

Принципы теоремы Байеса

Принцип первый — Степени веры

Первый принцип Томаса заключается в том, что благодаря опыту у каждого человека появляются свои ранее существовавшие убеждения в отношении любого конкретного взгляда, идеи или события. Томас назвал это предыдущими убеждениями людей. Так, например, сельские жители, которые часто сталкивались со спамом, более склонны считать спам более широкой проблемой, чем те, кто не сталкивался со спамом так часто.

Чтобы объяснить свои рассуждения, Томас с нежностью подумал о своей жене Андреа. Андреа, как и он, был большим поклонником клуба «Ванкувер Гриззлис» и не боялся принимать противоположные ставки против своего клуба. «Предположим, что моя жена Андреа — умная и рациональная азартная женщина, у которой всего 100 евро. Если это так, мы можем установить, что сумма, на которую Андреа готова поставить, в количественном отношении представляет ее степень веры в исход, на который она делает ставку». Предыдущее убеждение Андреа определяется переменной P(Hypothesis) в приведенной ниже теореме Байеса.

Принцип второй — байесовская кондиционализация

Теперь, если бы все, что было представлено, было идеей о том, что объективная реальность является предметом субъективной интерпретации, коллеги, несомненно, прогнали бы Томаса со сцены. Однако следующий принцип, предложенный Томасом, добавил в его предложение слой изощренности и интриги. Второй принцип Томаса утверждал, что рациональные люди со временем начнут обновлять свои прежние убеждения при наличии достаточного количества новых данных. Томас назвал этот процесс обусловливанием и использовал переменную P(Evidence) в своей теореме для представления данных, влияющих на убеждения человека. Затем Томас закрепил этот принцип со своей аудиторией, вернувшись к предыдущему примеру убежденности своей жены в отношении Гриззлис.

«Мои друзья, например, предполагают, что Андреа была готова поставить 80 евро из 100, которые у нее есть, на победу «Гриззлис» над соперником. В этом случае мы можем сделать вывод, что ее априорное убеждение P(H) на тот момент составляет 80 %, верно? А что, если позже Андреа обнаружит 60-процентную вероятность того, что Кобе, лучший игрок клуба, не сыграет в следующем матче из-за травмы. Как это изменит веру Андреа в шансы клуба, учитывая, что их лучший игрок был недоступен для следующей игры?» — спросил Томас. «Исходя из этого сценария, разумно предположить, что новые доказательства, вероятно, изменят степень веры Андреа в шансы клуба на успех».

Взаимодействие между предыдущими убеждениями Андреа и представленными доказательствами в конечном итоге формирует апостериорное убеждение,P(Hypothesis | Evidence), — продолжил Томас. Другими словами, апостериорное убеждение человека является результатом того, что он обновляет свои убеждения на основе информации, с которой он сталкивается. Распространенной фразой для описания этой идеи является то, что «сегодняшний апостериор — это вчерашний априор.

«Основная формула для условной вероятности представляет собой теорему Байеса в ее простейшей форме, если известны все вероятности, связанные с априорной вероятностью и истинностью доказательств. Если это так, то теорема Байеса может быть рассчитана путем деления вероятности того, что априорное убеждение и свидетельство появляются одновременно (т. е. пересечение ∩ в математических терминах P( H ∩ E )) с вероятностью истинности свидетельства P(E)».

Читая лекцию, Томас написал следующее уравнение на большом планшете, предоставленном университетом.

Принцип второй, продолжение…

Читая лекцию, Томас молился о том, чтобы не упустить из виду коллегу из-за сложности его темы. Тем не менее, несмотря на свои опасения, Томас продолжал настаивать на своих конспектах лекций.

«Давайте предположим, что вероятность того, что и априорное убеждение, и свидетельство появятся в одно и то же время, P( H ∩ E ) неизвестна. В этом случае мы можем разбить пересечение этих двух событий и посмотреть, как они взаимодействуют, образуя целое. Первое событие представлено вероятностью появления гипотезы (т. е. их предыдущими убеждениями) P(H). А теперь, друзья мои, потерпите меня, так как второе событие поначалу может быть сложным для понимания. Второе событие представляет собой обратную вероятность появления доказательства, учитывая, что гипотеза имела место».

Как и ожидалось, когда Томас представил идею обратных вероятностей, несколько его коллег ответили почесыванием затылка и пустыми взглядами. По крайней мере, они помолвлены, — подумал про себя Томас, приступая к разрушению этой концепции.

«Значение обратной вероятности P( E | H ) часто равно 1, если мы точно знаем, что появление одного события непосредственно вызывает другой. Так, например, если Андреа получит доказательства (через пресс-релиз) того, что противоборствующий клуб планирует проиграть матч, то она может быть уверена, что эта информация напрямую приведет к победе «Гриззлис». ” В этот момент Томас публично поблагодарил своего коллегу, Ричарда Прайса, который помог ему разработать идею обратных вероятностей. «Однако в случае травмы Кобе обратная вероятность P( E | H )=1 здесь не применяется. Это потому, что производительность Кобе не является единственным фактором, определяющим успех «Гриззлис». Другие факторы, такие как игра его товарища по команде или то, насколько хорошо играет звездный игрок другой команды, могут повлиять на исход игры. Но ради аргумента, поскольку Коби обычно набирает 30% от общего количества очков клуба в каждой игре, мы будем использовать 30% в качестве прокси для его влияния на матч и, соответственно, в качестве обратной вероятности».

«Учитывая новую информацию, Андреа теперь может использовать теорему Байеса для расчета шансов на победу «Гриззлис» при условии, что Коби не сможет сыграть в следующем матче».

«Что касается новой апостериорной вероятности Андреа, ясно, что статус травмы Коби уменьшил ее веру в шансы команды наполовину — на 40%. Но поскольку она преданная фанатка клуба, Андреа по-прежнему готова поставить 40 евро на победу клуба», — заключил Томас о своем втором принципе.

Принцип третий — закон полной вероятности

Томасу его последний принцип казался довольно очевидным. Тем не менее, он чувствовал, что ему необходимо обсудить следующую идею, потому что она позволяет практикующим объяснить альтернативу того, что событие не произойдет. Эта концепция часто используется в экономике, которую специалисты-практики часто называют альтернативными издержками. На самом деле именно благодаря блестящей проницательности Ричарда, который сам был опытным математиком, а также министром и философом-моралистом, Томас даже разработал этот принцип.

«А теперь, друзья мои, давайте обсудим третий и последний принцип теоремы Байеса, закон полной вероятности. Из того, что мы с Ричардом разработали, Закон общей вероятности объясняет, что субъективная степень веры человека в предстоящее событие может быть количественно определена в диапазоне от 0 до 100%. Крайние концы этого диапазона представлены 0, что означает, что событие, без сомнения, НЕ БУДЕТ происходить, и 1, что символизирует полную уверенность в том, что событие произойдет.

Закон полной вероятности особенно важен для нашего знаменателя в теореме Байеса, P(E). Возвращаясь к примеру с доступностью Коби, здесь могут возникнуть только два возможных исхода. Мы можем охарактеризовать это событие как исчерпывающее, потому что мы знаем все мыслимые исходы. Кроме того, мы также можем назвать это взаимоисключающим событием, что означает, что все результаты должны произойти исключительно; они не могут случиться вместе. Либо Коби доступен для игры, и его шансы пропустить матч равны 0. ИЛИ он слишком травмирован и, без сомнения, пропустит следующий матч, 1. Оба события значительно меняют шансы клуба на победу.

Закон общей вероятности можно использовать для расчета вероятности того, что свидетельство истинно. Это уравнение можно использовать для более чем одного события, если это необходимо, например, в случае с несколькими игроками в списке наблюдения за травмами Андреа».

Затем Томас написал на своей большой доске следующие способы расчета Закона полной вероятности:

Теорема Байеса

Объяснив принципы своей теоремы, Томас обобщил различные способы записи своего уравнения на массивной доске.

К этому моменту Томас все больше убеждался в том, что аудитория поймет его новую теорему. Чтобы еще больше укрепить идею о том, что сегодняшняя апостериорная ситуация является развитием вчерашней априорной, Томас снова сослался на пример статуса травмы Коби, влияющего на веру Андреа в команду.

«В день матча Андреа получает известие из пресс-релиза о том, что Кобе фантастически выспался накануне вечером и был на 80% уверен, что сможет сыграть сегодня вечером. В свете этих новых данных вероятность того, что Кобе будет недоступен для игры P(E), теперь значительно снизилась с 60% вчера до 20% сегодня. Для Андреа эта новая информация существенно меняет ее веру в шансы клуба на победу в сегодняшнем матче. Ее вчерашняя апостериорная вероятность шансов клуба на победу сегодня стала априорной вероятностью P(H)». Затем Томас подставил эти числа в формулу, чтобы продемонстрировать, как теорема Байеса используется на практике:

Новости о возросшей вероятности того, что Коби сыграет сегодня вечером, повысили уверенность Андреа в успехе команды. Напомним, P( H | E ) интерпретируется как вера Андреа в шансы клуба на успех, учитывая, что их звездный игрок недоступен. Поскольку шансы Кобе быть недоступным значительно снизились до 20%, Андреа считает, что шансы клуба на успех составляют 60%. Таким образом, Андреа, скорее всего, увеличит свою ставку с 40 евро вчера до 60 евро сегодня, чтобы отразить обновленную степень уверенности.

Знакомство с полиномиальным наивным байесовским алгоритмом

При этом аудитория Томаса взорвалась бурными аплодисментами! Было ясно, что их коллега открыл способ математического моделирования и количественной оценки процесса обучения с помощью обновленных убеждений. Профессор Фрекентиа был особенно доволен новым открытием своего ученика. Тем не менее, он все еще был сосредоточен на решении городской проблемы. Когда аплодисменты стихли, профессор Фреквентия вновь сосредоточил внимание аудитории на главной проблеме: Как новая теорема Томаса применима к проблеме спама?

Профессор Фреквентиал снова обратил внимание на своего ученика и заявил: «Исходя из вашего аргумента, теорема Байеса теоретически может быть использована для расчета вероятности мошеннического письма, если и только если одно слово могло быть способно к такому предсказанию. Следовательно, мы можем думать об этой теореме как о вероятности того, что письмо является спамом при наличии в нем определенного слова P( Spam | w1 ). Но, конечно, ни одно слово не может отличить мошенническое письмо от подлинного. Это было бы невозможно в обычном письме с сотнями, даже тысячами слов».

Томас согласился. Конечно, одна его теорема не могла правильно классифицировать спам-сообщения. Тем не менее, решение было теперь ближе, чем думали его коллеги. Чтобы в полной мере применить свою теорему к проблеме спама, Томас объяснил набор правил, который он разработал для обнаружения нежелательной почты, который он назвал наивным байесовским алгоритмом:

  1. Вычислить константы;
  2. Сгенерируйте параметры слов P( wn | Spam ) для писем со спамом и перемножьте их вместе, чтобы найти P( Spam | words );
  3. Создайте параметры слова P( wn | Nonspam ) для писем, не являющихся спамом, и перемножьте их вместе, чтобы найти P( Nonspam | words );
  4. Сравните P( Спам | слова) с P( Не спам | слова ) и классифицируйте письмо на основе того, что имеет более высокий процент.

Томас запустил свой первоначальный счетчик, реструктурировав вопрос своего наставника: Какова вероятность того, что следующее письмо являетсяСпамомс учетом всехсловв нем?

Сразу же Томас почувствовал замешательство на озадаченных лицах своей аудитории. Многие его коллеги задавались вопросом, как рассчитать вероятность слов в сообщении — P(words)? «Ответ был прост, — сказал им Томас. «Мы должны просто найти вероятность того, что все слова в сообщении появятся вместе». Затем Томас нарисовал на доске следующее уравнение:

«При этом каждое отдельное слово теперь становится индикатором того, является ли сообщение спамом», — продолжил Томас. «По сути, этот метод разделяет обратную вероятность P(слова | Спам) и вероятность свидетельства P(слова) на несколько частей. Однако показатель P(Спам) не меняется, так как он по-прежнему отражает предыдущее убеждение человека о возникновении спама. Например, с точки зрения профессора Фреквентии, его первоначальный априорный показатель P(Spam) будет составлять 13 % на основе его предыдущего исследования».

В этот момент вмешался профессор Фреквентия. «Какой смысл в вычислении обратной вероятности определенных слов, если это слово может появляться одинаково часто как в спамовых, так и в обычных сообщениях? Например, большинство спам-сообщений обычно имеют какое-то отношение к деньгам, поэтому слово «деньги» часто встречается в спам-сообщениях. Однако регулярные разговоры о деньгах столь же часты. Следовательно, слово «деньги» должно так же часто появляться среди сообщений, не являющихся спамом, так как же алгоритм сможет различать эти два контекста? Можно ли было вычислить обратную вероятность слова wn как P( wn | Spam ) AND P( wn | Nonspam )

У Томаса было решение и этой проблемы. Томас объяснил, что обратную вероятность для каждого слова можно найти с помощью «полиномиального решения. «В этом случае полиномиальное решение включает подсчет количества раз, которое слово появляется в сообщении, а затем деление полученного результата на общее количество слов в нашей выборке спам-сообщений. :”

Среди посетителей лекционного зала был Пьер, еще один из ближайших доверенных лиц Томаса. Среди своих сверстников Пьер высоко ценился как эрудит с предметным опытом в различных областях, не ограничиваясь математикой, статистикой, астрономией и философией. Внимательно слушая лекцию Томаса, Пьер заметил недостаток в решении Томаса и вмешался. «Возможны случаи, когда алгоритму придется делить 0 из общего числа, потому что некоторые слова могут появляться только в сообщениях, не являющихся спамом, но не в сообщениях со спамом, и наоборот:»

Томас сразу понял, что был прав. Он не учел эту ошибку и теперь опасался, что его алгоритм не сможет решить проблему. К счастью, у Пьера возникла идея исправить ошибку Томаса, и он очень хотел поделиться с аудиторией своими прошлыми исследовательскими открытиями.

Подойдя к передней части лекционного зала, Пьер поделился техникой, которую он разработал в прошлом, под названием Сглаживание по Лапласу. «При сглаживании по Лапласу, — объяснил Пьер, — нужно просто добавить параметр сглаживанияα к каждому слову, чтобы мы получили ненулевые результаты в параметрах. Сглаживание по Лапласу, равное α=1, является общим для большинства параметров сглаживания». Как только Пьер закончил излагать свое решение, Томас тотчас же почувствовал дуновение свежего воздуха, облегчение и благодарность к своему другу. Томас признал изобретательность решения своего друга и использовал его в своем алгоритме, чтобы он мог лучше вычислять обратные вероятности:

С решением Пьера Томас был уверен, что его алгоритм может решить проблему существования многих жителей деревни. Кроме того, Томас указал, что алгоритм был назван наивным, потому что он невинно предполагает условную независимость среди своих основных параметров. Однако на практике параметры в модели редко бывают полностью независимыми. Это означает, что алгоритм предполагает, что слова не коррелированы, хотя часто это было так. Например, Томас заметил, что слова возникновение и деньги часто встречаются в спам-сообщениях, а это означает, что между этими двумя словами должна быть некоторая корреляция. Однако это наивное предположение об условной независимости чрезвычайно упрощает алгоритм, поскольку означает, что корреляции между словами не нужно учитывать.

Наконец, поскольку знаменатель P(words) является общим для всех параметров, его можно исключить из алгоритма, чтобы максимально упростить его. Теперь, когда Томас закончил излагать обоснование многономиального наивного байесовского алгоритма, он написал на своей доске следующие уравнения, чтобы обобщить свои недавно разработанные методы:

Определения переменных

Нви | Спам= количество раз, когда слово (wi) встречается в спамовых сообщениях.

Nspam = общее количество слов в спаме сообщениях.

Nvocabulary = общее количество слов в словаре.

α=1; Параметр сглаживания Лапласа

Применение полиномиального наивного байесовского алгоритма в действии!

Чтобы продемонстрировать мастерство алгоритма и показать, как он используется на практике, Томас показал четыре предварительно помеченных буквы и немаркированную пятую букву в качестве примеров для своей демонстрации. — Итак, дамы и господа. Хватит лекцию по математике. Давайте попрактикуемся в том, что мы узнали, и определим надоедливый спам! Во-первых, алгоритм будет использовать предварительно помеченные буквы в качестве обучающих данных, чтобы учиться, сохраняя параметры слова. Затем он будет использовать свои сохраненные знания, чтобы классифицировать, является ли пятое сообщение самозванцем», — сказал Томас:

  1. Вычислить константы:

2. Создайте параметры слов P(wn|Spam) для спам-писем и перемножьте их вместе, чтобы найтиP(Spam|words):

3. Создайте параметры слов P(wn|Nonspam) для писем, не являющихся спамом, и перемножьте их, чтобы найтиP(Nonspam|words).

4. Сравните P(Спам|слова) с P(Не спам|слова) и классифицируйте письмо на основе того, что имеет более высокий процент:

После вычисления словесных параметров данного письма — cash winner free — алгоритм наивного Байеса правильно предсказал, что это очередной спам! «Дамы и господа, если вы заметили, вероятности, полученные алгоритмом, были очень и очень низкими — 0,096% и 0,0152% соответственно», — сказал Томас своей аудитории. «Одной из причин этого был низкий объем обучающих данных. Если бы у алгоритма было больше возможностей для обучения, мы, вероятно, увидели бы более высокую достоверность его предсказаний для немаркированных букв».

Снова лекционный зал взорвался аплодисментами. Все коллеги Томаса по проходу поздравляли Томаса с его прорывом. Томас был особенно рад видеть своего наставника, профессора Фреквентию, и Пьера, сияющего от гордости за достижения своего друга. Вот оно. Пора раз и навсегда избавить город от спама и прочего мошенничества, подумал про себя Томас. Его цель избавить город от этой проблемы была близка к реализации, если бы только он мог продемонстрировать мастерство своего алгоритма в большем масштабе. Его самая большая проблема теперь была впереди.

Во время ажиотажа Томас снова привлек внимание публики. «Спасибо за вашу поддержку в посещении моей лекции. Естественно, следующим шагом будет обучение алгоритма и оценка его эффективности в наборе данных UCI. Но не раньше, чем сделать столь необходимый перерыв после этого долгого и захватывающего дня. Расслабьтесь, освежите свои мысли, перекусите, и давайте все снова соберемся через два часа», — обратился Томас к аудитории. Сам Томас начал ощущать умственное напряжение от столь долгого чтения лекций. Ему нужно было время, чтобы подумать о том, как он собирается успешно выполнить алгоритм на наборе данных. Когда энергичная толпа начала расходиться, избранная группа поспешила к своим конюшням и ускакала на своих мощных лошадях. Апач, один из самых богатых, влиятельных и имеющих хорошие связи зрителей, поспешил прочь со своим давним конем и другом по имени Спарк. Остальные руководители Виктории должны знать, что сегодня произошло!

Обнаружение спама в масштабе

Когда через два часа Байес снова собрался с толпой, стало очевидно, что молва быстро распространилась по городу. Казалось, администрация университета тоже слышала о популярности его новаторского открытия. Вместо классического лекционного зала эпохи Возрождения, который ему предоставили ранее, университет переместил его в огромный театр под открытым небом, расположенный выше на склоне горы, где располагался UCI. Байес приветствовал это изменение. Погодные условия снаружи были слишком идеальными, чтобы толпа людей могла проводить время в помещении. Сам театр был древним, восходящим к римской древности, который университет сохранил и переделал в лекционную структуру под открытым небом, предназначенную только для самых грандиозных общественных собраний. За сценой открывался великолепный вид на горизонт древнего города, состоящий из величественных соборов, мавзолеев, замков, храмов и старинных романских зданий. До его лекции оставалось десять минут, и зал был переполнен, так как его аудитория увеличилась более чем вдвое с сегодняшнего утра. Среди толпы на верхнем уровне был Апач, который привел с собой несколько видных фигур в городском совете лидеров.

Оказывается, когда Байес подходил к концу своей первой лекции, Апач проводил свои частные беседы со своими присутствовавшими товарищами. Все они были полностью согласны с тем, что Байес добился огромных успехов в решении этой общедеревенской проблемы и что им необходимо привлечь как можно больше влиятельных лиц в городе ко второй половине лекции Байеса.

Во время перерыва Апач провел встречи с несколькими наиболее влиятельными фигурами города и убедил их в потенциале алгоритма Байеса. «Даже если его алгоритм потерпит неудачу с масштабной демонстрацией, Байес уже заложил достаточно основы для того, чтобы город преуспел в этой битве! Теперь успех не за горами», — сказал им Апач. Это сработало. Руководители города были заинтригованы предложением Апача и быстро вернулись с ним в UCI, чтобы послушать публичную лекцию Байеса.

Тем временем Байес также придумал творческий способ проверить его предсказуемость по сравнению с предварительно размеченными данными и был рад поделиться им. Когда лекция приблизилась к назначенному времени, Байес обратился к аудитории. «Дамы и господа, спасибо, что нашли время присутствовать на сегодняшней публичной речи. Кажется, наша сегодняшняя аудитория значительно увеличилась с сегодняшнего утра, поэтому я надеюсь, что не говорил неправильных вещей, иначе этим вечером я могу оказаться в бегах из города», — пошутил он с толпой. Он был доволен, что его шутка возымела эффект, на который он рассчитывал, разрядив атмосферу. — А теперь приступим к представлению? В течение следующего часа Байес резюмировал темы, которые он обсуждал утром, в том числе свою философию, лежащую в основе его теоремы, алгоритм и то, как его можно применить для прогнозирования спама.

Теперь, когда их внимание было приковано к нему, он объяснил методологию, которую он придумал в промежутке времени для демонстрации своего наивного байесовского алгоритма. Руководствуясь своей верой в то, что со временем можно научиться распознавать фальшивые письма при достаточной практике и наличии данных, Байес продемонстрировал своей аудитории, что разделит свою коллекцию писем 80/20. 80% его писем станут его training_set для практики, а последние 20% будут его test_set для измерения результатов обучения путем сравнения его прогнозов с предварительными метками. Это напомнило Байесу о его первых днях в качестве студента-статистика в UCI, когда он «тренировался» на своих лекционных материалах и учебниках, затем проверял себя, решая практические задачи, прежде чем, наконец, оценивая свои результаты, сравнивая свои ответы с ответами на обратной стороне текста.

Output:
Number of messages in the Training Set: 4458  
Number of messages in the Test Set: 1114

«А теперь дамы и господа, пришло время для главного события!» Байес сказал толпе. «Наш многономиальный наивный байесовский алгоритм теперь может обучаться на нашем training_set, вычисляя константу и параметры, необходимые для точного распознавания спам-сообщений в будущем. Ради прозрачности мы также подготовили справочный лист параметров алгоритма». Чтобы быть ясным со своей аудиторией, Байес указал на уравнение, которое он использовал для обратных вероятностей каждого слова:

Output:
Bayesian Constants
   
P(non-spam message): 0.8654104979811574  
P(spam message): 0.13458950201884254  
N(non-spam message): 3858  
N(spam message): 600  
N(vocabulary): 8448

«По сути, справочный лист будет включать отдельные подкомпоненты уравнения обратной вероятности, которые мы обсуждали ранее, такие как проценты и количество каждого слова, встречающегося в обоих типах сообщений».

Байес также воспользовался возможностью, чтобы выделить решение своего друга для слов, которые появляются в одной категории сообщений, но не появляются в другой. «Дамы и господа, мы уже видим влияние, которое мой друг Саймон оказал на сегодняшнюю публичную лекцию». Затем Байес указал на второе слово, указанное в его справочном листе. «Слово нет — это непосредственный пример значения параметра сглаживания Лапласа, поскольку оно появляется только в сообщениях, не являющихся спамом, а не в спаме. Добавление 1 в этом случае необходимо, потому что это приведет к путанице в наших вычислениях, если нам придется делить наш числитель (например, Nwi|Spam) на 0».

Используя свой справочный лист параметров, Байес начал прогнозировать появление спама в test_set, применяя свой алгоритм машинного обучения индивидуально к каждому сообщению. «Снова давайте обратимся к уравнению для многономиального наивного байесовского алгоритма».

«Каждый раз, когда слово в сообщении соответствует словесному параметру, оно будет умножено на константу, чтобы найти P(Spam|w1,w2,…wn), что, напомним себе, представляет собой вероятность того, что сообщение быть спамом, учитывая его словесное содержание. Затем мы воспользуемся той же процедурой, чтобы найти вероятность того, что сообщение является законным, учитывая его содержимое P(NonSpam|w1,w2,…wn). Сравнивая эти две вероятности, мы можем затем классифицировать сообщение на основе того, какая из них выше», — заключил Томас. Затем он применил эту процедуру и предсказал легитимность каждого сообщения.

Этап 3 — Оценка модели Bayes_Judgement

После того, как Томас запустил свою модель Bayes_Judgement на test_set, он применил некоторые базовые показатели для проверки точности своей модели и описал процесс своего мышления перед аудиторией. Первая и наиболее очевидная метрика, подходящая для нашего алгоритма, — это вычисление «точности, которую мы можем найти, разделив количество правильных прогнозов на общее количество примеров. Например, если мы хотим определить, насколько точен наш алгоритм при правильной идентификации спам-сообщений (в данном случае это также называется ложноотрицательным срабатыванием), мы должны разделить число правильных прогнозов на общее количество спама. сообщения в тестовом наборе». Затем Томас применил эту метрику ко всему своему набору тестов и объяснил, почему он визуализирует свои метрики с помощью бинарной матрицы путаницы два на два. Короче говоря, «Двоичная матрица путаницы обобщает точность нашей прогностической модели, сравнивая ее прогноз с правильным ответом».

Томас также проверил, нет ли каких-либо посторонних несоответствий с его алгоритмом, которые ему, возможно, придется просмотреть вручную. К счастью, это не было проблемой.

Этап 4 — Прогнозирование и движение вперед

Как только Томас закончил регистрировать свои показатели и визуализировать их для своей аудитории, он сразу же был разочарован результатами, которые он показал. Томас неутешительно извинился перед своей аудиторией. «Дамы и господа, к сожалению, наш алгоритм не дал ожидаемых результатов. Согласно матрице, эффективность алгоритма в точном определении подлинности сообщений составляет всего 44,5%, а в обнаружении спама — только 3,4%. В более широком контексте выявления спама алгоритм смог идентифицировать только 5 из 147 мошеннических сообщений в нашем тестовом наборе данных. В общей сложности алгоритм правильно идентифицировал только 435 из возможных 1114 сообщений в наборе данных, что соответствует скудной степени точности 39,05%, что явно неприемлемо».

Томас был искренне озадачен эффективностью своего алгоритма, так как был уверен, что он будет хорошо работать против test_set. «На данный момент трудно сказать, где алгоритм дал сбой. Я предполагаю, что у него было недостаточное количество спам-сообщений для обучения и параметризации. Как видите, неспамовых сообщений было почти в 6 раз больше (всего 3858) по сравнению со спамовыми сообщениями (600). Возможно, наличие большего количества данных для обучения алгоритма могло бы решить эту проблему, но пока кажется, что я наткнулся на кирпичную стену, которую я должен продолжать стремиться преодолеть», — заключил Томас.

На несколько секунд в толпе царила мрачная атмосфера. Внезапно Апач встал и начал громко хлопать, как будто Томас только что получил престижную награду. Затем Томас узнал нескольких членов руководящего совета Виктории, сидевших рядом с Апачем, которые последовали его примеру и встали, чтобы аплодировать Томасу стоя. Вскоре после этого весь театр вскочил на ноги, аплодируя так громко, что Томас был уверен, что остальной город может услышать их аплодисменты. Почему они все так громко аплодируют, подумал Томас. Сегодняшняя лекция не дала мне ничего, кроме сильно ошибочного алгоритма, в котором я больше не уверен.

Затем Apache спустился на сцену и дал знак толпе успокоиться. «Томас, хотя ваш наивный байесовский алгоритм сегодня не был совершенен, не расстраивайтесь из-за своего результата, позволяя совершенству быть врагом хорошего», — сказал ему Апач. «Сегодня вы совершили огромный прорыв, который, я уверен, со временем можно будет улучшить с помощью большего количества данных, более совершенных методов и дополнительных инвестиций. Понятно, что теорема, которую вы предложили ранее сегодня, заложила прочную основу для решения более крупных проблем, помимо обнаружения мошеннических писем. Поэтому от имени руководящей команды здесь, в Виктории, и в присутствии здесь сегодня сообщества, я рад представить вам не только титул лорда над этим городом, но и кафедру профессора в этом университете! Поздравляем с новыми назначениями, профессор Томас Байес. Мы с нетерпением ждем вашего будущего вклада в благополучие Виктории».

Томас был поражен заявлениями апачей. Толпа тут же взорвалась бурными аплодисментами. И снова в тот день друзья Томаса профессор Фреквентиа и Пьер горячо аплодировали его новому назначению. Apache был еще более взволнован возможностями, которые теорема Байеса имела в решении более масштабных проблем. Это было, несомненно, правильное решение, и совету повезло, что он был его союзником. Сам по себе Томас уже многого добился без особой помощи. Можно только представить, чего мы можем добиться, поддержав его и его друзей нужными инструментами и капиталом для достижения успеха!

Часть II. Использование PySpark для реализации наивного байесовского спам-фильтра

Если вы дочитали до этого места, спасибо, что нашли время прочитать мою первую попытку использовать нарративное повествование для объяснения механизмов, лежащих в основе Наивного Байеса. Объяснимость ИИ — это проблема, которая препятствует более широкому внедрению и доверию к технологии. Я надеюсь, что мой проект станет одним из многих, призванных восполнить этот пробел. Наш мозг запрограммирован кодировать информацию, передаваемую через истории, поэтому люди всегда тяготеют к хорошо проработанным фильмам, романам и другим средствам массовой информации. Кстати, многие персонажи этой истории были названы в честь реальных исторических личностей, сыгравших ключевую роль в разработке и распространении теоремы Байеса. Без вклада Томаса Байеса, Ричарда Прайса и Симона-Пьера Лапласа у нас, возможно, никогда не было бы новаторских достижений, которые изменили академические области, такие как статистика, наука о данных, машинное обучение и медицина.

В части II этого проекта я планирую подготовить еще одну статью, посвященную вкладу Apache, чтобы проиллюстрировать, как определенные инструменты, библиотеки и аналитические механизмы могут использовать один и тот же алгоритм для создания более совершенных прогностических моделей. Код для проекта уже написан, чтобы обеспечить каркас структуры для следующей истории. Мне не терпится приступить к следующему этапу этого проекта, но для этого мне понадобится ваша помощь, чтобы дать мне обратную связь, чтобы улучшить то, как я могу рассказать эту историю. Так что, если не сложно, оставьте мне отзыв и поделитесь этой публикацией с друзьями, коллегами или даже членами семьи. Я хочу стать лучшим рассказчиком данных, насколько это возможно, но я не могу этого сделать без вашей поддержки. А пока ждите следующего этапа научных приключений Томаса и Апача в байесовской статистике.

Махало!