[python] scikit-learn을 사용한 SVM(Support Vector Machine)

Support Vector Machine (SVM)은 지도학습 알고리즘 중 하나로, 데이터 분류와 회귀 문제에 사용됩니다. SVM은 분류를 위해 결정 경계를 찾는 기계 학습 방법입니다.

scikit-learn은 파이썬을 위한 머신러닝 라이브러리로, SVM을 구현하기 위한 다양한 기능을 제공합니다. 이번 포스트에서는 scikit-learn을 사용하여 SVM을 실행하는 방법을 살펴보겠습니다.

필요한 라이브러리 설치하기

scikit-learn을 설치하기 위해서는 파이썬 패키지 관리자인 pip를 사용할 수 있습니다. 아래의 명령어를 사용하여 설치해주세요:

pip install -U scikit-learn

데이터 로드하기

SVM을 실행하기 위해서는 분류하고자 하는 데이터가 필요합니다. 예를 들어, iris 데이터셋을 사용해보겠습니다:

from sklearn.datasets import load_iris

# iris 데이터셋 로드하기
iris = load_iris()

# 데이터의 특성과 클래스 확인하기
print(iris.data)
print(iris.target)

모델 학습하기

scikit-learn의 SVM 모델을 사용하여 학습을 진행할 수 있습니다. 다음은 iris 데이터셋을 사용하여 SVM 모델을 학습하는 예제입니다:

from sklearn import svm

# SVM 모델 생성하기
model = svm.SVC()

# 데이터를 학습시키기
model.fit(iris.data, iris.target)

예측하기

학습된 모델을 사용하여 새로운 데이터에 대한 예측을 할 수 있습니다:

# 새로운 데이터 생성하기
new_data = [[5.1, 3.5, 1.4, 0.2], [6.2, 2.9, 4.3, 1.3]]

# 예측하기
predictions = model.predict(new_data)
print(predictions)

결과 확인하기

예측 결과를 확인하기 위해 예측한 클래스 레이블을 실제 클래스 레이블과 비교할 수 있습니다:

# 실제 클래스 레이블 확인하기
true_labels = ["setosa", "versicolor", "virginica"]

# 예측한 클래스 레이블과 실제 클래스 레이블 비교하기
for i, prediction in enumerate(predictions):
    print("Predicted: {} / Actual: {}".format(true_labels[prediction], true_labels[iris.target[i]]))

결론

scikit-learn을 사용하여 SVM 모델을 구현하고 데이터를 분류하는 방법을 살펴보았습니다. SVM은 강력한 분류기로 알려져 있으며, scikit-learn의 다른 기능과 함께 사용하면 좀 더 복잡한 머신러닝 문제를 해결할 수 있습니다.

참고 자료: