SVM(Support Vector Machine)은 분류 및 회귀 작업에 사용되는 강력한 지도 학습 알고리즘입니다. SVM의 주요 목표는 고차원 공간에서 서로 다른 클래스의 데이터 포인트를 가장 잘 분리하는 최적의 초평면을 찾는 것입니다. SVM의 특징 세트 분류는 결정 기능, 특히 특정 데이터 포인트가 초평면의 어느 쪽에 속하는지 결정하는 데 중요한 역할을 하는 해당 부호와 깊은 관련이 있습니다.
SVM의 결정 기능
SVM의 결정 함수는 다음과 같이 표현될 수 있습니다.
여기서
- 초평면의 방향을 정의하는 가중치 벡터입니다.
- 분류되는 데이터 포인트의 특징 벡터입니다.
- 는 초평면을 이동시키는 바이어스 항입니다.
데이터 포인트를 분류하려면 , 결정 함수의 부호가 사용됩니다.
이 기호는 데이터 포인트가 있는 초평면의 측면을 결정합니다.
로그인 분류의 역할
결정 함수의 부호()는 데이터 포인트에 할당된 클래스 레이블을 직접 결정합니다.
. 다음은 작동 방식입니다.
1. 긍정적인 신호: 만약 , 결정 함수의 부호는 양수입니다. 이는 데이터 포인트가
포지티브 클래스가 위치한 초평면 측면에 있습니다. 그러므로,
포지티브 클래스(보통 +1로 표시)에 속하는 것으로 분류됩니다.
2. 음: 만약 , 결정 함수의 부호는 음수입니다. 이는 데이터 포인트가
네거티브 클래스가 위치한 초평면 측면에 있습니다. 따라서,
네거티브 클래스(보통 -1로 표시)에 속하는 것으로 분류됩니다.
3. 제로: 드문 경우지만 , 데이터 포인트
정확히 초평면 위에 놓여있습니다. 이 시나리오는 이론적으로는 가능하지만 실제 가치 데이터의 지속적인 특성으로 인해 실제로는 드뭅니다.
기하학적 해석
SVM이 데이터 포인트를 분류하는 방법을 이해하려면 결정 함수의 기하학적 해석이 필수적입니다. 초평면은 다음과 같이 정의됩니다. 두 클래스 사이의 결정 경계 역할을 합니다. 이 초평면의 방향과 위치는 가중치 벡터에 의해 결정됩니다.
바이어스 항
.
1. 한계: 마진은 초평면과 각 클래스에서 가장 가까운 데이터 포인트 사이의 거리입니다. SVM은 초평면이 클래스를 분리할 뿐만 아니라 가장 가까운 데이터 포인트로부터 가능한 한 가장 큰 거리를 유지하도록 이 마진을 최대화하는 것을 목표로 합니다. 이러한 가장 가까운 데이터 포인트를 지원 벡터라고 합니다.
2. 지원 벡터: 서포트 벡터는 초평면에 가장 가까운 데이터 점입니다. 이는 초평면의 위치와 방향을 정의하는 데 중요합니다. 이러한 지지 벡터의 위치가 변경되면 초평면이 변경됩니다.
예시
두 클래스의 데이터 포인트가 있는 1차원 특징 공간이 있는 간단한 예를 생각해 보세요. 포지티브 클래스를 +1로, 네거티브 클래스를 -XNUMX로 표시해 보겠습니다. 가중치 벡터를 가정해보자 바이어스 항
.
데이터 포인트의 경우 , 다음과 같이 결정 함수를 계산할 수 있습니다.
이후 , 결정 함수의 부호는 양수이므로 데이터 포인트는
포지티브 클래스(+1)에 속하는 것으로 분류됩니다.
다른 데이터 포인트의 경우 , 우리는 결정 함수를 다음과 같이 계산합니다.
다시 말하지만, 이므로 부호는 양수이고
포지티브 클래스(+1)에 속하는 것으로 분류됩니다.
이제 데이터 포인트를 고려해보세요. :
이 경우, 이므로 부호는 음수이고
네거티브 클래스(-1)에 속하는 것으로 분류됩니다.
수학적 공식화
SVM의 수학적 공식화에는 최적화 문제를 해결하여 최적의 값을 찾는 것이 포함됩니다. and
훈련 데이터를 정확하게 분류하면서 마진을 최대화하는 것입니다. 최적화 문제는 다음과 같이 표현될 수 있습니다.
어디에 데이터 포인트의 클래스 레이블입니다.
이며 제약 조건은 모든 데이터 요소가 최소 1의 여백으로 올바르게 분류되도록 보장합니다.
커널 트릭
많은 실제 응용 프로그램에서 데이터는 원래 기능 공간에서 선형으로 분리되지 않을 수 있습니다. 이 문제를 해결하기 위해 커널 트릭을 사용하여 SVM을 비선형 분류로 확장할 수 있습니다. 커널 함수 암시적으로 데이터를 선형 분리가 가능한 고차원 공간으로 매핑합니다. 일반적으로 사용되는 커널 함수에는 다항식 커널, RBF(방사형 기저 함수) 커널 및 시그모이드 커널이 포함됩니다.
커널화된 SVM의 결정 기능은 다음과 같습니다.
어디에 는 최적화 문제의 이중 형태로부터 얻은 라그랑주 승수입니다.
파이썬 구현
Python에서 `scikit-learn` 라이브러리는 `SVC` 클래스를 통해 SVM의 간단한 구현을 제공합니다. 다음은 'SVC'를 사용하여 데이터 세트를 분류하는 방법의 예입니다.
python from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score # Load the dataset iris = datasets.load_iris() X = iris.data y = iris.target # Select only two classes for binary classification X = X[y != 2] y = y[y != 2] # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Create an SVM classifier with a linear kernel clf = SVC(kernel='linear') # Train the classifier clf.fit(X_train, y_train) # Predict the class labels for the test set y_pred = clf.predict(X_test) # Calculate the accuracy of the classifier accuracy = accuracy_score(y_test, y_pred) print(f'Accuracy: {accuracy * 100:.2f}%')
이 예에서는 `SVC` 클래스를 사용하여 선형 커널이 있는 SVM 분류기를 생성합니다. 분류기는 훈련 세트로 훈련되고, 정확도는 테스트 세트로 평가됩니다. SVM의 특징 세트 분류는 근본적으로 결정 함수의 부호에 따라 달라집니다. . 부호는 데이터 포인트가 초평면의 어느 쪽에 있는지 결정하여 이를 해당 클래스에 할당합니다. 결정 기능, 최적의 초평면을 찾기 위한 최적화 프로세스, 비선형 분리성을 처리하기 위한 커널 기능의 잠재적 사용은 모두 SVM의 중요한 구성 요소입니다. 이러한 측면을 이해하면 SVM이 작동하는 방식과 다양한 기계 학습 작업에 적용되는 방식에 대한 포괄적인 보기가 제공됩니다.
기타 최근 질문 및 답변 Python을 사용한 EITC/AI/MLP 머신 러닝:
- 선형 회귀 분석에서 b 매개변수(가장 적합한 선의 y절편)는 어떻게 계산되나요?
- SVM의 결정 경계를 정의하는 데 서포트 벡터는 어떤 역할을 하며 훈련 과정에서 어떻게 식별됩니까?
- SVM 최적화의 맥락에서 가중치 벡터 'w'와 편향 'b'의 중요성은 무엇이며 어떻게 결정됩니까?
- SVM 구현에서 `visualize` 방법의 목적은 무엇이며 모델 성능을 이해하는 데 어떻게 도움이 됩니까?
- SVM 구현의 '예측' 방법은 새로운 데이터 포인트의 분류를 어떻게 결정합니까?
- 기계 학습의 맥락에서 SVM(Support Vector Machine)의 주요 목표는 무엇입니까?
- scikit-learn과 같은 라이브러리를 사용하여 Python에서 SVM 분류를 구현하는 방법은 무엇이며 관련된 주요 기능은 무엇입니까?
- SVM 최적화에서 제약조건(y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1)의 중요성을 설명하세요.
- SVM 최적화 문제의 목적은 무엇이며 수학적으로 어떻게 공식화됩니까?
- SVM(Support Vector Machine)의 맥락에서 초평면 방정식(mathbf{x} cdot mathbf{w} + b = 0)의 역할은 무엇입니까?
Python을 사용한 EITC/AI/MLP 기계 학습에서 더 많은 질문과 답변 보기
더 많은 질문과 답변:
- 들: 인공지능
- 프로그램 : Python을 사용한 EITC/AI/MLP 머신 러닝 (인증 프로그램으로 이동)
- 교훈: 서포트 벡터 머신 (관련 강의 바로가기)
- 주제 : 벡터 머신 최적화 지원 (관련 항목으로 이동)
- 심사 검토