1.8 요약

1.7 첫 번째 애플리케이션: 붓꽃의 품종 분류 | 목차 | 2 지도 학습

­

우리는 머신러닝과 머신러닝 애플리케이션에 대한 간략한 소개에서 시작해, 지도 학습과 비지도 학습 차이를 설명하고, 이 책에서 사용할 도구를 간략히 둘러보았습니다. 그리고 실측한 자료를 사용하여 붓꽃의 품종이 무엇인지 예측하는 작업을 자세히 묘사했습니다. 모델을 구축하기 위해 전문가가 정확한 품종으로 구분해놓은 데이터셋을 사용했으므로 지도 학습에 해당하는 문제입니다. 또한 품종이 세 개(setosa, versicolor, virginica)이므로 세 개의 클래스를 분류하는 문제입니다. 분류 문제에서는 각 품종을 클래스라고 하며 개별 붓꽃의 품종은 레이블이라고 합니다.

붓꽃 데이터셋은 두 개의 NumPy 배열로 이뤄져 있습니다. 하나는 데이터를 담고 있으며 scikit-learn에서는 X로 표기합니다. 다른 하나는 정확한 혹은 기대하는 출력을 가지고 있으며 y로 표기합니다. 배열 X는 특성들의 2차원 배열이므로 각 데이터 포인트는 행 하나로 나타나고, 각 특성은 열 하나가 됩니다. 배열 y는 1차원 배열로 각 샘플의 클래스 레이블에 해당하는 0에서 2 사이의 정수를 담고 있습니다.

이 데이터셋을 모델 구축에 사용할 훈련 세트와 모델이 새로운 데이터에 얼마나 잘 적용될 수 있을지 평가하기 위한 테스트 세트로 나눴습니다.

k-최근접 이웃 분류 알고리즘은 새 데이터 포인트를 예측하기 위해 훈련 데이터에서 가장 가까운 이웃을 선택합니다. 이 알고리즘은 KNeighborsClassifier 클래스에 구현되어 있으며 모델을 만드는 것은 물론 예측하는 기능도 제공합니다. n_neighbors 매개변수를 지정해 이 클래스의 객체를 만들었습니다. 그리고 훈련 데이터(X_train)와 훈련 데이터의 레이블(y_train)을 매개변수로 하여 fit 메서드를 호출해 모델을 만들었습니다. 그런 다음 모델의 정확도를 계산하는 score 메서드로 모델을 평가했습니다. 테스트 데이터와 테스트 데이터의 레이블을 score 메서드에 넣어 97% 정확도를 얻었습니다. 이는 테스트 세트에 있는 샘플의 97%를 정확히 맞혔다는 뜻입니다.

이 결과는 새로운 데이터(여기서는 새 붓꽃의 측정값)에 이 모델을 적용해도 좋다는 확신을 주며, 대략 97% 확률로 이 모델을 신뢰할 수 있습니다.

다음은 훈련과 평가의 과정을 담은 전체 코드입니다.

In[32]:

X_train, X_test, y_train, y_test = train_test_split(
    iris_dataset['data'], iris_dataset['target'], random_state=0)

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

print("테스트 세트 정확도: {:.2f}".format(knn.score(X_test, y_test)))

Out[32]:

테스트 세트 정확도: 0.97

이 짧은 코드에는 scikit-learn의 머신러닝 알고리즘들이 가진 핵심이 담겨 있습니다. fit, predict, score 메서드는 scikit-learn 지도 학습 모델의 공통 인터페이스입니다. 이 장에서 소개한 개념과 함께 이런 모델들을 많은 머신러닝 작업에 적용할 수 있습니다. 다음 장에서는 scikit-learn에 있는 다른 종류의 지도 학습 모델에 대한 상세 내용과 올바른 적용 방법을 살펴보겠습니다.


1.7 첫 번째 애플리케이션: 붓꽃의 품종 분류 | 목차 | 2 지도 학습

이 글은 한빛미디어에서 출간한  “파이썬 라이브러리를 활용한 머신러닝“의 1장과 2장입니다. 이 책의 저작권은 한빛미디어(주)에 있으므로 무단 복제 및 무단 전제를 금합니다.

 

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중