최근접 이웃 알고리즘(K-NN)
어떠한 레이블링 되어있는 데이터에 새로운 데이터가 생겼을때
이데이터가 과연 어느쪽과 가까운지를 판단하는 알고리즘
인접한 데이터를 인공지능이판단하여 비슷한 속성으로 데이터를 진단해줌
동일하게 연봉과 나이 성별, 구매여부가 있는 데이터
이데이터를 KNN 머신러닝을 통해
새로운데이터가 나타났을때 구매한 쪽과 구매하지 않은쪽과 어느쪽이 더 가까운 이웃인지 분류를 통해 예측하기
트레이닝 기본
1. nan확인
2.x와y분리
3.문자열이 있다면 숫자로 바궈주기
4.피셔츠케일링을 통해 값 맞춰주기
5.트레이닝 / 테스트 셋으로 분리시키기
----------------------------------------------------------
6.모델링하기
7.성능평가
[머신러닝0] 머신러닝의 기초(총정리) (tistory.com)
from sklearn.neighbors import KNeighborsClassifier
KNeighborsClassifier()
파라미터를 사용하기 위해선 sklearn의 라이브러리를 import하고
파라미터변수 = KNeighborsClassifier()
스플릿해준 트레이닝용 x데이터와 y데이터를 넣어준다
이렇게 트레이닝한 인공지능의 성능을 확인해볼때
컨퓨전 메트릭스, accuracy_score 를통해 확인하면 좋음
from matplotlib.colors import ListedColormap
X_set, y_set = X_test, y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1,
stop = X_set[:, 0].max() + 1, step = 0.01),
np.arange(start = X_set[:, 1].min() - 1,
stop = X_set[:, 1].max() + 1, step = 0.01))
plt.figure(figsize=[10,7])
plt.contourf(X1, X2, classifier.predict(
np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Classifier (Test set)')
plt.legend()
plt.show()
array([[50, 8],
[ 4, 38]],
초록구역안에 빨간점 8개 빨간영역에 초록점 4개 확인
모델링 from sklearn.neighbors import KNeighborsClassifier classifier = KNeighborsClassifier() n_neighbor = n 이웃하는 숫자 표시 classifier.fit(X_train, y_train) |
'인공지능 > 머신러닝' 카테고리의 다른 글
가장 적합한 매개변수찾기: grid search (0) | 2022.12.02 |
---|---|
[머신러닝4] Support Vector Machine (0) | 2022.12.02 |
머신러닝중 샘플표본이 부족할때: oversampling (0) | 2022.12.02 |
[머신러닝2] 범주형 변수예측: Logistic Regression (0) | 2022.12.02 |
[머신러닝1] 수치예측: regression (0) | 2022.12.01 |