KDT 수업/Python

[머신러닝 딥러닝] 사이킷런 Scikit-learn 모듈

니니는 진짜 전설이다 2023. 6. 19. 16:15

1. Scikit-learn 모듈

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

2. LinearSVC

  • LinearSVC는 scikit-learn 라이브러리에서 제공되며, 선형 SVM(Support Vector Machine) 분류기의 구현 중 하나
  • 주어진 데이터를 두 개의 클래스로 분류하는 문제를 해결하는 데 사용된다
  • 클래스를 구분 하는 분류 문제에서 각 클래스를 잘 구분하는 선을 그려주는 방식을 사용하는 알고리즘
  • 지도학습 알고리즘을 사용하는 학습 전용 데이터와 결과 전용 데이터를 함께 가지고 있어야 사용이 가능함

 

📝 AND 문제를 예시로 선형SVM을 사용하여 분류하는 방법 알아보기

▼AND문제의 입력과 출력

입력1 입력2 출력
0 0 0
0 1 1
1 0 1
1 1 0

 

# 먼저 필요한 모듈을 import 한다

from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score

 

# 학습데이터learn_data와 해당 데이터의 레이블인 learn_label을 정의한다

learn_data = [ [0,0], [1,0], [0,1], [1,1] ]
learn_label = [0,0,0,1]

 

# LinearSVC() 를 사용하여 svc라는 LinearSVC모델 객체를 생성한다

 

svc = LinearSVC()

 

# svc 모델이 주어진 learn_datalearn_label 데이터를 기반으로 AND 연산을 수행하는 방식을 학습

svc.fit(learn_data, learn_label)

 

# 검증데이터 준비

test_data = [ [0,0], [1,0], [0,1], [1,1] ]

 

# 예측

test_label = svc.predict(test_data)
test_label
# array([0, 0, 0, 1])
print(test_data, '의 예측결과: ', test_label)
#[[0, 0], [1, 0], [0, 1], [1, 1]] 의 예측결과:  [0 0 0 1]
print('정답률: ', accuracy_score([0,0,0,1], test_label))
#정답률:  1.0

 

 

 

# 순서 다르면 어떤지 궁금해서 테스트

test_data2 = [ [1,1], [0,0], [1,0], [0,1]]
test_label2 = svc.predict(test_data2)
test_label2
# array([1, 0, 0, 0])

잘 나오는 것을 볼 수 있다