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) » K-ближайшие соседи (KNN) с Python

K-ближайшие соседи (KNN) с Python

Руководство по машинному обучению по K-ближайшим соседям с Python.

В scikit-learn много алгоритмов классификации, которые мы можем использовать для обучения модели машинного обучения. В этой статье я расскажу вам о машинном обучении по алгоритму K-ближайших соседей (KNN) с языком программирования Python.

 

Введение в K-ближайших соседей (KNN)

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

K в k ближайших соседей означает, что вместо использования только соседа, ближайшего к новой точке данных, мы можем рассматривать любое фиксированное количество k соседей в обучении (например, трех или пяти ближайших соседей). Затем мы можем сделать прогноз, используя класс большинства среди этих соседей.

Все модели машинного обучения scikit-learn реализованы в своих классах, называемых классами оценки. Алгоритм классификации k-ближайших соседей (KNN) реализован в классе KNeighborsClassifier модуля Neighbours.

 

Руководство по машинному обучению по K-ближайшим соседям (KNN) с Python

Данные, которые я буду использовать для реализации алгоритма KNN – это набор данных Iris, классический набор данных в машинном обучении и статистике. Набор данных Iris включен в модуль наборов данных Scikit-learn. Мы можем легко импортировать его, вызвав функцию load_iris:

 

 from sklearn.datasets import load_iris
 iris_dataset = load_iris()

 

Следующий шаг – разделить данные на обучающий и тестовый наборы. Scikit-learn содержит функцию, которая перетасовывает набор данных и разделяет его на два. Эта функция известна как функция train_test_split:

 

 from sklearn.model_selection import train_test_split
 X_train, X_test, y_train, y_test = train_test_split(
  iris_dataset['data'], iris_dataset['target'], random_state=0)

 

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

 

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

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

Один из способов сделать это – использовать диаграмму рассеяния. На диаграмме рассеяния один объект размещается по оси x, а другой – по оси Y, и для каждой точки данных будет отрисована точка:

 

 iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
 # create a scatter matrix from the dataframe, color by y_train
 pd.plotting.scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15),
 marker='o', hist_kwds={'bins': 20}, s=60,
 alpha=.8, cmap=mglearn.cm3)

 

 

На диаграмме рассеяния выше мы можем видеть, что три класса кажутся относительно хорошо разделенными, используя измерения чашелистиков и лепестков. Модель машинного обучения, вероятно, сможет научиться их разделять.

 

K-ближайшие соседи с Python

Теперь мы можем приступить к построению реальной модели машинного обучения, а именно K-ближайших соседей. Именно тогда мы определим параметры модели. Самый важный параметр классификатора K соседей – это количество соседей, которое мы установим равным 1:

 

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)

 

Чтобы построить модель на обучающем наборе, нам нужно вызвать метод fit объекта KNN:

 

knn.fit(X_train, y_train)
KNeighborsClassifier(n_neighbors=1)

 

Метод fit возвращает сам объект KNN, поэтому мы получаем строковое представление нашего классификатора. Представление показывает нам, какие параметры использовались для создания модели. Почти все они являются значениями по умолчанию, но вы также можете найти n_neighbors = 1, который является параметром, который мы передали.

 

Как сделать прогноз

Теперь мы можем делать прогнозы, используя эту модель, для новых данных, для которых мы можем не знать правильные метки. Чтобы делать прогнозы, нам нужно вызвать метод прогнозирования объекта KNN:

 

 prediction = knn.predict(X_new)
 print("Prediction:", prediction)
 print("Predicted target name:",
 iris_dataset['target_names'][prediction])

 

Результат:

Prediction: [0]

Predicted target name: ['setosa']

 

Наша модель K-ближайших соседей предсказывает, что этот новый ирис принадлежит к классу 0, и это означает, что его вид – setosa. Надеюсь, вам понравилась эта статья о машинном обучении K-ближайших соседей (KNN) с реализацией на языке программирования Python.

 

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

← Предыдущая статья
Алгоритм Априори с использованием Python
Следующая статья →
Алгоритм CatBoost в машинном обучении

 

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

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

 

Решения

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

Клиенты
  •  ООО «ММК-Информсервис» создает высокотехнологичные решения для эффективной работы предприятий. Разрабатывают и внедряют телекоммуникационные и бизнес-приложения, автоматизируют производство, выстраивают и поддерживают корпоративную IT-инфраструктуру.

  • КАМИ – компания-лидер по поставкам тяжёлых станков в России, занимающаяся продажей и обслуживанием оборудования для обработки металла и дерева, изготовления мебели и не только. На сегодняшний день в компании работают более 1300 человек, запущено 10 обучающих центров, в продаже более 7000 единиц техники. 

  • «Лента» – первая по величине сеть гипермаркетов и четвертая среди крупнейших розничных сетей страны. Компания была основана в 1993 г. в Санкт-Петербурге.

    «Лента» управляет 249 гипермаркетами в 88 городах России и 131 супермаркетом в Москве, Санкт-Петербурге, Сибири, Уральском и Центральном регионах с общей торговой площадью около 1 494 тыс. кв. м. Средняя торговая площадь одного гипермаркета «Лента» составляет около 5 500 кв.м, средняя площадь супермаркета – 800 кв.м. Компания оперирует двенадцатью распределительными центрами. Штат компании – около 50, 5 тыс. человек.

  • АО «Новосибирскэнергосбыт» является единственным гарантирующим поставщиком электроэнергии на территории г. Новосибирска и Новосибирской области. Предприятие отвечает за электроснабжение клиентов, закупая электроэнергию на оптовом рынке, регулируя поставку электроэнергии через договорные отношения с сетевыми организациями.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • 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 и политикой конфиденциальности.