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

Существует несколько типов рекомендательных систем (RS), а именно:

  • RS на основе контента
  • RS на основе популярности
  • Ассоциация правил майнинга на основе RS
  • RS на основе совместной фильтрации
  • Гибрид RS

RS на основе контента

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

RS на основе популярности

Один из самых простых способов начать работу с рекомендательными системами, RS, основанный на популярности, дает рекомендации, основанные на популярности каждого элемента. Следовательно, это означает, что одинаковые рекомендации для всех пользователей.

Правила ассоциации Mining Based RS

Эти RS анализируют данные, чтобы выработать правила ассоциации, на основе которых они могут делать свои рекомендации.

RS на основе совместной фильтрации

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

Матрица элементов пользователя является разреженной, поскольку большинство пользователей не взаимодействуют с элементами, а значения в матрице обычно представляют собой значение обратной связи. Эти значения обратной связи могут быть определены либо явно (например, если пользователи оценивают фильмы, песни и т. Д.), Либо неявно (например, определение продуктов, которые следует рекомендовать, на основе элементов, просмотренных и / или купленных пользователями).

Два типа совместной фильтрации - это совместная фильтрация ближайшего соседа и совместная фильтрация латентного фактора. Совместная фильтрация ближайшего соседа направлена ​​на поиск k пользователей, наиболее похожих на текущего пользователя, и выработка рекомендаций путем прогнозирования вероятности того, что рекомендации понравятся пользователю. Рекомендации могут быть основаны на элементах или на пользователях, где на основе элементов мы ищем k ближайших элементов, а на основе пользователей мы находим k ближайших пользователей.

Совместная фильтрация скрытых факторов разлагает матрицу элементов пользователя с использованием факторизации матриц для создания двух матриц скрытых факторов меньшего размера. Определение скрытых факторов достигается с помощью методов оптимизации, таких как ALS (чередование наименьших квадратов).

Гибрид RS

Гибридные рекомендательные системы объединили в своем прогнозе различные методы RS.

Система рекомендаций по диагностике здоровья

Разрабатываемая система будет предоставлять RS с совместной фильтрацией через RESTful API. Модель машинного обучения будет использовать совместную фильтрацию скрытых факторов и реализована с использованием PySpark с использованием ALS. Разработка будет состоять из различных этапов, а именно загрузки данных, проектирования функций, визуализации данных, создания модели, тестирования модели и оценки модели.

Загрузка данных

Данные состоят из трех файлов: один содержит симптомы и хранит их идентификатор (syd) и их имя (симптом). Другой содержит диагнозы и хранит их идентификатор (сделал) и их имя (диагноз), а третий содержит разреженную матрицу диагнозов симптомов, содержащую идентификатор симптома (syd), идентификатор болезни (did) и вес симптома заболевания (wei). Все три файла в формате CSV.

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

Это приводит к следующему выводу:

Функциональная инженерия

Разработка функций связана с извлечением и сокращением функций. Особенность извлекает нас из заботы о превращении нечисловых данных в непрерывные значения. Из данных нам нужно преобразовать название симптома и заболевания.

Сначала мы создаем индекс симптомов, кодируем его и создаем вектор. То же самое затем повторяется для названия болезни. Это достигается следующим образом:

Результатом будет следующий вывод:

После получения векторов они стандартизируются путем масштабирования и объединяются в вектор функций, как показано:

Это приводит к следующему выводу:

Кластеризация применяется в порядке, в результате чего добавляется столбец прогнозирования, как показано ниже:

Это приводит к следующему выводу:

Затем функции подвергаются сокращению с помощью анализа главных компонентов (PCA), чтобы упростить визуализацию данных.

Визуализация данных

Затем данные можно визуализировать как часть исследовательского анализа данных (EDA). Сокращение функций позволяет представлять очень сложные данные в 2D, что помогает в определении закономерностей и тенденций, содержащихся в данных. Это может быть достигнуто следующим образом:

Это приводит к следующему выводу:

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

Создание модели

Для создания модели столбец прогноза, добавленный после кластеризации, удаляется, а набор данных разделяется на наборы данных для обучения и тестирования. Рекомендатель, использующий ALS, используется для создания модели, которая затем обучается на обучающем наборе данных, как показано:

Тестирование и оценка модели

Модель тестируется с использованием данных тестирования, и прогнозы, сделанные моделью, оцениваются с использованием среднеквадратичной ошибки (RMSE), как показано на рисунке:

RMSE составляет 0,81886 с результатами обучения и тестирования модели, как показано ниже:

Получение рекомендаций

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

Это приводит к следующему выводу:

Следующим шагом является создание RESTful API, который сделает модель доступной через вызовы API.

Спасибо за ваше время и следите за обновлениями.