«Это первый день моего участия в ноябрьском испытании обновлений, ознакомьтесь с подробностями события:Вызов последнего обновления 2021 г."
Алгоритм KNN
(Машинное обучение боя) Алгоритм K-ближайшего соседа использует для классификации метод измерения расстояния между разными собственными значениями. Принцип работы: Уже существует примерный набор данных, обучающий набор, и все данные в обучающем наборе имеют соответствующую классификационную метку. После ввода новых данных без меток каждый признак новых данных сравнивается с признаками, соответствующими данным в выборке, а затем алгоритм извлекает классификационные метки данных с наиболее похожими характеристиками в выборке. То есть посмотрите на метки k ближайших данных и сделайте это большинством голосов. Здесь k из k-NN представляет собой k наиболее похожих данных в выбранном наборе выборочных данных, обычно k устанавливается равным целому числу, не превышающему 20.
настоящий бой
Классификация по данным датирования (пример из «Машинное обучение в действии») Хелен использовала сайты онлайн-знакомств, чтобы найти подходящего ей человека. Хотя сайты знакомств порекомендуют разные кандидат, но она не любит всех. Подведя некоторые итоги, она обнаружила, что встречалась с тремя типами людей:
- Людям, которым не нравится, не понравилось - Харизматичный мужчина в малых дозах - Харизматичный мужчина в больших дозах
Хелен уже некоторое время собирает данные о свиданиях и каждый раз сохраняет их в текстовом файле dateTest.txt. Каждая выборка данных занимает одну строку, всего 1000 строк. Образец Хелен в основном содержит следующие три характеристики:
- Количество миль для часто летающих пассажиров, заработанных каждый год. - Процент времени, проведенного за видеоиграми - литров мороженого, потребляемых в неделю
Формат данных показан на рисунке: ![FQ)W)EEDN2IGI38X]98_$R5.png](Страх 3-Nuggets.byte IMG.com/to S-talent-i-can 3…?) Использование алгоритма KNN, чтобы помочь Хелен классифицировать объекты знакомств: Решается с помощью алгоритма knn в библиотеке sklearn. Шаг 1. Извлеките данные
import numpy as np
from numpy import zeros
from sklearn.neighbors import KNeighborsClassifier, RadiusNeighborsClassifier
import matplotlib as mpl
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
import pandas as pd
from sklearn.metrics import accuracy_score
data = pd.read_csv('datingTest.txt', sep='\t', header=None)
X = data.iloc[:, 0:2]
Y = data.iloc[:, -1]
Шаг 2: Используйте Train_test_split для извлечения данных с пропорцией 0,2 для тестирования
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2)
Шаг 3: Сохраните этикетки
label=[]
for line in Y:
label.append(line)
Последний шаг: обучить тренировочный набор, предсказать тестовый набор и получить точность прогноза.
datalist = np.array(data)
mmat(datalist,label)
model=(KNeighborsClassifier(n_neighbors=7))
model.fit(X_train,Y_train)
predictions=model.predict(X_train)
print(predictions)
print(accuracy_score(Y_train, predictions))