728x90

sklearn

- 파이썬에서 머신러닝을 사용하기 위한 api들을 제공함.

- 전처리, 데이터셋, 군집화, 분류, 회귀 등

 

 

붓꽃 문제 다루기

 

라이브러리 import

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

 

 

아이리스 데이터 읽기 및 확인

- sklearn의 load함수로 호출한 데이터셋은 bunch타입

- sklearn.utils.Bunch의 DESCR에서 해당 데이터셋에대한 설명 

 

 

bunch 데이터를 데이터 프레임으로 변환 및 확인

- 머신러닝 알고리즘을 적용하기위해 데이터프레임 데이터로 변환

df = pd.DataFrame(columns=data.feature_names, data=data.data)
df["label"] = data.target
df.head()

 

 

데이터 분할하기

- 훈련용 데이터와 테스트용 데이터 분할

- sklean.model_selection의 train_test_split()함수 사용

- train_test_split(X, y, test_size=None)

  -> test_size에는 전체 데이터프레임의 비율 지정. 0.2의 경우 20%

 

from sklearn.model_selection import train_test_split

X = df.iloc[:,:-1]
y = df["label"]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

 

 

 

학습 모델

- Estimator 클래스

  -> Classifier, Regressor 등

- Estimator.fit(X, y)

  - X, y 데이터로 학습

- Estimator.predict(X)

 - 주어진 X 데이터로 예측

 

 

학습 모델 사용하기

- 본 붓꽃 문제는 특징들을 이용한 분류 문제. 의사결정트리 사용

- 의사결정 트리는 sklearn의 tree에 있음.

 

 

from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()

clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

 

 

 

모델 성능 척도

- 정확도, 재현률, MSE 등 존재

- 다음 경우 estimator.score()와 정확도, MSE 사용

from sklearn.metrics import accuracy_score
from sklearn.metrics import mean_squared_error


print("decision tree score using train : {}".format(clf.score(X_train, y_train)))
print("decision tree score using test : {}".format(clf.score(X_test, y_test)))
print("accuracy : {}".format(accuracy_score(y_test, y_pred)))
print("MSE : {}".format(mean_squared_error(y_test, y_pred)))

 

 

 

 

 

300x250

+ Recent posts