1. 사이킷런이란?

  • 대표적인 파이썬 머신러닝 모듈
  • 다양한 머신러닝 알고리즘을 제공
  • 다양한 샘플 데이터를 제공
  • 머신러닝 결과를 검증하는 기능을 제공
  • BSD 라이선스이기 때문에 무료로 사용 및 배포가 가능
  • 사이킷런 공식 홈페이지(https://scikit-learn.org/stable/)

2. LinearSVC

  • 클래스를 구분으로 하는 분류 문제에서 각 클래스를 잘 구분하는 선을 그려주는 방식을 사용하는 알고리즘
  • 지도학습 알고리즘을 사용하는 학습 전용 데이터와 결과 전용 데이터를 모두 가지고 있어야 사용이 가능

필요 모듈 임포트 및 코드

from sklearn.svm import LinearSVC
# LinearSVC는 선형 서포트 벡터 분류기로, 데이터를 분류하는 데 사용됩니다.

from sklearn.metrics import accuracy_score
# accuracy_score는 예측이 얼마나 정확한지를 평가하는 데 사용됩니다.

# 학습 데이터 준비
learn_data = [[0,0], [1, 0], [0, 1], [1, 1]]
# 독립 변수(특성)를 나타냅니다. 여기서는 2차원 배열로 표현된 4개의 데이터 포인트가 있습니다.

learn_label = [0, 0, 0, 1]
# 종속 변수(레이블 또는 타겟)입니다. 각 데이터 포인트에 대한 분류 레이블(0 또는 1)을 나타냅니다.

# 모델 객체 생성
svc = LinearSVC()
# LinearSVC 모델의 인스턴스를 생성합니다.

# 학습
svc.fit(learn_data, learn_label)
# 모델을 학습 데이터와 레이블에 맞게 학습시킵니다.

# 검증 데이터 준비
test_data = [[0,0], [1, 0], [0, 1], [1, 1]]
# 모델이 예측해야 하는 데이터입니다

# 예측(시험)
test_label = svc.predict(test_data)
test_label
# 학습된 모델을 사용하여 test_data에 대한 예측을 수행합니다.
# [결과] : array([0, 0, 0, 1])


# 결과 검증
print(test_data, '의 예측 결과 : ', test_label)
print('정답률 : ', accuracy_score([0, 0, 0, 1], test_label))
# 실제 레이블과 예측 레이블을 비교하여 정확도를 계산하고 출력합니다.
# [결과] : [[0, 0], [1, 0], [0, 1], [1, 1]] 의 예측 결과 :  [0 0 0 1]
# [결과] : 정답률 :  1.0