Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
250x250
Tags
- [멀티잇]데이터 시각화&분석 취업캠프(Python)
- 빅데이터분석기사
- 데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- 기초다지기
- boostcoures
- 이기적
- Ai
- 코딩테스트 python
- DB
- Oracle
- 부스트코스
- 오라클
- 네이버부스트캠프
- PY4E
- SQL
- r
- 프로그래머스
- AI 플랫폼을 활용한 데이터 분석
- Machine Learning
- 데이터베이스
- 빅데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- 파이썬
- 빅분기
- 인공지능기초다지기
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- 정보처리기사
- boostcourse
- 코딩테스트
- 난생처음 R코딩&데이터 분석 저서
- python
- Today
- Total
매일공부
[sklearn] kNN(k-Nearest Neighbors) 본문
k-최근접 이웃(KNN) 분류
- 게으른 학습기
- 지도 학습에 활용되는 가장 단순한 종류의 알고리즘
- 주어진 개수만큼 가까운 멤버들과 비교하여 그룹으로 분류 (Nearest Neighbour)
- 모델 훈련X == new data가 들어오면 그때그때 분류
- 가장 가까운 k 개의 샘플에서 다수의 클래스를 그 샘플의 클래스로 예측
- 데이터와 데이터 사이의 거리를 구해야 함
> https://cafe.naver.com/soojebi/151442 의 문제
1. K값에 따라 결과가 달라질 수 있다.
2. 학습 절차 없이 새로운 데이터가 들어 올때 거리를 측정한다.
3. 거리 기반의 모형이므로 예측 변수에 대한 표준화가 필요하다.
KNeighborsClassifier(n_neighbors, p, metric, ...)
- metric : 사용할 거리 측정 방법을 지정
='minkowski' : 유클리드 거리(Euclidean distance) 와 맨하튼 거리(Manhattan distance)를 일반화 한 것
- p
=1 ( 맨하튼 거리: 격자를 이루는 선이 길이라고 생각하고 그 길이를 따라 잰 거리 )
=2 ( 유클리드 거리: 좌표계에 두 점이 있을 때 두 지점의 최단거리 )
- n_jobs : 컴퓨터 코어를 사용할지 결정
- algorithm : 가장 가까운 이웃을 계산하기 위한 방법
- weights : 가중치 부여
= 'distance' : 멀리 떨어진 샘플보다 가까운 이웃의 투표에 가중치 더 부여
- radius
: 고정 영역의 반지름을 지정하여 이웃 샘플 결정
( 샘플의 클래스가 주어진 반지름 r 이내에 있는 모든 샘플의 클래스로부터 예측)
- outlier_label : 반지름 내에 다른 샘플이 하나도 없는 샘플에 부여할 레이블 지정
#K-nearest neighbors 하이퍼파라미터
- n_neighbors: int, default=5
- weights: {‘uniform’, ‘distance’} or callable, default=’uniform’
- algorithm: {‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, default=’auto’
- leaf_size: int, default=30
- p: int, default=2
- KNeighborsClassifier
예시코드]
from sklearn.neighbors import NearestNeighbors
hyperparameters = {
'n_neighbors' : list(range(1,5)),
'weights' : ['uniform', 'distance'],
'algorithm' : ['auto', 'ball_tree', 'kd_tree', 'brute'],
'leaf_size' : list(range(1,10)),
'p' : [1,2]
}
* 내용참고&출처 : 태그의 수업을 복습 목적으로 정리한 내용입니다.
728x90
'IT > ML' 카테고리의 다른 글
[Machine Learning] 군집분석; Hierarchical clustering (0) | 2022.11.17 |
---|---|
[Machine Learning] Sampling (0) | 2022.11.11 |
[Machine Learning] Boost(AdaBoost, GBM, XGBoost, LightGBM, Catboost, Stacking) (0) | 2022.11.11 |
[sklearn] Naïve Bayes 나이브 베이즈 (0) | 2022.11.10 |
[sklearn] SVM(Support Vector Machine) (0) | 2022.11.09 |
Comments