728x90
머신러닝 지도 학습(Supervised Learning) Classification 분류 문제
# 필요한 패키지 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
import warnings
warnings.filterwarnings('ignore')
# iris 데이터 불러오기
from sklearn.datasets import load_iris
iris = load_iris()
# Description을 확인해 보자
print(iris.DESCR)
>>
# 변수에 저장하기
data = iris.data
label = iris.target
columns = iris.feature_names
# Dataframe 만들기
data = pd.DataFrame(data, columns=columns)
data.head()
>>
# 데이터의 크기를 확인해 보자
data.shape
>> (150, 4)
# 데이터 준비하기
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
data,
label,
test_size=0.2, random_state=2022)
# Logistic Regression으로 모델을 만들어 보자.
# Logistic Regression 불러오기 - 분류 문제에 사용
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()
# 학습시키기
lr.fit(X_train, y_train)
y_pred = lr.predict(X_test)
# 이전엔 R2 결정계수였다면 여기에서는 accuracy score. 오차가 아니라 정확도를 본다.
from sklearn.metrics import accuracy_score
# 테스트용 데이터의 실제값, 예측값
print('로지스틱 회귀, 정확도: {:.2f}'.format(accuracy_score(y_test, y_pred)))
>> 로지스틱 회귀, 정확도: 0.97
97% 정확도의 모델을 만들었다.
이번엔 Support Vecor Machine으로 모델을 만들어 보자.

# Support Vecor Machine 불러오기
from sklearn.svm import SVC
svc = SVC()
# 학습시키기
svc.fit(X_train, y_train)
y_pred = svc.predict(X_test)
print('서포트 벡터 머신, 정확도: {:.2f}'.format(accuracy_score(y_test, y_pred)))
>> 서포트 벡터 머신, 정확도: 0.97
정확도 97%의 모델을 만들었다.
# 이번엔 C값(parameter)을 줘 보자. 정확도 조절
from sklearn.svm import SVC
svc = SVC(C=100)
# 다시 학습시키기
svc.fit(X_train, y_train)
y_pred = svc.predict(X_test)
print('서포트 벡터 머신, 정확도: {:.2f}'.format(accuracy_score(y_test, y_pred)))
>> 서포트 벡터 머신, 정확도: 0.93
93% 정확도로 위의 것보다 더 안 좋게 나왔다.
이번엔 Decision Tree로 모델을 만들어 보자.
# Decision Tree 불러오기
from sklearn.tree import DecisionTreeClassifier
dt = DecisionTreeClassifier(max_depth=5)
# 학습시키기
dt.fit(X_train, y_train)
y_pred = dt.predict(X_test)
print('결정 트리, 정확도 {:.2f}'.format(accuracy_score(y_test, y_pred)))
>> 결정 트리, 정확도 0.97
정확도 97%인 Decision Tree 모델을 만들었다.
이번엔 Random Forest로 모델을 만들어 보자.
# Random Forest 불러오기
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(max_depth=5)
# 학습시키기
rf.fit(X_train, y_train)
y_pred = rf.predict(X_test)
print('랜덤 포레스트, 정확도 {:.2f}'.format(accuracy_score(y_test, y_pred)))
>> 랜덤 포레스트, 정확도 0.93
정확도 93%인 Random Forest 모델을 만들었다.
728x90
'MS AI School' 카테고리의 다른 글
DAY 23 - 딥러닝 이론 (0) | 2022.11.26 |
---|---|
DAY 22 - 머신러닝 비지도 학습: 클러스터링(Clustering) (0) | 2022.11.23 |
DAY 20 - 머신러닝 지도 학습: 결정 트리 모델, SVM, 다중 MLP 회귀 (0) | 2022.11.23 |
DAY 19 - 머신러닝 지도 학습: 선형 회귀 (0) | 2022.11.01 |
DAY 18 - Scikit Learn 머신러닝 모델 만들기 (0) | 2022.11.01 |