파이썬 머신러닝ML

파이썬 KNeighborsClassifier KNN 분류 실습

양기호니 2022. 11. 7. 20:55
728x90
반응형

혼자 공부하려고 정리했어요~

 

np.random.randint() 함수 활용

무작위수 30X2 (2set 생성)

 

임의 점을 생성하여

KNeighborsClassifier()를 활용하여 어디에 포함되는지 분류하기

 

import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.utils import shuffle
import matplotlib.pyplot as plt
np.random.seed(55) #55번의 seed로 랜덤하게 뽑아봐
red = np.random.randint(10, 80, (30, 2)) #30행 2열로 10~80 사이의 임의 숫자 발행
blue = np.random.randint(90, 150, (30, 2))
X = np.vstack((red, blue)).astype(np.float32) #red 30행 2열 + blue 30행 2열 쌓는다
y = np.zeros(60)
y[:30] = 1 # 1:red, 0:blue 으로 변경
X, y = shuffle(X, y, random_state=0) #무작위 섞기
plt.plot(X[y==1,0], X[y==1,1], 'r^') # y가 1인거 X 가져와
plt.plot(X[y==0,0], X[y==0,1], 'bs')# y가 0인거 X 가져와
what_dot = np.random.randint(10, 150, (1,2)) #임의점 생성 1행 2열 
plt.plot(what_dot[:,0], what_dot[:,1], 'go') # 초록색 둥근점 찍어줭
 
knn = KNeighborsClassifier()
knn.fit(X, y)
y_pred = knn.predict(what_dot)
 
print("점은 무슨 색일까?", y_pred)
plt.annotate('red' if y_pred==1 else 'blue', xy=what_dot[0], fontsize=30) #xy 위치에 글표시
plt.show()

결과

반응형