Support Vector Machine 에는 SVM과 RBF 가 있다.
여기서 SVM 은 선형 구조이고, RBF 는 non_linear 즉, 비선형 구조이다.
SVM
SVM 을 차트로 나타내면 아래처럼 직선을 하나 그리고 그 직선을 기준으로 데이터를 구별한다.
( linear 방법 )

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
필요한 라이브러리를 임포트 해준다.
아래의 데이터프레임을 가지고 SVM 인공지능으로 Purchased 결과를 예측할 것이다.
예측에 필요한 컬럼 'Age' : 'Estimated Salary' 을 변수 X로 두고
예측 결과인 데이터 컬럼 'Purchased' 를 변수 y로 둘 것이다.

# 피쳐 스케일링
from sklearn.preprocessing import MinMaxScaler
scaler_X = MinMaxScaler()
X = scaler_X.fit_transform(X)
# 데이터셋 나누기
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)
인공지능에 훈련시키기 전 과정인 피쳐스케일링과 데이터셋을 나누는 것은 기존과 동일한 방법으로 진행한다.

SVC 인공지능으로 데이터 결과를 알아보는 방법이다.
from sklearn.svm import SVC
필요한 모듈은 임포트 해준다.
변수 classifier 에 SVC()를 저장하고 파라미터 값은 kernel 에 'linear' 를 넣어주면 random_state 값은 1 로 지정해주었다.
변수 classifier 에 fit 함수를 사용하여 인공지능을 학습 시켜준다.
classifier = SVC(kernel= 'linear', random_state=1)
classifier.fit(X_train, y_train)

학습시킨 결과값을 변수 y_pred 로 두고 y_test 데이터와 비교하여 정확도 계산을 했을 때는 아래와 같은 결과값이 리턴된다.
y_pred = classifier.predict(X_test)
y_pred
y_test.values
from sklearn.metrics import confusion_matrix, accuracy_score
confusion_matrix(y_test, y_pred)
accuracy_score(y_test, y_pred)

RBF
RBF 는 아래의 차트처럼 비선형 구조로 데이터를 분류하는 인공지능이다.

이번에는 RBF 방법으로 데이터 분류를 예측하는 방법이다.
변수 classifier2 에 SVC 를 저장해준다. 괄호 안 파라미터 kernel 에는 'rbf' 를 넣어주면 random_state 는 1로 하였다.
fir 함수를 이용하여 classifier 을 학습 시켜준다.
classifier2 = SVC(kernel= 'rbf', random_state= 1)
classifier2.fit(X_train, y_train)

학습시킨 classifier2 에 X_test 값을 넣어서 도출된 값을 y_pred2 변수에 저장을 한다.
그 후 confusion_matrix 와 accuracy_score 로 정확도를 분석하면 아래와같은 결과값이 도출된다.
y_pred2 = classifier2.predict(X_test)
y_pred2
y_test.values
confusion_matrix(y_test, y_pred2)
accuracy_score(y_test, y_pred2)

'Machine Learning' 카테고리의 다른 글
| Grid search - 모델 성능을 최고로 만드는 파라미터 값을 찾아준다 (0) | 2022.12.02 |
|---|---|
| KNN - K-Nearest Neighbo 로 데이터 분류하기 (0) | 2022.12.02 |
| imblearn 라이브러리 - up sampling 기법으로 불균형 데이터 다루기 (0) | 2022.12.02 |
| Logistic Regression - Confusion Matrix 인공지능 성능 평가 (0) | 2022.12.02 |
| Logistic Regression ( 로지스틱 회귀 ) - 인공지능으로 데이터 결과 예측하기 (0) | 2022.12.01 |