코딩두의 포트폴리오

로지스틱 회귀 본문

AI/머신러닝 + 딥러닝

로지스틱 회귀

코딩두 2024. 7. 17. 16:58

 

 

럭키 백

 

 

확률 계산

특성 데이터 5가지

 

 

데이터셋 준비

 

  1. 판다스 라이브러리 임포트
  2. CSV 파일을 읽어와 데이터프레임으로 저장
  3. 데이터프레임의 처음 5행을 출력하여 데이터 구조를 확인
  4. 입력 데이터와 타겟 데이터를 분리하여 각각 넘파이 배열로 변환

 

 

 

다중 분류

기본값 3으로 지정

사이킷런의 객체 속성에 _가 끝에 붙어 있으면

모델 클래스 생성 시 지정한 값 x, 모델이 데이터로부터 학습한 속성일 경우에 _

 

과정

 

  • K-최근접 이웃 분류기 생성: KNeighborsClassifier 객체를 생성하고, 이웃의 수를 3으로 설정
  • 모델 학습: 훈련 데이터를 사용하여 모델을 학습
  • 클래스 확인: 학습한 클래스(어종)를 출력
  • 예측: 테스트 데이터의 샘플에 대해 예측을 수행
  • 확률 예측: 테스트 데이터의 샘플에 대해 각 클래스에 속할 확률을 계산하고 출력

 

 

 

로지스틱 회귀

종속 변수가 범주형(categorical)인 경우에 사용되는 통계적 모델로, 이진 분류 문제에 사용

시그모이드 함수 = 로지스틱 함수 / z값에 의해 양성, 음성 판단 가능

 

 

이진 분류

 

  • 특정 클래스 선택: 'Bream'과 'Smelt'에 해당하는 데이터를 선택
  • 모델 생성 및 학습: 로지스틱 회귀 모델을 생성하고, 선택된 데이터를 사용하여 모델을 학습
  • 예측 수행: 훈련 데이터의 처음 5개 샘플에 대해 예측을 수행하고, 각 클래스에 속할 확률을 계산

 

 

 

계수 확인

로지스틱 회귀가 이진 분류일 경우 - 사실상 양성 클래스의 z값만 계산

-> 이진 분류일 경우 하나의 함수를 학습

 

 

다중 분류

c값이 작을수록 규제가 강해짐

 

  • 로지스틱 회귀 모델 생성 및 학습
    • LogisticRegression 객체를 생성하고, C=20과 max_iter=1000을 설정하여 모델을 학습
  • 모델 성능 평가
    • 훈련 데이터와 테스트 데이터에 대한 모델의 정확도를 계산하여 출력
    • 훈련 데이터 정확도: 0.9328
    • 테스트 데이터 정확도: 0.925
  • 확률 예측:
    • predict_proba 메소드를 사용하여 각 샘플에 대한 각 클래스별 예측 확률을 계산하고 출력
  • 회귀 계수와 절편의 형태 확인:
    • lr.coef_의 형태는 (7, 5)로, 7개의 클래스와 5개의 특성에 대해 회귀 계수가 존재
    • lr.intercept_의 형태는 (7,)로, 7개의 클래스에 대해 절편이 존재

 

 

소프트맥스 함수

결정 함수 값을 확률로 변환하는 과정

 

  • 결정 함수 값 계산:
    • decision_function 메소드를 사용하여 각 샘플의 결정 함수 값을 계산
    • 예: [[ -6.5, 1.03, 5.16, -2.73, 3.34, 0.33, -0.63], ... ]
  • 소프트맥스 함수 적용:
    • softmax 함수를 사용하여 결정 함수 값을 확률로 변환
    • 예: [[0.0, 0.014, 0.841, 0.0, 0.136, 0.007, 0.003], ... ]
  • 소프트맥스 함수 개념:
    • 소프트맥스 함수는 다중 클래스 분류에서 각 클래스에 속할 확률을 계산

 

시그모이드 함수 - 이진분류일 경우 확률을 표현하기 위함

소프트맥스 - 다중분류일 경우 확률처럼 표현하기 위함

'AI > 머신러닝 + 딥러닝' 카테고리의 다른 글

결정 트리  (0) 2024.07.24
확률적 경사 하강법  (0) 2024.07.22
특성 공학과 규제  (0) 2024.07.09
선형 회귀  (0) 2024.07.08
최근접 이웃 회귀  (0) 2024.07.08