수업 복습/머신러닝과 딥러닝
사이킷런(Scikit-learn)
김복칠
2023. 12. 27. 17:53
1. 사이킷런(Scikit-learn)
- 대표적인 파이썬 머신러닝 모듈
- 다양한 머신러닝 알고리즘을 제공
- 다양한 샘플 데이터를 제공
- 머신러닝 결과를 검증하는 기능을 제공
- BSD 라이선스이기 때문에 무료로 사용 및 배포가 가능
2. LinearSVC
- 클래스를 구분으로 하는 분류 문제에서 각 클래스를 잘 구분하는 선을 그려주는 방식을 사용하는 알고리즘
- 지도학습 알고리즘을 사용하는 학습 전용 데이터와 결과 전용 데이터를 모두 가지고 있어야 사용이 가능
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
- accuracy_score 는 사이킷런에서 제공하는 성능 측정 함수 중 하나로 분류모델의 성능을 측정하는데 사용되므로 import 해줍니다
- 계산 공식 : Accuracy(정확도) = Number of Correct Predictions(올바르게 예측한 총 횟수) / Total Number of Predictions(전체 예측 횟수)
# 학습 데이터 준비
learn_data = [[0,0],[1,0],[0,1],[1,1]] # 독립변수
learn_label = [0,0,0,1] # 종속변수
# 모델 객체 생성
svc = LinearSVC()
# 학습
svc.fit(learn_data, learn_label)
# 학습결과
LinearSVC
LinearSVC()
- 임의의 학습 데이터를 만들어서 계산을 진행해줄 모델 객체를 만들어 줍니다
- 함수가 담겨져있는 svc 객체를 fit() 함수로 계산을 진행해 주는데 여기서 fit() 함수는 학습을 해주는 고유 함수 입니다.
- 그리고 대상에 사전에 만들어 놓은 학습 데이터를 넣어 줍니다
# 검증 데이터 준비
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)
print('정답률 : ',accuracy_score([0,0,0,1], test_label))
# 결과 검증의 결과
[[0, 0], [1, 0], [0, 1], [1, 1]] 의 예측결과 : [0 0 0 1]
정답률 : 1.0
- 임의의 학습이 끝났으면 정규 검증을 진행하는데 마찬가지로 검증 데이터를 만들어주고 LinearSVC() 가 들어있는 객체 svc에 predict() 함수를 이용해 계산을 진행해 줍니다
- 이후 마지막으로 예측한 결과를 사전에 import 한 accuracy_score() 함수를 이용해 정답률을 확인해 줍니다