Python/머신러닝, 딥러닝

Python 머신러닝 Scikit-learn

dustKim 2024. 6. 10. 14:07
사이킷런(Scikit-learn)

 

- 대표적인 파이썬 머신러닝 모듈이다.

- 다양한 머신러닝 알고리즘을 제공한다.

- 다양한 샘플 데이터를 제공한다.

- 머신러닝 결과를 검증하는 기능을 제공한다.

- BSD 라이선스이기 때문에 무료로 사용 및 배포가 가능하다.

- 사이킷런 공식 홈페이지: https://scikit-learn.org

 

scikit-learn: machine learning in Python — scikit-learn 0.16.1 documentation

 

scikit-learn.org

 

LinearSVC (Linear Support Vector Classifier)

 

- 클래스를 구분으로 분류 문제에서 각 클래스를 잘 구분하는 선을 그려주는 방식을 사용하는 알고리즘이다.

- 지도학습 알고리즘을 사용하는 학습 전용 데이터와 결과 전용 데이터를 모두 가지고 있어야 사용이 가능하다.

 

더보기
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
# 학습 데이터를 준비
learn_data = [[0, 0], [1, 0], [0, 1], [1, 1]] # 독립변수
learn_label = [0, 0, 0, 1] # 종속변수

# 모델 객체 생성
svc = LinearSVC()

# 학습
svc.fit(learn_data, learn_label)
결과

 

학습데이터는 2가지의 독립변수를 갖고, 1가지의 종속 변수를 갖는다. 데이터를 잘 확인해 보면 and연산자를 나타낸 것이라고 알 수 있다. 모두 True가 나와야 True가 나오고, 아닌 경우 False가 나온다.

학습데이터를 준비하고 모델링 객체를 만들고 학습을 시켜준다.

 

학습이 완료되면 검증을 해봐야 한다.

# 검증 데이터 준비
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))
결과

 

정답률이 1.0이 나온 건 100%라는 뜻이다.