본문 바로가기
프로그램

[파이썬] 문제 : (sklearn)Wine 데이터 분류 (DecisionTree / SVC / GaussianNB)

by 오디세이99 2023. 5. 13.
728x90
반응형

 

from sklearn.datasets import load_wine
from sklearn.tree import DecisionTreeClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import pandas as pd
import numpy as np
from sklearn import metrics

data = load_wine()

wine_data = data.data          # feature 데이터
wine_target = data.target      # target 데이터
df_wine = pd.DataFrame(data = wine_data, columns=[data.feature_names])   # feature, target로 Dataframe을 만든다
df_wine['target'] = data.target # feature 만 있는 데이터 프레임에 타겟 데이터를 추가

x_train, x_test, y_train, y_test = train_test_split(wine_data, wine_target, test_size=0.3)

print('[DecisionTree]','-'*50)
dtc = DecisionTreeClassifier()
dtc.fit(x_train, y_train)
predict = dtc.predict(x_test)

print(accuracy_score(y_test, predict))
# print(metrics.classification_report(y_test, predict, target_names=data.target_names))
# print(metrics.confusion_matrix(y_test, predict))
for i in range(len(y_test)):
    print(f"{y_test[i]} : {predict[i]}")
    
print('[GaussianNB]','-'*50)
model = GaussianNB()
model.fit(X=x_train, y=y_train)

predict = model.predict(x_test) # 예측
print(accuracy_score(y_test, predict))

print('[SVC]','-'*50)
model = SVC()
model.fit(X=x_train, y=y_train)

predict = model.predict(x_test) # 예측
print(accuracy_score(y_test, predict))

728x90
반응형

댓글