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
'인공지능' 카테고리의 다른 글
파이썬머신러닝 - 4. 데이터 전처리 : 인코딩/피처 스케일링 (0) | 2020.11.23 |
---|---|
파이썬머신러닝 - 3. 교차 검증/하이퍼 파라미터탐색 (0) | 2020.11.23 |
파이썬머신러닝 - 1. 기초 (0) | 2020.11.23 |
패턴인식이론 - 1. 간단 (0) | 2020.11.18 |
인공지능 - 7. 게임 트리 (0) | 2020.11.11 |