-
Python 데이터분석 기초 69 - K-NN (K-Nearest Neighber)Python 데이터 분석 2022. 11. 25. 10:05
• 장점 :
알고리즘이 간단해 구현이 쉽다.
수치 기반 데이터 분류 작업에서 성능이 좋다.
• 단점 :
학습 데이터의 양이 많으면 분류 속도가 느려진다.
차원(벡터)의 크기가 크면 계산량이 많아진다.
아웃라이어의 영향을 많이 받는다.
단위의 차이가 크면 성능이 낮다.
과적합이 발생활 확률이 높다.
K-NN은 스케일링을 추천한다.
KNN : K최근접 이웃 알고리즘
레이블이 있는 데이터를 사용하여 분류 작업을 하는 알고리즘이다. 데이터로부터 거리가 가까운 k개의
다른 데이터의 레이블을 참조하여 분류한다. 대개의 경우에 유클리디안 거리 계산법을 사용하여 거리를
측정하는데, 벡터의 크기가 커지면 계산이 복잡해진다.# KNN : K최근접 이웃 알고리즘 # 레이블이 있는 데이터를 사용하여 분류 작업을 하는 알고리즘이다. 데이터로부터 거리가 가까운 k개의 # 다른 데이터의 레이블을 참조하여 분류한다. 대개의 경우에 유클리디안 거리 계산법을 사용하여 거리를 # 측정하는데, 벡터의 크기가 커지면 계산이 복잡해진다. import matplotlib.pyplot as plt from sklearn.neighbors import KNeighborsClassifier train = [ [5, 3, 2], [1, 3, 5], [4, 5, 7] ] label = [0, 1, 1] # plt.plot(train, 'o') # plt.xlim([-1, 5]) # plt.ylim([0, 10]) # plt.show() kmodel = KNeighborsClassifier(n_neighbors=3, weights='distance', p=2) kmodel.fit(train, label) pred = kmodel.predict(train) print('예측값 :', pred) print('실제값 :', label) print('정확도 : {:.2f}'.format(kmodel.score(train, label))) new_data = [[1, 2, 8], [6, 3, 1]] new_pred = kmodel.predict(new_data) print('new_pred :', new_pred) <console> 예측값 : [0 1 1] 실제값 : [0, 1, 1] 정확도 : 1.00 new_pred : [1 0]
'Python 데이터 분석' 카테고리의 다른 글
Python 데이터분석 기초 71 - Perceptron(퍼셉트론, 단층신경망) (0) 2022.11.25 Python 데이터분석 기초 70 - K-NN (K-Nearest Neighber) (0) 2022.11.25 NaiveBayes 분류모델 - GaussanNB 예제 (0) 2022.11.24 날씨 정보로 나이브에즈 분류기 작성 - 비 예보 (0) 2022.11.24 Python 데이터분석 기초 69 - NaiveBayes 분류모델 (0) 2022.11.24