>  기사  >  백엔드 개발  >  Python의 SVM 예제

Python의 SVM 예제

PHPz
PHPz원래의
2023-06-11 20:42:061112검색

Python의 SVM(지원 벡터 머신)은 분류 및 회귀 문제를 해결하는 데 사용할 수 있는 강력한 지도 학습 알고리즘입니다. SVM은 고차원 데이터와 비선형 문제를 처리할 때 탁월한 성능을 발휘하며 데이터 마이닝, 이미지 분류, 텍스트 분류, 생물정보학 및 기타 분야에서 널리 사용됩니다.

이 글에서는 Python에서 분류를 위해 SVM을 사용하는 예를 소개하겠습니다. 우리는 많은 강력한 기계 학습 알고리즘을 제공하는 scikit-learn 라이브러리의 SVM 모델을 사용할 것입니다.

먼저 터미널에서 다음 명령을 사용하여 설치할 수 있는 scikit-learn 라이브러리를 설치해야 합니다.

pip install scikit-learn

다음으로 클래식 Iris 데이터 세트를 사용하여 SVM의 분류 효과를 보여 드리겠습니다. Iris 데이터 세트에는 150개의 샘플이 포함되어 있으며 세 가지 범주로 나누어져 있으며 각 범주에는 50개의 샘플이 포함되어 있습니다. 각 샘플에는 꽃받침 길이, 꽃받침 너비, 꽃잎 길이 및 꽃잎 너비의 4가지 특성이 있습니다. SVM을 사용하여 이러한 샘플을 분류하겠습니다.

먼저 필요한 라이브러리를 가져와야 합니다.

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

다음으로 Iris 데이터 세트를 로드합니다.

iris = datasets.load_iris()

그런 다음 데이터를 훈련 세트와 테스트 세트로 나눕니다.

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

여기에서는 train_test_split 함수를 사용합니다. , 데이터 세트는 훈련 세트와 테스트 세트로 무작위로 나누어집니다. 여기서 test_size 매개변수는 테스트 세트가 전체 데이터 세트의 30%를 차지함을 지정합니다.

다음으로 SVM 모델을 사용하여 훈련 세트를 맞춥니다.

clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

여기에서는 선형 커널 함수를 사용하고 정규화 매개변수 C=1을 지정합니다. SVM의 하이퍼파라미터 C는 모델의 정확성과 복잡성 간의 균형을 제어합니다. C 값이 작을수록 모델이 단순해지고 과소적합되기 쉽습니다. C 값이 클수록 모델이 더 복잡해 과적합되기 쉽습니다. 일반적으로 교차 검증을 통해 적절한 C 값을 선택해야 합니다.

다음으로 훈련된 모델을 사용하여 테스트 세트를 예측합니다.

y_pred = clf.predict(X_test)

마지막으로 Accuracy_score 함수를 사용하여 분류 정확도를 계산할 수 있습니다.

accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

전체 코드는 다음과 같습니다.

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

# Load iris dataset
iris = datasets.load_iris()

# Split data into train and test
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

# Fit SVM model on training data
clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

# Predict on test data
y_pred = clf.predict(X_test)

# Compute accuracy score
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

이 경우 우리는 매우 일반적인 데이터 세트인 Iris 데이터 세트를 대상으로 분류를 위해 SVM 모델을 사용했습니다. SVM의 장점은 강력한 분류 능력과 고차원 데이터 및 비선형 문제에 대한 적합성입니다. SVM을 구현하려면 최고의 분류 효과를 얻기 위해 일련의 하이퍼파라미터를 조정해야 합니다.

위 내용은 Python의 SVM 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.