k Nearest Neighber
k=5로 설정하면 5번째까지 가까운 데이터
k값에 따라 결과값이 바뀔 수 있다.
(k=3 -> 세모, k=5 -> 동그라미)
거리를 계산하는 것
단위에 따라 바뀔 수도 있다 - 표준화 필요
from sklearn.datasets import load_iris
iris = load_iris()
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target,
test_size=0.2, random_state=13, stratify=iris.target)
kNN에도 fit이 있으나 프로그래밍 언어 sklearn 절차상 fit을 하는 것 -> 학습할게 없음
DecisionTreeClassifier, RandomForestClassifier, LogisticRegression 같은 fit이 아님
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
from sklearn.metrics import accuracy_score
pred = knn.predict(X_test)
print(accuracy_score(y_test, pred))
from sklearn.metrics import classification_report, confusion_matrix
print(confusion_matrix(y_test, pred))
print(classification_report(y_test, pred))
setosa는 10개 다 맞추고, versicolor는 9개 맞추고 한 개 틀렸는데 virginica라고 했다.
virginica는 10개 다 맞췄다.
"이 글은 제로베이스 데이터 취업 스쿨 강의를 듣고 작성한 내용으로 제로베이스 데이터 취업 스쿨 강의 자료 일부를 발췌한 내용이 포함되어 있습니다."