-
KNN (k-neareast neighbor) 분류모델 in pythondata-science-summary/summary 2020. 9. 19. 17:51반응형
<엔지니어는 구현을 못하면 모르는것이다>
KNN (k-neareast neighbor) 분류모델
근처 k개의 가장 가까운 훈련 데이터로 값을 예측하는방법
궁금한 데이터 주변 K 개의 데이터의 클래스가 1 이 제일 많으면 1 이 됨
거리 측정하는 방식에는 유클리디안방식, 맨헤탄 방식등이 있다.
보통 판정하기위해 K 는 홀수로 측정한다.
장점은 쉽고 직관적이고 샘플수가 많은경우 높은 정확도를 가지고 있다.
단점은 느리다.
# KNN (k-neareast neighbor) 분류모델 from sklearn.neighbors import KNeighborsClassifier X = [[0,1,2], [1,3,5], [1,10,10],[1,2,2],[1,3,4],[2,7,8], [3,3,10]] y = [0, 0, 1, 0,0,1,1] # 유클리디안방식 knn = KNeighborsClassifier(n_neighbors=3, metric='euclidean') knn = KNeighborsClassifier(n_neighbors=3, p=2) # 맨헤탄 방식 knn = KNeighborsClassifier(n_neighbors=3, metric='manhattan') knn = KNeighborsClassifier(n_neighbors=3, p=1) # 학습 knn.fit(X, y) test_x = [[1,2,3],[1,9,9]] test_y = [0, 1] # 예측 knn.predict(test_x) import numpy as np # k 에 따른 정확도 k = np.arange(1,8)[::2] acc =[] for i in k: knn =KNeighborsClassifier(n_neighbors=i).fit(X,y) acc.append(knn.score(test_x, test_y)) for i,j in zip(k,acc): print('k가 '+ str(i)+'일때 정확도는 ' + str(j))
반응형'data-science-summary > summary' 카테고리의 다른 글
SVM (Support Vector Machine) in python (0) 2020.09.20 나이브 베이지안 분류 (Naive Bayes Classifier) in python (0) 2020.09.19 variance 와 bias 관계 간단 정리 (0) 2020.09.19 분류 성능 측정하는법 Accuracy, Precision, Recall, F1 score, ROC, AUC in python (0) 2020.09.19 문자형을 인트형로 바꾸는법 label encoder in python (0) 2020.09.19