파이썬 머신러닝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()
결과
반응형