BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по MLOps и Data Science (ML, AI) » Контентная фильтрация в машинном обучении

Контентная фильтрация в машинном обучении

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

 

Что такое система рекомендаций?

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

  1. Интернет-магазины (Amazon, Zomato и т. д.)
  2. Аудио (песни, аудиокниги, подкасты и т. д.)
  3. Рекомендации по видео (YouTube, Netflix, Amazon Prime и т. д.)

 

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

  1. Совместная фильтрация
  2. Контентная фильтрация

 

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

 

Контентная фильтрация

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

Давайте разберемся в процессе фильтрации по контенту, посмотрев на все этапы этого метода для выработки рекомендаций для пользователя:

  1. Все начинается с определения ключевых слов, чтобы понять контекст. На этом этапе он игнорирует ненужные слова, такие как стоп-слова.
  2. Затем он находит такой же контекст в другом контенте, чтобы найти сходства. Чтобы определить сходство между двумя или более текстами, метод, основанный на контенте, использует косинусное сходство.
  3. Он находит сходство, анализируя корреляцию между двумя или более пользователями.
  4. Затем он генерирует рекомендации, вычисляя средневзвешенное значение всех пользовательских оценок для активных пользователей.

 

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

 

Контентная фильтрация с помощью Python

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

Давайте начнем решать эту задачу с импорта необходимых библиотек Python и набора данных:

Набор данных

 

import numpy as np
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel
movies = pd.read_csv('movies_metadata.csv')
print(movies.head())

 

  adult                              belongs_to_collection    budget  ...  video vote_average vote_count
 0  False  {'id': 10194, 'name': 'Toy Story Collection', ...  30000000  ...  False          7.7     5415.0
 1  False                                                NaN  65000000  ...  False          6.9     2413.0
 2  False  {'id': 119050, 'name': 'Grumpy Old Men Collect...         0  ...  False          6.5       92.0
 3  False                                                NaN  16000000  ...  False          6.1       34.0
 4  False  {'id': 96871, 'name': 'Father of the Bride Col...         0  ...  False          5.7      173.0

 

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

 

tfidf = TfidfVectorizer(stop_words='english')
movies['overview'] = movies['overview'].fillna('')
overview_matrix = tfidf.fit_transform(movies['overview'])
similarity_matrix = linear_kernel(overview_matrix,overview_matrix)
mapping = pd.Series(movies.index,index = movies['title'])
print(mapping)

 

Результат:

title

Toy Story                         

0

Jumanji

1

Grumpier Old Men                  

2

Waiting to Exhale                 

3

Father of the Bride Part II       

4

                               ...

Subdue 

45461

Century of Birthing           

45462

Betrayal

45463

Satan Triumphant              

45464

Queerama                      

45465

Length: 45466, dtype: int64

 

Теперь давайте создадим функцию и посмотрим, как работает система рекомендаций:

 

def recommend_movies(movie_input):
    movie_index = mapping[movie_input]
    similarity_score = list(enumerate(similarity_matrix[movie_index]))
    similarity_score = sorted(similarity_score, key=lambda x: x[1], reverse=True)
    similarity_score = similarity_score[1:15]
    movie_indices = [i[0] for i in similarity_score]
    return (movies['title'].iloc[movie_indices])

print(recommend_movies('Life Begins for Andy Hardy'))

 

Результат:

23530                     

Andy Hardy Meets Debutante

21422                                

A Family Affair

26304                         

You're Only Young Once

10301                         

The 40 Year Old Virgin

29369                 

Andy Hardy's Private Secretary

23843                    

Andy Hardy's Blonde Trouble

15348                                    

Toy Story 3

43427               

Andy Kaufman Plays Carnegie Hall

38476   

Superstar: The Life and Times of Andy Warhol

42721   

Andy Peters: Exclamation Mark Question Point

8327                                       

The Champ

28128                      

The Mayor of Casterbridge

21359                       

Andy Hardy's Double Life

32086                               

Brother's Keeper

Name: title, dtype: object

 

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

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Обнаружение выбросов с помощью Python
Следующая статья →
Совместная фильтрация в машинном обучении

 

Внедряем AI в бизнес-процессы крупных компаний
От стратегии и инфраструктуры до AI-агентов, интеграций и промышленной эксплуатации.

Подробнее об AI-решениях

 

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • ГК «Агропромкомплектация-Курск» - одна из ведущих в Российской Федерации агропромышленных компаний с полным производственным циклом "от поля до прилавка". За 32 года работы на рынке компания заслуженно завоевала репутацию одного из лидеров страны в производстве свинины и молока.

  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  • АО «Евросиб СПб–транспортные системы» – оператор контейнерных сервисов с широкой сетью маршрутов на внутрироссийских и международных направлениях. Имеет успешный опыт управления парком фитинговых платформ, а также организации ускоренных контейнерных поездов, в основе которых точное расписание, оптимальные сроки доставки груза и экономическая целесообразность.

  • ИНВИТРО
    ИНВИТРО – крупнейшая частная медицинская компания в России, специализирующаяся на лабораторной диагностике и оказании других медицинских услуг.
     
    ИНВИТРО располагает 9 самыми современными лабораторными комплексами и крупнейшей в Восточной Европе сетью более чем из 900 медицинских офисов. Страны присутствия — Россия, Украина, Казахстан, Беларусь.
     
  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.