BI Consult
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
    • Построение хранилища данных
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Платформы
    • FineBI
    • FineReport
    • ATK BiView-1C коннектор
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Analytic Workspace + Alpha BI
    • FlyBI + Форсайт. Аналитическая Платформа
    • Loginom
    • Yandex.DataLens
    • Триафлай
    • ChatGPT
    • Open-source BI
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка 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
  • ATK BiView-1C Коннектор
  • Airflow
  • Visiology
  • Luxms BI
  • Modus BI
  • Analytic Workspace + Alpha BI
  • PIX BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Yandex.DataLens
  • Триафлай
  • ChatGPT

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional

Другое

  • Data Engeneering
    • Создание Data Lake
    • Создание Data Warehouse
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы » Учебный курс по 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.

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

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

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

Клиенты
  • В «Пивоваренной компании «Балтика» аналитическая платформа Loginom применяется для моделирования процессов или построения отчетов, в том числе для формирования рекомендаций по корректировке плана промоактивностей.
     
  • Российский филиал одного их ведущих мировых производителей и дистрибьютеров косметики Estee Lauder Companies Inc. выбрал аналитическую платформу Loginom для предиктивной аналитики продаж как в офлайн-, так и в онлайн-канале.

  • ИНВИТРО
    ИНВИТРО – крупнейшая частная медицинская компания в России, специализирующаяся на лабораторной диагностике и оказании других медицинских услуг.
     
    ИНВИТРО располагает 9 самыми современными лабораторными комплексами и крупнейшей в Восточной Европе сетью более чем из 900 медицинских офисов. Страны присутствия — Россия, Украина, Казахстан, Беларусь.
     
  • ПАО «Ростелеком» — российский провайдер цифровых услуг и сервисов. Предоставляет услуги широкополосного доступа в Интернет, интерактивного телевидения, сотовой связи, местной и дальней телефонной связи и др. Занимает лидирующие позиции на российском рынке высокоскоростного доступа в интернет, платного ТВ, хранения и обработки данных, а также кибербезопасности

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • ATK BiView-1C Коннектор
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Analytic Workspace + Alpha BI
    • FlyBI + Форсайт. Аналитическая Платформа
    • Loginom
    • Yandex.DataLens
    • Триафлай
    • ChatGPT
    • Open-source BI
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс по 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
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
LinkedInYouTubeVkontakteFacebook
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru