붓꽃(iris) 예제 예측 정확도

김도원·2022년 1월 13일
0

1. DataFrame의 data로 학습

from sklearn.datasets import load_iris               # 붓꽃 예제 데이터 로딩
from sklearn.tree import DecisionTreeClassifier      # ML 알고리즘 로딩
from sklearn.model_selection import train_test_split # 학습/검증 데이터 분리
from sklearn.metrics import accuracy_score           # 예측 정확도 확인
import pandas as pd                                  # DataFrame을 위한 호출

iris = load_iris()       # iris Data Set
iris_data = iris.data    # data(feature)만 
iris_label = iris.target # target(label)만

iris_df = pd.DataFrame(data = iris_data, columns = iris.feature_names)
# 추출한 Data를 DataFrame으로(컬럼 명을 Data set의 feature name)
iris_df['label'] = iris_label

X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label, 
                                                    test_size = 0.2, random_state = 11)
# 과적합 방지를 위해 학습/검증 Data 분리(학습 : 80% / 검증 : 20%)

clf = DecisionTreeClassifier(random_state = 11)
# ML 알고리즘 호출

clf.fit(X_train, y_train)
# 학습 완료

pred = clf.predict(X_test)
# 검증 데이터를 통해 예측한 결과를 반환

predaccur = accuracy_score(y_test, pred)

print("iris example Data를 DTC를 통해 예측 해본 결과, 정확도는 {0:.4f}".format(predaccur))


2. Data set의 data로 학습

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

iris = load_iris()
dt_clf = DecisionTreeClassifier()
train_data = iris.data
train_label = iris.target

# 학습 수행
dt_clf.fit(train_data, train_label)

# 학습 데이터 셋으로 예측 수행
pred = dt_clf.predict(train_data)
print("모든 데이터를 통한 예측 정확도 : {}".format(accuracy_score(train_label, pred)))

# 학습/검증 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(train_data, train_label
                                                    ,test_size = 0.3, random_state = 121)
# 학습 수행
dt_clf.fit(X_train, y_train)

# 학습 데이터 셋으로 예측 수행
pred = dt_clf.predict(X_test)
print("train_test_split 사용 후 예측 정확도 : {0:.4f}".format(accuracy_score(y_test, pred)))

profile
빙빙 돌아가는 회전목마처럼

0개의 댓글