본문 바로가기
머신러닝 & 딥러닝

2. 사이킷런(Scikit-Learn)

by 곽정우 2024. 6. 10.

1. 사이킷런(Scikit-Learn)

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

 

2.  LinearSVC

LinearSVC는 선형 커널을 사용하는 SVM (Support Vector Machine) 알고리즘의 구현입니다.

SVM은 분류 문제에서 데이터 포인트를 최대한 넓은 마진으로 분리하는 초평면을 찾는 알고리즘입니다.

  • 클래스를 구분으로 하는 분류 문제에서 각 클래스를 잘 구분하는 선을 그려주는 방식을 사용하는 알고리즘
  • 지도학습 알고리즘을 사용하는 학습 전용 데이터와 결과 전용 데이터를 모두 가지고 있어야 사용이 가능
# LinearSVC: 선형 SVM을 구현한 클래스입니다.
# accuracy_score: 정확도를 계산하기 위한 함수입니다.


from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
# 학습 데이터를 준비
# learn_data: 학습에 사용할 독립 변수(특징)들을 나타냅니다. 이 예제에서는 두 개의 특징을 가진 데이터입니다.
# learn_label: 학습에 사용할 종속 변수(레이블 또는 목표 변수)입니다. 0 또는 1의 값을 가지며, 각각에 해당하는 특징들이 learn_data에 포함되어 있습니다.

learn_data = [[0, 0], [1, 0], [0, 1], [1, 1]] # 독립변수
learn_label = [0, 0, 0, 1] # 종속변수
# 선형 SVM 모델을 생성합니다

svc = LinearSVC()
# 학습
# 생성한 SVM 모델에 학습 데이터(learn_data)와 해당 레이블(learn_label)을 이용하여 학습을 수행합니다

svc.fit(learn_data, learn_label)

# 검증 데이터 준비
# 학습된 모델을 테스트하기 위한 데이터를 준비합니다

test_data = [[0, 0], [1, 0], [0, 1], [1, 1]]
# 예측
# 테스트 데이터를 이용하여 학습된 모델을 통해 예측을 수행합니다

test_label = svc.predict(test_data)
test_label

# 결과 검증
print(test_data, '의 예측 결과: ', test_label)
print('정답률: ', accuracy_score([0, 0, 0, 1], test_label))


이 코드는 단순한 XOR 문제를 해결하기 위해 SVM을 사용하는 간단한 예제입니다.
SVM은 이진 분류 문제에 적합한 머신러닝 알고리즘 중 하나입니다.

'머신러닝 & 딥러닝' 카테고리의 다른 글

6. 의사 결정 나무  (0) 2024.06.11
5. 선형 회귀  (0) 2024.06.11
4. 타이타닉 데이터셋  (0) 2024.06.10
3. 아이리스 데이터셋  (0) 2024.06.10
1. 머신러닝  (0) 2024.06.10