개발/머신러닝

파이썬. 머신러닝 - Support Vector Machine

웅'jk 2022. 12. 2. 15:32

SVM 은 구분하기 어려운 데이터들을 나타낼때 효과적이다.

 

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

#read data
df= pd.read_csv('../data/Social_Network_Ads.csv')

#set X y
X = df.iloc[0:,[2,3]]
y = df['Purchased']

#feature scaling
from sklearn.preprocessing import MinMaxScaler
scaler_X = MinMaxScaler()
X= scaler_X.fit_transform(X)

#train/test
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.25 , random_state = 1) 

# set SVC
from sklearn.svm import SVC
classifier = SVC(kernel='rbf',random_state=1)
# kernel 에 따른 결과값이 다르다.
classifier.fit(X_train,y_train)

# predict
y_pred = classifier.predict(X_test)

# 확인
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test, y_pred)
from sklearn.metrics import accuracy_score
accuracy_score(y_test,y_pred)

linear 방식은 위와같은식으로 나오게되며

rbf 방식으로 하면 다음과 같다.