wisdiom 아니고 wisdom

4. 머신러닝 데이터 분석(2) - 2 본문

👩‍💻/pandas

4. 머신러닝 데이터 분석(2) - 2

글로랴 2021. 2. 15. 22:00

SVM, Support Vector Machine

데이터셋의 여러 속성을 나타내는 데이터프레임의 각 열은 열 벡터 형태로 구현된다.

열 벡터들이 각각 고유의 축을 갖는 벡터 공간을 만드는데, 분석 대상이 되는 개별 관측값은 모든 속성(열 벡터)에 관한 값을 해당 축의 좌표로 표시하여 벡터 공간에서의 위치를 나타낸다. n개의 속성(n개의 열 벡터)이 존재하는 데이터셋은 n차원 공간에 표시된다.

SVM 모형은 벡터 공간에 위치한 훈련 데이터의 좌표와 각 데이터가 어떤 분류 값을 가져야 하는지 정답을 입력 받아서 학습한다. 같은 분류 값을 갖는 데이터끼리 같은 공간에 위치하도록 벡터 공간을 여러 조각으로 나눌 수 있다면, 새로운 데이터에 대해서도 어느 공간에 위치하는지 분류할 수 있다.

 

https://spreadyourwisdiom21.tistory.com/18

 

서포트 벡터 머신

SVM, Support Vector Machine 데이터를 분리하는 초평면(hyperplane) 중에서 데이터들과 거리가 가장 먼 초평면을 선택하여 분리하는 지도 학습 모델 🚨🙋‍♀️🤔 최대 마진 초평면(MMH, Maximum Margin Hyperpl

spreadyourwisdiom21.tistory.com

 

📍 모형 학습 및 검증

# SVM 분류 모형 
from sklearn import svm

# 모형 객체 생성 (RBF 함수 적용)
svm_model = svm.SVC(kernel='rbf')

# 모형 학습
svm_model.fit(x_train, y_train)

# 예측(분류)
y_hat = svm_model.predict(x_test)

# 비교
print(y_hat[0:10])           # 예측값  [0 0 1 0 0 0 1 0 0 0]
print(y_test.values[0:10])   # 실제값  [0 0 1 0 0 1 1 1 0 0]
# 모형 성능 평가
# Confusion Matrix 계산
from sklearn import metrics
svm_matrix = metrics.confusion_matrix(y_test, y_hat)
print(svm_matrix)

print('\n')

svm_report = metrics.classification_report(y_test, y_hat)
print(svm_report)

반응형
Comments