-
Python 데이터분석 기초 65 - Support Vector Machine(SVM)Python 데이터 분석 2022. 11. 23. 15:11
Support Vector Machine(SVM)
분류와 회귀분석을 위해 주로 사용한다. 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형분류 모델을 만든다. 만들어진 분류 모델은 데이터가 사상된 공간에서 경계로 표현되는데 SVM 알고리즘은 그 중 가장 큰 폭을 가진 경계를 찾는 알고리즘이다. SVM은 선형 분류와 더불어 비선형 분류에서도 사용될 수 있다.
# Support Vector Machine(SVM) # 분류와 회귀분석을 위해 주로 사용한다. 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, # SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고리에 속할지 판단하는 # 비확률적 이진 선형분류 모델을 만든다. 만들어진 분류 모델은 데이터가 사상된 공간에서 경계로 # 표현되는데 SVM 알고리즘은 그 중 가장 큰 폭을 가진 경계를 찾는 알고리즘이다. SVM은 선형 분류와 # 더불어 비선형 분류에서도 사용될 수 있다. # SVM으로 XOR 연산 처리 x_data = [ [0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 0] ] import pandas as pd import numpy as np from sklearn.linear_model import LogisticRegression from sklearn import svm, metrics x_df = pd.DataFrame(x_data) print(x_df) feature = np.array(x_df.iloc[:, 0:2]) # 슬라이싱 label = np.array(x_df.iloc[:, 2]) # 인덱싱 print(feature) print(label) model1 = LogisticRegression().fit(feature, label) pred = model1.predict(feature) print('Logistic 예측값 :', pred) print('Logistic acc :', metrics.accuracy_score(label, pred)) print('--------') model2 = svm.SVC().fit(feature, label) pred = model2.predict(feature) print('svm 예측값 :', pred) print('svm acc :', metrics.accuracy_score(label, pred)) <console> 0 1 2 0 0 0 0 1 0 1 1 2 1 0 1 3 1 1 0 [[0 0] [0 1] [1 0] [1 1]] [0 1 1 0] Logistic 예측값 : [0 0 0 0] Logistic acc : 0.5 -------- svm 예측값 : [0 1 1 0] svm acc : 1.0
'Python 데이터 분석' 카테고리의 다른 글
Support Vector Machine(SVM) 예제 - 심장병 환자 데이터 (0) 2022.11.23 Python 데이터분석 기초 66 - random함수로 무작위로 데이터를 생성 분석(체질량지수(BMI)) (0) 2022.11.23 XGBoost로 분류 모델 예시(kaggle.com이 제공하는 'glass datasets') (0) 2022.11.23 XGBoost로 분류 모델 예시(산탄데르 은행 고객 만족 여부 분류 모델) (0) 2022.11.23 Python 데이터분석 기초 64 - XGBoost로 분류 모델 작성, lightgbm로 분류 모델 작성 (0) 2022.11.23