KNN (K-Nearest Neighbors) 알고리즘

2024. 12. 20. 12:54data 공부/데이터전처리

KNN(K-Nearest Neighbors, 최근접 이웃)은 지도학습(supervised learning)에서 사용되는 분류(classification) 및 회귀(regression) 알고리즘 

점 사이의 유클리드 거리를 기반으로 검색

 

 

Usage : 

  • to filter out potential customers who are likely to be VIP members
  • potential churn customers 
  • forecast of Diabetes 

K value: which is used to select the number of neighbors(nearest data points)

  • small K value : reflects the traits of neighbors well, but include high level of noise and null data
  • large K value :  includes large number of neighbors, which minimize the impact of noise and null data, but difficult to reflect the detailed trait of neighbors 
  •  
pd.set_option('display.max_columns', 30)

컬럼이 너무 많아서 안보일 때 

 

꼭 데이터 확인을 통해 total charges 같은 수의 요소가 float, object, 등 맞는지 확인해야 함 

숫자 형태로 바꾸어줘야함

 

gender의 상하위관계를 만들지 않기 위해 column을 분리시킴 

gender는 하나만 보아도 여자인지 남자인지 알 수 있어서 그를 위한 분리가 필요함 

pd.get_dummies(data, columns=['gender'], drop_first = True)

 

scaling

  • standard scaler는 outlier 영향을 받을 수 밖에 없음 
  • robust scaler = qunatile 사용
  • min, max scaler = 0 과 1 로 표현됨. 분포의 특성을 왜곡하지 않음 - 가장 무난 
  • scaling 할 때 종속변수는 빼주고 해야함

 

training code 

최적의 K값 구하기 

 

accuracy score 가 가장 높은 index를 찾고, 그에 해당하는 K 값을 넣어 다시 돌려주기 

 

53이 가장 높았어서, 54를 넣었더니 accuracy score 가 더 높게 나오는 것을 알 수 있음 

 

'data 공부 > 데이터전처리' 카테고리의 다른 글

Decision tree Classifier  (0) 2024.12.24
엑셀 대시보드 만들기  (0) 2024.12.23
Logistic Regression  (1) 2024.12.19
리니어 리그레션 및 예측  (1) 2024.12.19
data 다루기  (0) 2024.12.18