사이킷런
- 파이썬 기반의 다른 머신러닝 패키지도 사이킷런 스타일의 API를 지향할 정도로 쉽고 가장 파이썬스러운 API를 제공.
- 머신러닝을 위한 매우 다양한 알고리즘과 개발을 위한 편리한 프레임워크와 API를 제공.
- 오랜 기간 실전 환경에서 검증됐으며, 매우 많은 환경에서 사용되는 성숙한 라이브러리.
- 주로 Numpy와 Scipy 기반 위에서 구축된 라이브러리.
머신러닝을 위한 용어 정리
- 피처(Feature), 속성
- 피처는 데이터 세트의 일반 속성.
- 머신러닝은 2차원 이상의 다차원 데이터에서도 많이 사용되므로 타겟값을 제외한 나머지 속성을 모두 피처로 지칭.
- 레이블, 클래스, 타겟(값), 결정(값)
- 타겟값 또는 결정값은 지도 학습 시 데이터의 학습을 위해 주어지는 정답 데이터.
- 지도 학습 중 분류의 경우에는 이 결정값을 레이블 또는 클래스로 지칭.
지도학습 - 분류(Classification)
- 대표적인 지도학습(Supervised Learning) 방법의 하나.
- 지도학습은 학습을 위한 다양한 피처와 분류 결정값인 레이블(Label) 데이터로 모델을 학습한 뒤, 별도의 테스트 데이터 세트에서 미지의 레이블을 예측.
- 즉 명확한 정답이 주어진 데이터를 먼저 학습한 뒤 미지의 정답을 예측하는 방식.
- 학습을 위해 주어진 데이터 세트 = 학습 데이터 세트
- 머신러닝 모델의 예측 성능을 평가하기 위해 별도로 주어진 데이터 세트 = 테스트 데이터 세트
붓꽃 데이터 분류 예측 프로세스
- 데이터 세트 분리: 데이터를 학습 데이터와 테스트 데이터로 분리.
- 모델 학습: 학습 데이터를 기반으로 ML 알고리즘을 적용해 모델을 학습.
- 예측 수행: 학습된 ML 모델을 이용해 테스트 데이터의 분류(즉 붓꽃 종류)를 예측.
- 평가: 예측된 결과값과 테스트 데이터의 실제 결과값을 비교해 ML 모델 성능을 평가.
import sklearn
print(sklearn.__version__)
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
iris = load_iris()
iris_data = iris.data
iris_label = iris.target
print('iris target값:', iris_label)
print('iris target명:', iris.target_names)
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
iris_df['label'] = iris.target
iris_df.head(3)

X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label,
test_size=0.2, random_state=11)
dt_clf = DecisionTreeClassifier(random_state=11)
dt_clf.fit(X_train, y_train)

pred = dt_clf.predict(X_test)
pred

from sklearn.metrics import accuracy_score
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
