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_data와 learn_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])
잘 나오는 것을 볼 수 있다
'KDT 수업 > Python' 카테고리의 다른 글
[머신러닝 딥러닝] 인공지능 / 머신러닝 (0) | 2023.06.18 |
---|---|
[데이터분석] Pandas 판다스-1 (2) | 2023.06.09 |
[데이터분석] 행렬연산 (0) | 2023.06.08 |
[데이터분석] NUMPY 넘파이 (0) | 2023.05.30 |
28. DB를 이용한 단어장 만들기 (0) | 2023.03.22 |