Intro
- 그래프그리기
- KNN
- 유클리디안 거리
그래프 제목
- pyplot 모듈의 title 함수를 사용하여 그래프에 제목을 붙일 수 있음
- title함수 안에 문자열로 제목을 입력하고, fontsize 옵션에 제목의 폰트 사이즈를 지정가능
- 그래프를 그리는 함수와 이름을 붙이는 함수는 하나의 코드 블럭 안에 작성하여 한 번에 실행해야함
- x = data['특성이름'].value_counts().index
- y = data['특성이름'].value_counts()
- plt.bar(x, y)
- plt.title('그래프이름', fontsize = 폰트크기)
축이름 추가
- plt.xlabel('x축이름', fontsize = 폰트크기)
- plt.ylabel('y축이름', fontsize = 폰트크기)
가로로 그리기
plt.barh(x, y)
축두께
x = data['Species'].value_counts().index
y = data['Species'].value_counts()
plt.bar(x, y, width = 두께숫자)
- width의 기본값은 0.8
실습
sns.pairplot(iris)
plt.show()
# 두 개의 그룹으로 나누어져있는 것으로 판단됨
KNN의 의미 ?
- K-최근접 이웃법(K-NN, K-Nearest Neighbors)은 새로운 데이터를 분류하기 위해 사용하는 머신러닝 알고리즘
- 데이터들 사이의 거리를 측정하여 어떤 데이터가 가까운지 파악하고 새로운 데이터를 분류
- 분류를 원하는 새로운 데이터와 가장 가까운 데이터가 A라면 새로운 데이터를 A로 분류
- 기존 데이터의 정답을 알고 있어야 하기 때문에 지도학습 (A)
KNN 과정
- K는 가장 가까운 데이터를 몇 개 까지 찾아보고 결정할지 정하는 숫자
- K가 너무 작은 경우에는 지엽적으로 판단하여 잘못 분류될 수 있습니다. 반대로 K가 너무 크면 여러 분류의 데이터들을 모두 포함해 버려서 정확도가 떨어질 수 있음
- 그리드 서치를 활용하면 K가 몇 일 때 가장 성능이 좋은지 알 수 있음
KNN의 장점과 단점
장점
- 알고리즘이 간단하고 구현이 쉬움
- 수치형 데이터를 분류하는 작업에 적용하기 용이
단점
- 데이터가 큰 경우 계산이 느림
- K-최근접 이웃법은 새로운 데이터가 들어오면 기존 데이터의 거리를 모두 계산한 후 분류 → 게으른 학습법
데이터의 거리 측정 : 유클리디안 거리
- 두 점간의 거리를 자로 잴 수 있다고 생각했을 때, 최단 거리를 계산하는 방법
- A에서 B까지의 직선 거리 = 빗변 길이 = 유클리디안 거리
KNN 실습
KNN 모델 생성
- sklearn.neighbors 패키지에서 KNeighborsClassifier 모듈
- input 특성과 output 특성을 지정해 주고 모델을 설정
- 변수에 .fit 함수를 사용하여 X와 y데이터를 지정해 주면 모델이 완성
from sklearn.neighbors import KNeighborsClassifier
X = data[[input특성들]]
y = data[[output특성]]
knn_model = KNeighborsClassifier()
knn_model.fit(X, y)
score = knn_model.score(X, y)
score
- 완성한 모델에 score 함수를 사용하여 데이터를 적용해 보면 모델이 정답을 맞춘 정확도를 알 수 있음
- X가지고 맞춘 Y 예측값을 실제 y 값과 비교 (이래서 지도학습이라고 하는 것)
'Statistics > ML | Python' 카테고리의 다른 글
머신러닝이 뭐여 9탄 (feat. k-means 군집분석, 연관규칙분석, 신경망) (0) | 2023.02.18 |
---|---|
머신러닝이 뭐여 8탄 (feat. 의사결정나무, 앙상블, 랜덤포레스트) (0) | 2023.02.18 |
머신러닝이 뭐여 6탄 (feat. EDA !! ) (2) | 2023.02.18 |
머신러닝이 뭐여 5탄 (feat. 데이터 종류, 조건을 이용한 추출, 결측치, 이상치) (0) | 2023.02.18 |
머신러닝이 뭐여 4탄 (feat. 반복문, 모듈) (0) | 2023.02.18 |