스터디📖/ML, DL

머신러닝 처음 시작하기(인프런) - 13강 knn 구현

호프 2021. 8. 12. 23:19

https://www.inflearn.com/course/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%B2%98%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/dashboard

 

머신러닝 처음 시작하기 (기초 원리 + 초급 실습) - 인프런 | 강의

머신러닝을 처음 접하는 사람들을 대상으로 기초적인 머신러닝 이론을 간략하게 다룬 머신러닝 기초 강의입니다., 그것이 알고 싶다!요새 핫한 머신러닝 🤖 [사진] 🗒 강의소개 (이 강의는 강

www.inflearn.com

13강 knn 구현

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

iris = load_iris()
iris.keys()
iris.target_names
iris.feature_names 
iris.target #데이터 정보 확인하는 것..

#데이터 나누기
from sklearn.model_selection import train_test_split
X = iris.data
y = iris.target
X_train, X_tst, y_train, y_test = train_test_split(X, y, test_size=0.3)

#KNN
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors = 5) #neighbor 수 정하기
knn.fit(X_train, y_train) #훈련

from sklearn import metrics
print("Accuracy: ", knn.score(X_test, y_test))

#K 구하기
k_range = range(1,50) #k 범위
scores = {}
scores_list = []
for k in k_range: #k의 지정해놓은 범위 내에서 어떤 K 값이 가장 정확도가 높은지 찾는 과정
    knn = KNeighborsClassifier(n_neighbors = k)
    knn.fit(X_train, y_train)
    y_prediction = knn.predict(X_test)
    scores[k] = metrics.accuracy_score(y_test, y_prediction)
    scores_list.append(metrics.accuracy_score(y_test, y_prediction))

#그래프 출력
plt.plot(k_range, scores_list)
plt.xlabel('K값')
plt.ylabel('Accuracy')