* K-최근접 이웃(K-NN; K-Nearest Neighbor)
- 가장 근접하게 있는 데이터 종류에 따라서 해당 데이터의 종류를 정해주는 알고리즘 (유유상종)
- 판별하고 싶은 데이터와 인접한 k개의 데이터를 찾아, 해당 데이터의 라벨이 다수인 범주로 데이터를 분류하는 방식
- k는 '홀수'로 하는것이 좋음. 짝수일 경우 동점 상황이 만들어져 분류할 수 없는 경우가 발생할 수 있기 때문
* K-NN 코딩하기
1) KNeighbors Classifier(분류형)
- 순서: 데이터 분할 - 데이터 표준화 - 데이터 밸런싱 - 모델 생성 - 모델 적용 - 결과값 도출
- X는 이산형 변수만 가지고 있기 때문에, StandardScaler()만 적용
- 오버샘플링 SMOTE 적용
- knn 분류모델 생성: knn_model = KNeighborsClassifier(n_neighbors = 9, metric = "euclidean")
-> k값을 9로 정하고, 값 사이의 거리를 'euclodean'을 통해 구하겠다
- 결과값 확인: accuracy, classification_report
2) KNeighbors Regressor(연속형)
- 순서: 데이터 분할 - 데이터 표준화 - 모델 생성 - 모델 적용 - 결과값 도출
- knn 회귀모델 생성: knn_reg = KNeighborsRegressor(n_neighbors = 9, p = 2)
-> p= 1, manhattan distance(L1) / p=2, euclidean distance(L2) / p = arbitrary(임의), minkowsko distance
- 결과값 확인: accuracy, RMSE
* 의사결정 나무(Decision Tree)
- 분류함수를 의사결정 규칙으로 이루어진 나무 모양으로 그리는 방법(얼마나 연관성이 없도록 쪼갰느냐)
- 제일 마지막 노드에는 더이상 겹치는 것 없이 0과 1로 분류됨
- 변수 분할의 기준: CART(이산형), C4.5(연속형)
- Decision Tree 모델을 사용하는 이유
"이해하기 쉽다"
1) 사람의 사고능력을 모방한 결정방식이기 때문
(Decision Trees usually mimic human thinking ability while making a decision, so it is easy to understand.)
2) 트리모양의 구조를 가지는 의사결정 나무에 기반한 논리이기 때문
(The logic behind the decision tree can be easily understood because it shows a tree-like structure.)
* Decision Tree 코딩하기
1) DecisionTree Classifier(분류형)
- 순서: 데이터 분할 - (데이터 표준화) - 데이터 밸런싱 - 모델 생성 - 모델 적용 - 결과값 도출
- DT 분류모델 생성: DT_model = DecisionTreeClassifier(random_state = 0, max_depth = 3)
- 결과값 확인: accuracy, classification_report
- .feature_importance(): 변수 중요도 알아보는 함수. 수치가 높게 나올수록 중요도가 높은(Y에 영향을 많이 주는) 변수
2) DecisionTree Regressor(연속형)
- 순서: 데이터 분할 - (데이터 표준화) - 모델 생성 - 모델 적용 - 결과값 도출
- DT 회귀모델 생성: DT_model_reg = DecisionTreeRegressor(random_state = 0, max_depth = 5)
- 결과값 확인: accuracy, RMSE
<사진 출처>
https://m.blog.naver.com/bestinall/221760380344
https://medium.com/swlh/k-nearest-neighbor-ca2593d7a3c4
https://www.javatpoint.com/machine-learning-decision-tree-classification-algorithm
https://towardsdatascience.com/from-a-single-decision-tree-to-a-random-forest-b9523be65147
https://mlarchive.com/machine-learning/decision-trees-and-random-forest-all-you-need-to-know/