>  기사  >  백엔드 개발  >  Python에서 분류를 위해 SVM을 사용하는 방법은 무엇입니까?

Python에서 분류를 위해 SVM을 사용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-06-03 15:51:182036검색

SVM은 일반적으로 사용되는 분류 알고리즘으로 기계 학습 및 데이터 마이닝 분야에서 널리 사용됩니다. Python에서는 SVM 구현이 매우 편리하며 관련 라이브러리를 사용하여 완료할 수 있습니다.

이 기사에서는 데이터 전처리, 모델 훈련, 매개변수 튜닝을 포함하여 Python에서 분류에 SVM을 사용하는 방법을 소개합니다.

1. 데이터 전처리

분류를 위해 SVM을 사용하기 전에 데이터가 SVM 알고리즘의 요구 사항을 충족하는지 확인하기 위해 데이터를 전처리해야 합니다. 일반적으로 데이터 전처리에는 다음과 같은 측면이 포함됩니다.

  1. 데이터 정리: SVM 분류에 방해가 되지 않도록 일부 쓸모 없거나 비정상적인 데이터를 제외합니다.
  2. 데이터 정규화: 데이터의 수치 범위가 동일하도록 특정 비율에 따라 데이터의 크기를 조정합니다.
  3. 특성 선택: 데이터가 너무 많은 경우 가장 유익한 특성을 선택하여 분류 효과를 향상시킵니다.

2. 모델 훈련

데이터 전처리 후에 모델 훈련을 시작할 수 있습니다. Python에서는 모델 학습을 위해 SVM 관련 라이브러리를 사용할 수 있습니다.

  1. 라이브러리 가져오기

모델을 훈련하기 전에 관련 라이브러리를 가져와야 합니다.

import numpy as np
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import Accuracy_score

  1. Data loading

다음으로 데이터를 로드하고 훈련 세트와 테스트 세트를 나누어야 합니다.

data = np.loadtxt('data.txt', delimiter=',')
X = data[: , :-1]
y = data[:, -1]
X_train, 파일의 loadtxt 함수가 로드됩니다. train_test_split 함수는 데이터를 훈련 세트와 테스트 세트로 무작위로 나누는 데 사용되며, test_size 매개변수는 테스트 세트의 비율을 지정합니다.

모델 훈련
  1. 다음으로 모델 훈련을 시작할 수 있습니다:

clf = SVC(C=1.0, kernel='rbf', gamma='auto')

clf.fit(X_train, y_train)


Among C 매개변수는 정규화 계수이고, 커널 매개변수는 사용할 커널 함수를 지정하며, 감마 매개변수는 커널 함수의 영향을 제어하는 ​​데 사용됩니다. 이 예에서는 RBF 커널 함수를 사용합니다.

모델 평가
  1. 학습이 완료된 후 모델 평가를 수행해야 합니다.

y_pred = clf.predict(X_test)

acc = Accuracy_score(y_test, y_pred)

print('Accuracy:', acc)

여기서 Accuracy_score 함수는 모델의 정확도를 계산하는 데 사용됩니다.

3. 매개변수 조정

모델 훈련 후에 매개변수 조정을 수행하여 모델의 분류 효과를 더욱 향상시킬 수 있습니다. SVM에서 일반적으로 사용되는 매개변수 조정 방법에는 그리드 검색과 교차 검증이 포함됩니다.

그리드 검색
  1. 그리드 검색은 가능한 모든 매개변수 조합을 탐색하여 최적의 매개변수 조합을 검색하는 무차별 검색 방법입니다. Python에서는 GridSearchCV 함수를 사용하여 그리드 검색을 구현할 수 있습니다.

from sklearn.model_selection import GridSearchCV

매개변수 범위 정의

param_grid = {'C': [0.1, 1.0, 10.0],

          'kernel': ['linear', 'rbf'],
          'gamma': ['auto', 0.1, 0.01]}

그리드 검색 수행

gs = GridSearchCV(SVC(), param_grid, cv = 5)

gs.fit(X_train, y_train)


최적 매개변수 출력

print('Best:', gs.best_params_)

그 중 param_grid는 매개변수의 범위를 지정하고, cv 매개변수는 교차 횟수를 지정합니다. -검증. 실행이 완료되면 최적의 매개변수 조합을 출력할 수 있습니다.

교차 검증
  1. 교차 검증은 반복적인 샘플링을 통해 모델의 성능을 검증하는 방법입니다. Python에서는 cross_val_score 함수를 사용하여 교차 검증을 구현할 수 있습니다.

from sklearn.model_selection import cross_val_score

교차 검증 수행

scores = cross_val_score(clf, , cv 매개변수는 교차 검증 횟수를 지정합니다. 실행이 완료되면 교차 검증 결과를 출력할 수 있습니다.

4. 요약

이 글에서는 데이터 전처리, 모델 훈련, 매개변수 튜닝을 포함하여 Python에서 분류에 SVM을 사용하는 방법을 소개합니다. 분류 문제는 SVM을 사용하여 효과적으로 해결할 수 있으며 Python의 관련 라이브러리도 SVM을 구현하는 데 편리한 도구를 제공합니다. 이 기사가 분류를 위해 SVM을 사용할 때 독자들에게 도움이 되기를 바랍니다.

위 내용은 Python에서 분류를 위해 SVM을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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