Одной из новых областей интереса для меня является машинное обучение и его роль в приложениях, которые мы используем каждый день. В основном я хотел сосредоточиться на том, как я могу использовать некоторые алгоритмы машинного обучения, чтобы создать что-то действительно классное. Udacity (https://www.udacity.com) предлагает бесплатный онлайн-курс, который я начал проходить, под названием Введение в машинное обучение. Он использует Python, чтобы узнать о некоторых различных типах алгоритмов обучения. Моя цель состояла в том, чтобы посмотреть, смогу ли я перевести то, что я практиковал, во что-то, с чем я мог бы поиграть в javascript, а точнее в Node.js и Express.js.

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

Все сводится к вероятности настоящего положительного результата, деленной на вероятность любого положительного результата. Чтобы проверить это, мне пришла в голову идея взять данные из группового чата, в котором я участвую (у нас он существует уже около 3 лет, так что у нас масса данных) и иметь возможность предсказать, кто в группе что-то скажет на основе прошлых данных.

Области, которые будут учитываться в уравнении, — это количество раз, когда запись была сопоставлена ​​с конкретным пользователем, а также все слова, которые когда-либо были сопоставлены с этим пользователем. Я создал файл json на основе данных чата GroupMe (https://groupme.com) примерно за 7 месяцев, используя их API. Я обучил алгоритм Байеса этим данным и смог создать модель прогнозирования. У меня нет реальных данных о его точности, но, судя по моим тестам, он способен выбирать редкие слова, которые каждый из нас использует чаще. Ниже приведены два примера последних сообщений, которые я тестировал.