Рубрики
Без рубрики

KNN в Python – простая практическая реализация

Здравствуйте, читатели! В этой статье мы будем сосредоточены на понимании и внедрении КНН в Python.

Автор оригинала: Pankaj Kumar.

KNN в Python – простая практическая реализация

Здравствуйте, читатели! В этой статье мы будем сосредоточиться на Понимание и внедрение KNN в питоне.

Итак, давайте начнем !!

Что такое алгоритм KNN?

КНН – аббревиатура для к-ближайшего соседа. Это контролируемый алгоритм обучения машины. KNN в основном используется для классификации, а также регрессии.

KNN не предполагает какие-либо базовые параметры I.e. Это Непараметрический алгоритм.

Шаги, сопровождаемые алгоритмом KNN

  • Изначально он хранит тренировочные данные в окружающую среду.
  • Когда мы придумываем данные для прогнозирования, KNN выбирает K-самые одинаковые/аналогичные значения данных Для новой тестовой записи в соответствии с тренировочным набором данных.
  • Кроме того, выбор K-самых подобных соседей для новой тестовой точки выполнен с использованием Евклида или Манхэттенское расстояние Отказ По сути, они рассчитывают расстояние между тестовой точкой и значениями данных тренировки, а затем выбирают k ближайших соседей.
  • Наконец, значение тестового данных присваивается классу или группе, которая содержит максимальные точки K ближайших соседей тестовых данных.

Реальный пример K-NN

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

Итак, здесь есть два класса: зеленый и синий. Наша задача – найти, к какому классу новое бусин «Z» упадет.

Решение – Первоначально мы случайным образом выбираем значение K. Давайте теперь предположим. Итак, KNN рассчитает расстояние Z со всеми значениями данных тренировки (сумка из бисера).

Кроме того, мы выбираем ближайшие значения 4 (k) к z, а затем попытайтесь проанализировать, к какому классу принадлежат большинство из 4 соседей.

Наконец, Z присваивается класс большинства соседей в пространстве.

Реализация KNN в Python

Теперь, давайте попробуем реализовать концепцию KNN, чтобы решить проблему ниже регрессии.

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

Вы можете найти набор данных здесь .

Итак, давайте начнем!

1. Загрузите набор данных

Мы использовали использование Модуль пандас загрузить набор данных в среду, используя pandas.read_csv () функция.

import pandas 
BIKE = pandas.read_csv("Bike.csv")

2. Выберите правильные функции

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

corr_matrix = BIKE.loc[:,numeric_col].corr()
print(corr_matrix)

Корреляционная матрица

               temp     atemp       hum  windspeed
temp       1.000000  0.991738  0.114191  -0.140169
atemp      0.991738  1.000000  0.126587  -0.166038
hum        0.114191  0.126587  1.000000  -0.204496
windspeed -0.140169 -0.166038 -0.204496   1.000000

Как «TEMP» и «ATEMP» очень коррелируют, мы бросаем «atemp» из набора данных.

BIKE = BIKE.drop(['atemp'],axis=1)

3. Разделите набор данных

Мы использовали функцию reake_test_split () для разделения набора данных в 80% тренировках и набора данных на 20%.

#Separating the dependent and independent data variables into two data frames.
from sklearn.model_selection import train_test_split 

X = bike.drop(['cnt'],axis=1) 
Y = bike['cnt']

# Splitting the dataset into 80% training data and 20% testing data.
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=.20, random_state=0)

4. Определите метрики ошибок

Поскольку это проблема регрессии, мы определили Maпе в виде метрик ошибок, как показано ниже-

import numpy as np
def MAPE(Y_actual,Y_Predicted):
    mape = np.mean(np.abs((Y_actual - Y_Predicted)/Y_actual))*100
    return Mape

5. Создайте модель

Модуль Sklearn.neighbors Содержит Kneighborsregressor () метод реализации KNN, как показано ниже-

#Building the KNN Model on our dataset
from sklearn.neighbors import KNeighborsRegressor
KNN_model = KNeighborsRegressor(n_neighbors=3).fit(X_train,Y_train)

Кроме того, мы предсказываем данные тестирования, используя функцию прогнозирования ().

KNN_predict = KNN_model.predict(X_test) #Predictions on Testing data

6. Проверка точности!

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

# Using MAPE error metrics to check for the error rate and accuracy level
KNN_MAPE = MAPE(Y_test,KNN_predict)
Accuracy_KNN = 100 - KNN_MAPE
print("MAPE: ",KNN_MAPE)
print('Accuracy of KNN model: {:0.2f}%.'.format(Accuracy_KNN))

Оценка точности KNN-

MAPE:  17.443668778014253
Accuracy of KNN model: 82.56%.

Заключение

По этому, мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом.

Для большего количества таких постов, связанных с Python, оставаться настроенными, а до тех пор, как потом, счастливое обучение !! 🙂.