SVM - 붓꽃 데이터 분류

2024. 1. 15. 13:14인공지능/머신러닝 실습(Python)

728x90
반응형

전체 코드

 

Iris 품종 분류 경진대회 - DACON

분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.

dacon.io

 

 

from sklearn.metrics import accuracy_score
from sklearn.svm import SVC
import pandas as pd
import os
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder

# 데이터 세트 로드
dir = os.path.dirname(os.path.realpath(__file__))
train = pd.read_csv(dir + '/train.csv')
test = pd.read_csv(dir + '/test.csv')
submission = pd.read_csv(dir + '/sample_submission.csv')

# train 데이터를 피처와 타겟으로 분리
X = train.drop(['id', 'species'], axis = 1)
y = train['species']

# Label Encoding -> 목표 변수를 숫자로 변환
le = LabelEncoder()
y = le.fit_transform(y)

# train을 훈련 데이터와 검증 데이터로 분리
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=1)

# 훈련 데이터로 SVM 학습
svm_model = SVC(kernel='rbf', random_state=1, gamma=0.1, C=10.0)
svm_model.fit(X_train, y_train)

# 검증 데이터로 예측
predict = svm_model.predict(X_val)

# 검증 데이터로 정확도 평가
accuracy = accuracy_score(y_val, predict)
print('Accuracy:', accuracy)

# 테스트 데이터 예측
X_test = test.drop('id', axis=1)
test_predict = svm_model.predict(X_test)

# csv 파일로 예측한 데이터 출력
submission['species'] = le.inverse_transform(test_predict)
submission.to_csv(dir + '/submission.csv', index=False)
728x90
반응형