LinearSVC 서포트 벡터 시각화

Beginner

This tutorial is from open-source community. Access the source code

소개

서포트 벡터 머신 (SVM) 은 분류 및 회귀 분석에 사용되는 인기 있는 머신 러닝 알고리즘입니다. SVM 은 데이터의 서로 다른 클래스를 분리하는 최상의 경계를 찾으려고 합니다. 이 실습에서는 LinearSVC 의 서포트 벡터를 그리는 방법을 배웁니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 가져오기

먼저, 이 실습에 필요한 라이브러리를 가져와야 합니다. NumPy, Matplotlib, make_blobs, LinearSVC, DecisionBoundaryDisplay 라이브러리를 사용할 것입니다.

데이터 생성

Scikit-learn 의 make_blobs() 함수를 사용하여 몇 가지 랜덤 데이터를 생성합니다. 이 함수는 클러스터링을 위해 가우시안 덩어리 (blobs) 를 생성합니다. 2 개의 중심을 가지는 40 개의 샘플을 생성할 것입니다.

데이터 시각화

Matplotlib 을 사용하여 생성된 데이터를 시각화합니다. scatter() 함수를 사용하여 데이터를 플롯합니다.

LinearSVC 모델 학습

두 가지 다른 정규화 매개변수를 사용하여 LinearSVC 모델을 학습합니다. 모델 학습에는 힌지 손실 함수 (hinge loss function) 가 사용됩니다. 모델을 학습하기 위해 fit() 함수를 사용합니다.

서포트 벡터 얻기

서포트 벡터는 여백 경계 내에 있는 샘플로, 크기는 일반적으로 1 로 제한됩니다. 서포트 벡터는 결정 함수를 통해 얻을 수 있습니다. 모델의 결정 함수를 얻기 위해 decision_function() 함수를 사용합니다. 그런 다음 결정 함수로부터 서포트 벡터를 계산합니다.

서포트 벡터 시각화

데이터와 동일한 그래프에 서포트 벡터를 표시합니다. 서포트 벡터를 표시하기 위해 scatter() 함수를 사용합니다.

결정 경계 표시

그래프에 결정 경계를 표시합니다. 결정 경계를 표시하기 위해 DecisionBoundaryDisplay 클래스를 사용합니다.

그래프 표시

마지막으로, 서포트 벡터와 결정 경계가 표시된 그래프를 보여줍니다.

요약

이 실습에서는 LinearSVC 의 서포트 벡터를 그래프로 표시하는 방법을 배웠습니다. decision_function() 함수를 사용하여 모델의 결정 함수를 얻고, 이를 통해 서포트 벡터를 계산했습니다. 또한 DecisionBoundaryDisplay 클래스를 사용하여 그래프에 결정 경계를 표시하는 방법도 학습했습니다.