728x90
반응형

붓꽃 데이터 세트

  • 꽃잎의 길이와 너비, 꽃받침의 길이와 너비 피처(Feature)를 기반으로 꽃의 품종을 예측하기 위한 것

 

지도학습

  • 학습을 위한 다양한 피처와 분류 결정값인 레이블(Label) 데이터로 모델을 학습한 뒤, 별도의 테스트 데이터 세트에서 미지의 레이블을 예측한다.
  • 명확한 정답이 주어진 데이터를 먼저 학습한 뒤 미지의 정답을 예측하는 방식
# 사이킷런 import

from sklearn.datasets import load_iris # 붓꽃 데이터
from sklearn.tree import DecisionTreeClassifier # tree내의 모듈을 트리 기반 ML 알고리즘을 구현한 클래스 모임
from sklearn.model_selection import train_test_split # 학습 데이터와 검증 데이터, 예측 데이터로 데이터를 분리하거나 최적의 하이퍼 파라미터로 평가하기 위한 다양한 모듈의 모임
# 데이터 DataFrame으로 변경

import pandas as pd

# 붓꽃 데이터 세트를 로딩한다.
iris = load_iris()

# iris.data는 iris 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있다.
iris_data = iris.data

# iris.data는 iris 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있다.
iris_label = iris.target
print('iris target 값 : ', iris_label)
print('iris target 명 : ', iris.target_names)

# 붓꽃 데이터 세트를 자세히 보기 위해 DataFrame으로 변환
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
iris_df['label'] = iris.target
iris_df.head(3)

[그림1] 붓꽃 데이터 세트 확인

 

훈련 데이터, 테스트 데이터 분리

x_train, x_test, y_train, y_test = train_test_split(iris_data, iris_label,
                                                   test_size = 0.2, random_state=11)
  • test_size = 0.2는 전체 데이터 세트 중 테스트 데이터 세트의 비율
  • random_state = 11 random값을 만드는 seed와 같은 의미다.

 

# DecisionTreeClassifier 객체 생성
# 사이킷런 의사 결정 트리 클래스

df_clf = DecisionTreeClassifier(random_state=11)
# 학습 수행

dt_clf.fit(x_train, y_train)

 

예측 수행

# 학습 완료된 .DecisionTreeCLassifier 객체에서 테스트 데이터 세트로 예측 수행.
pred = dt_clf.predict(x_test)
  • predict() 메서드에 테스트용 피처 데이터 세트를 입력해 호출하면 학습된 모델 기반에서 테스트 데이터 세트에 대한 예측값을 반환하게 된다.
# 정확도 측정 

from sklearn.metrics import accuracy_score

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

[그림2] 정확도 측정

 

 

  1. 데이터 세트 분리 : 데이터를 학습 데이터와 테스트 데이터로 분리
  2. 모델 학습 : 학습 데이터를 기반으로 ML 알고리즘을 적용해 모델을 학습시킨다.
  3. 예측 수행 : 학습된 ML 모델을 이용해 테스트 데이터의 분류(즉, 붓꽃 종류)를 예측한다.
  4. 평가 : 이렇게 예측된 결괏값과 테스트 데이터의 실제 결괏값을 비교해 ML 모델 성능을 평가한다.
728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기