ОБО МНЕ :

Меня зовут Авинаш Редди, и я учусь на последнем курсе бакалавриата технических наук, и я начал изучать машинное обучение, поэтому я подумал, что лучший способ изучения концепции — это писать блоги. Поэтому я начал писать в блогах, надеюсь, если у кого-то есть предложения, не стесняйтесь знать меня, чтобы каждый мог расти вместе с нами.

ПРИМЕЧАНИЕ. Я новичок в машинном обучении. Если возникнут какие-либо ошибки, пожалуйста, исправьте меня, это поможет мнесамосовершенствоваться.

Введение:

  • KNN используется для прогнозирования проблем классификации
  • Прогноз будет основан на большинстве (если я хочу предсказать, кто человек, мужчина или женщина, тогда точка рядом с человеком будет 3 мужчины и 2 женщины, тогда человек будет считаться МУЖЧИНА )
  • KNN использует уравнения расстояния для прогнозирования выходных данных.

Реализация

из sklearn.neighbors импортировать KNeighborsClassifier

# Создаем массивы для признаков и целевой переменной

# значения преобразуют данные в массив

y = Target_variable.values

X = функция_переменная.значения

knn = KNeighborsClassifier (n_neighbors = n)

knn.fit(X, y) # где модель изучает правила в данных

knn.predict(y) # где он предсказывает новые данные и получает предсказание

Давайте посмотрим на примере, как выбрать значение N

почему нам нужно тщательно выбирать значение n, чтобы избежать недостаточной или чрезмерной подгонки

# Создаем соседей

Neighbours = np.arange(1,13) # Получение массива случайных значений

train_accuracies = {} # пустое расстояние для хранения точности каждых n значений

test_accuracies = {}

для соседа в соседях: # зацикливание всех значений в neighbours

# Настроить классификатор KNN

knn = KNeighborsClassifier(n_neighbors = сосед) # изменение значения n -sin в каждом цикле

# Подходит к модели

knn.fit(X_train, y_train)

# Точность вычислений

train_accuracies[neighbor] = knn.score(X_train, y_train) # Вычисление точности и построение их с помощью n значений

test_accuracies[сосед] = knn.score(X_test, y_test)

print(соседи, ‘\n’, train_accuracies, ‘\n’, test_accuracies)

# Добавить заголовок

plt.title("KNN: переменное количество соседей")

# Точность обучения графику

plt.plot (соседи, train_accuracies.values ​​​​(), метка = «поезд»)

# Точность тестов на графике

plt.plot (соседи, test_accuracies.values ​​(), метка = «тест»)

plt.legend()

plt.xlabel («Количество соседей»)

plt.ylabel («Точность»)

# Показать график

plt.show()

ИЗ ГРАФИКА ВЫШЕ МЫ ВИДИМ, ЧТО ПРОИЗВОДИТЕЛЬНОСТЬ МОДЕЛИ СНИЖАЕТСЯ ПРИ КОЛИЧЕСТВЕ СОСЕДЕЙ В 7