ОБО МНЕ :
Меня зовут Авинаш Редди, и я учусь на последнем курсе бакалавриата технических наук, и я начал изучать машинное обучение, поэтому я подумал, что лучший способ изучения концепции — это писать блоги. Поэтому я начал писать в блогах, надеюсь, если у кого-то есть предложения, не стесняйтесь знать меня, чтобы каждый мог расти вместе с нами.
ПРИМЕЧАНИЕ. Я новичок в машинном обучении. Если возникнут какие-либо ошибки, пожалуйста, исправьте меня, это поможет мнесамосовершенствоваться.
Введение:
- 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