1. iris 품종 데이터를 사용하여 분류하기!

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris = load_iris()

# stratify -> 구성비율 맞추기
# 테스트 세트 훈련세트 나누기
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)

위와 같이 load_iris를 통해 iris 데이터를 불러왔습니다. 그리고 훈련세트와 테스트세트로 나눠 줬습니다.


2. KNeighborsClassifier 사용하고 정확도 확인해보기!

from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)

pred = knn.predict(X_test)
print(accuracy_score(y_test, pred))

결과는 0. 966으로 높은 정확도가 나왔습니다. 하지만 predict를 할 때 시간이 매우 많이 걸릴 수 있습니다.

그 이유는 알고리즘은 모든 데이터와 새로운 데이터의 거리를 계산하고 가장 가까운 것을 찾기 때문입니다.


3. Classifier_report와 confusion_matrix를 사용하여 더 정확하게 모델 평가하기!

from sklearn.metrics import classification_report, confusion_matrix

print(confusion_matrix(y_test, pred))
print(classification_report(y_test, pred))
# recall값과 precision이 높은 것을 확인 할 수 있습니다.

코드 결과

위의 코드 결과 와 같이 꽤나 높은 정확도를 보여주고 있습니다.

그리고 classification_report의 결과에서 인덱스는 각각 0: setosa, 1: versicolor, 2: virginica 입니다.(iris.target_name으로 확인 가능!!)


보는 것과 같이 확실히 단순한 코드에서 분류하는 것은 높은 정확도를 보여주고 매우 간단한 것을 확인 할 수 있었습니다.

이상입니다

 

이 글은 제로베이스 데이터 분석 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

728x90
hmm06