좌측의 그림처럼 그룹된 데이터들이 존재할때
우측의 그림처럼 새로운 데이터가 저 위치에 나타났을때 어떤 그룹으로 가는게 맞을까
일단 KNN이 무슨 뜻인가
K 는 상수 즉 몇개인지 숫자를 의미한다
Nearest Neighbors 는 가장 가까이 이웃한것을 의미한다
그러므로
가장 가까이에 이웃한 그룹이 어느쪽에 있는지가 관건이다
K 라는 상수를 5라고 지정하면 가장 가까이에 근접한 5개의 데이터를 찾아
더 많이 가까운 데이터쪽으로 합쳐지는것을 뜻한다
물론 짝수라면 2:2, 3:3, 4:4등 결과가 안나올수 있으니 무조건 홀수로 한다
from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors = 3)
코드를 짤때 전의 리니어리그레션과 로지스틱리그레션과 다른점은
클래시파이어 파라미터안에
앞서 말한 상수 K
n_neighbors =
를 지정할 수 있으며
숫자에 따라 결과가 다를 수 있으니 더 좋은 결과가 나올때까지 여러번 해보면 좋겠다
classifier.fit(X_train,y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import confusion_matrix, accuracy_score
cm = confusion_matrix(y_test, y_pred)
cm
array([[50, 8],
[ 3, 39]], dtype=int64)
accuracy_score(y_test,y_pred)
0.89
해당 이웃된 3개를 찾는 결과에선 정밀도가 89%로 나오게 됐다
5개를 찾는 결과에선 88%로 나오며 다르게 나올수 있다는것을 확인했고
좀 더 좋은 결과값을 주는 이웃의 숫자를 찾는것이
중요 하다
'Python > MachineLearning' 카테고리의 다른 글
Decision Tree 의사결정 트리 - 개념 (0) | 2024.04.15 |
---|---|
Support Vector Machine - 개념 (0) | 2024.04.15 |
Logistic Regression - 개념 (0) | 2024.04.15 |
Regression 4) 인공지능 저장 및 사용 (0) | 2024.04.13 |
Regression 3) New 데이터의 예측값은? (1) | 2024.04.13 |