Автор оригинала: 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, оставаться настроенными, а до тех пор, как потом, счастливое обучение !! 🙂.