OFMY (Ony for me and you)

[파이썬 라이브러리를 활용한 머신러닝] 2.3.2 분류선형모델 본문

머신러닝/책 리뷰

[파이썬 라이브러리를 활용한 머신러닝] 2.3.2 분류선형모델

선뭉 2023. 9. 7. 16:35

가장 널리 알려진 두 개의 선형 분류 알고리즘은

linear_model.LogisticRegression에 구현된 로지스틱 회귀 & svm.LinearSVC에 구현된 선형 서포트 벡터 머신

  •  두 모델 기본적으로 L2 규제(Ridge 모델) 사용 
  • 규제의 강도를 결정하는 매개변수 C
    • C값이 높아지면 규제가 감소
    • 높은 C 값을 지정하면 훈련세트에 간으한 최대로 맞추려 하고, 낮은 C 값을 지정하면 모델은 계수 벡터(w)에 가까워짐
      C의 값이 낮아지면 데이터 포인트 중 다수에 맞추는 것 / 높아지면 개개의 데이터 포인트를 정확히 분류할 것
from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer()
X_train, y_train, X_test, y_test = train_test_split(cancer.data, cancer.target, stratify = cancer.target, random_state=42)
logreg = LogisticRegression().fit(X_trian,y_train)

print("훈련 세트 점수: {:.3f}".format(logreg.score(X_train,y_train)))
print("테스트 세트 점수: {:.3f}".format(logreg.score(X_test,y_test)))

결과: 

훈련 세트 점수: 0.972

테스트 세트 점수: 0.965

C=100을 사용하니 훈련세트, 테스트 세트의 정확도가 높아짐 => 복잡도가 높은 모델일수록 성능이 좋음

 

더 이해하기 쉬운 모델을 원한다면? L1 규제 사용