[python] SciPy를 사용하여 서포트 벡터 머신 모델링하기
지도 학습에서 서포트 벡터 머신(Support Vector Machine, SVM)은 강력한 알고리즘 중 하나입니다. SVM은 데이터를 분류하는 데 사용되며, 이를 통해 선형 또는 비선형 분류 문제를 해결할 수 있습니다.
이번 블로그 포스트에서는 파이썬의 SciPy 라이브러리를 사용하여 SVM 모델을 구축하는 방법에 대해서 알아보겠습니다.
필수 패키지 설치하기
모델링을 위해 먼저 몇 가지 필수 패키지를 설치해야 합니다. SciPy 라이브러리를 사용하기 위해 다음 명령을 사용하여 패키지를 설치합니다.
pip install numpy scipy scikit-learn
데이터 불러오기
데이터를 불러오기 위해 적절한 파일을 읽어야합니다. CSV 파일 같은 경우에는 pandas
라이브러리를 사용하여 데이터를 로드할 수 있습니다.
import pandas as pd
# CSV 파일 읽기
data = pd.read_csv('data.csv')
데이터 전처리
데이터가 로드되면 전처리 단계를 수행해야 합니다. SVM 모델에 적합한 형식으로 데이터를 변환해야 하며, 이를 위해 각 특성을 스케일링하는 것이 중요합니다.
from sklearn.preprocessing import StandardScaler
# 입력 데이터와 레이블을 나누기
X = data.drop('label', axis=1)
y = data['label']
# 데이터 스케일링
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
모델 구축하기
데이터 전처리가 끝나면 SVM 모델을 구축할 수 있습니다. scikit-learn
라이브러리를 사용하여 SVM 모델을 구현할 수 있습니다.
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
# 학습 및 테스트 데이터 나누기
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2)
# SVM 모델 초기화
svm_model = SVC()
# 모델 학습
svm_model.fit(X_train, y_train)
모델 평가
모델이 학습되면 모델의 성능을 평가해야 합니다. 분류 모델의 경우 분류 정확도, 정밀도, 재현율 등을 평가 지표로 사용할 수 있습니다.
from sklearn.metrics import accuracy_score, precision_score, recall_score
# 예측 수행
y_pred = svm_model.predict(X_test)
# 모델 평가
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
print("Accuracy:", accuracy)
print("Precision:", precision)
print("Recall:", recall)
결론
이제 SciPy 라이브러리를 사용하여 서포트 벡터 머신 모델을 구축하는 기본적인 방법에 대해 알아보았습니다. 이를 통해 데이터 분류 문제를 해결하는데 도움이 될 것입니다. 추가로, SVM의 매개 변수를 조정하거나 다른 커널 함수를 시도하여 모델의 성능을 더욱 향상시킬 수 있습니다.
참고 문서: