ML

머신러닝 2_1

haribodang 2022. 4. 21. 22:56
반응형

1-1.용어정리

  • 피쳐(Feature) , 속성 피처는 데이터세트의 일반속성, 타겟값을 제외한 나머지 속성을 모두 피처로 칭함
  • 타겟(값),결정(값)(=레이블, 클래스) 지도학습시 데이터의 학습을 위해 주어지는 정답 데이터, 레이블, 클래스 ⇒ 지도 학습 중 분류의 경우 에는 이 결정 값을 레이블 또는 클래스로 칭함.
  • 지도학습 - 정답이 주어진 데이터(Prediction) 를 학습 한 뒤 미지의 정답을 예측하는 방식 (학습데이터세트-학습을 위한 데이터 세트(속성과 결정값(레이블)이 모두 있어야한다.), 테스트데이터세트- 예측 성능을 평가하기 위한 데이터 세트)-- 회기, 분류

사이킷런을 이용하여 붓꽃(Iris) 데이터 품종 예측하기

1-2. 붓꽃 데이터분류 예측 프로세스

  1. 데이터 세트 분리 - 데이터를 학습 데이터와 테스트 데이터로 분리
  2. 모델 학습 - 학습 데이터를 기반으로 ML 알고리즘을 적용해 모델을 학습 시킴
  3. 예측 수행 - 학습된 모델을 이용해 테스트 데이터의 분류를 예측
  4. 평가 - 예측된 결과 값과 테스트 데이터 실제 결과 값을 비교해 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 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있습니다.
iris_data = iris.data

# iris.target은 붓꽃 데이터 세트에서 레이블(결정 값) 데이터를 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)

** 학습 데이터와 테스트 데이터 세트로 분리 **

X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label,
test_size=0.2, random_state=11)

** 학습 데이터 세트로 학습(Train) 수행 **

# DecisionTreeClassifier 객체 생성
dt_clf = DecisionTreeClassifier(random_state=11)

# 학습 수행
dt_clf.fit(X_train, y_train)

** 테스트 데이터 세트로 예측(Predict) 수행 **

# 학습이 완료된 DecisionTreeClassifier 객체에서 테스트 데이터 세트로 예측 수행.
pred = dt_clf.predict(X_test)

pred

** 예측 정확도 평가 **

from sklearn.metrics import accuracy_score
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred))) #accuracy_score(실제레이블데이터세트, 예측 레이블 데이터세트 )

반응형