사이킥런 - 붓꽃 품종 예측

IngCoding·2022년 2월 24일
0
import sklearn

* 필요모듈 로딩 estimator 알고리즘

from sklearn.datasets import load_iris   # (부모) 사이킷런 데이터셋에서  (자식import) 데이터이름
from sklearn.tree import DecisionTreeClassifier      # 의사결정나무 (분류 알고리즘)
from sklearn.model_selection import train_test_split # 학습,테스트 분류

데이터 세트 로딩

import pandas as pd

# 붓꽃 데이터 세트 (2차원 배열)
iris = load_iris()

# 구분
# 독립변수 (독립된 원인변수, 피처, 변수 .. )
iris_data = iris.data

# 종속변수 (종속된 결과값, 타겟, 레이블 .. )
iris_label = iris.target
# 붓꽃 데이터 세트 DF 변환
    # 독립변수(피처)를 DF로 변환하고
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
    # 종속변수(label)을 마지막 컬럼으로 추가
iris_df['label'] = iris_label
iris_df.head(2)
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) label
0 5.1 3.5 1.4 0.2 0
1 4.9 3.0 1.4 0.2 0

학습 / 테스트 데이터 분리

150
train : 0.8 150 = 120 --> (X_train, y_train) 학습 -> 모델
test : 0.2
150 = 30 --> (X_test, y_test) 예측 -> 평가지표

# 4등분(학습:독립,종속 / 테스트:독립,종속)
    # test_size는 0.2, random_state로 랜덤값 배정
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label, test_size = 0.2, random_state=11)

train_data fit 수행

# 의사결정나무(특성별 중요도평가) 객체 형성 (신생아)
dt_clf = DecisionTreeClassifier(random_state=11)

# 학습수행 (데이터에 학습 알고리즘을 적용 -> 학습모델 생성)
    # 풀고 답보고 반복 -> dt_clf에 학습모델로 성장
dt_clf.fit(X_train, y_train)
DecisionTreeClassifier(random_state=11)

test_data predict 수행

pred = dt_clf.predict(X_test)
    # 학습된 모델에 X_test 자료를 넣어봄
    # 이것이 y_test 값을 얼마나 맞추는가? (pred 값 산출)

예측 정확도 평가

print(y_test) # 정답
print(pred)   # 모델을 통해 예측한 값
print(28/30)
[2 2 2 1 2 0 1 0 0 1 2 1 1 2 2 0 2 1 2 2 1 0 0 1 0 0 2 1 0 1]
[2 2 1 1 2 0 1 0 0 1 1 1 1 2 2 0 2 1 2 2 1 0 0 1 0 0 2 1 0 1]
0.9333333333333333
from sklearn.metrics import accuracy_score
    # 정확도 측정 모듈 활용
print(f'예측 정확도: {accuracy_score(y_test, pred):.4f}')
예측 정확도: 0.9333
profile
Data & PM

0개의 댓글