머신러닝 용어, 기본 개념. 학습데이터? 테스트 데이터? 머신러닝 계의 Hello World인 붓꽃(load_iris) 연습하기.

2023. 6. 25. 15:30python

반응형

 

ML 모델 : Machine Learning Model.

Feature : 데이터 세트의 일반적인 속성.

 

 

 

학습데이터(Training Data)

레이블(타겟값) : 피처에 기반해서 학습을 기반으로 답을 학습을 하는 것. 어떤 특성의 라벨링을 붙인 것.

 

테스트 데이터(Test data)

이 때는 Feature들만 주고 답이 없다. Feature를 기반으로 레이블을 예측을 한다.

 

그래서 예측을 한 레이블의 값과 테스트 데이터에 실제 값을 비교하여 ML 모델이 얼마나 잘 만들어졌는지에 대한 것을 평가한다.

 

 

import sklearn
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

iris = load_iris()
iris_data = iris.data
#레이블이라고도 함.
iris_target = iris.target
iris_target_names = iris.target_names


print('iris\'s target : ',iris_target)
print('iris\'s target name : ',iris_target_names)

iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
iris_df['label'] = iris.target
iris_df.head(3)

print(iris.data.shape)
print(iris.feature_names)

#학습용 피처데이터, 테스트용 피처데이터, 학습용 target, 테스트용 target
# train_test_split 이라는 함수를 쓰는거임. 파라미터가 4개 있음.
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size=0.2, random_state=11)

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

# 학습 수행
# 학습용 피처, 학습용 타겟.
dt_classifier.fit(X_train, y_train)

#DecisionTreeClassifier에 predict라는 함수가 있는 것이다. predict로 예측 레이블을 뽑는다.
# 학습이 완료된 DecisionTreeClassifier 객체에서 테스트 데이터 세트로 예측 수행.
#150개 중에 0.2니까 30개의 결과 나올거고,
# training data로 학습을 한 다음에 test data로 결과치 예측을 하는 것이고, y_test에 정답이 있어서. 걔랑 비교를 하는 것이다.
pred = dt_classifier.predict(X_test)

iris_data.keys() 하면 key값에 대한 정보들이 나온다.

 

 

feature_names : 각 컬럼명.

data : feature들.

target은 보통 0,1,2,3,4 이런 식으로 구분 되어있고

iris 같은 경우에는 target_names가 있을 수 있음.

 

print('예측 정확도:',(accuracy_score(y_test, pred)))

accuray_score라는 것을 이용해서 사용한다.

 

 

728x90