혼공학습단/혼자 공부하는 머신러닝+딥러닝

[혼공학습단 10기] 3주차 미션 : Chapter 04

so0_0 2023. 7. 23. 23:59

3주차 미션은 무엇일까요?

[기본 미션]
Ch.04(04-1) 2번 문제 풀고, 풀이 과정 설명하기
[선택 미션]
Ch.04(04-2) 과대적합/과소적합 손코딩 코랩 화면 캡처하기

[기본 미션]


Ch.04(04-1) 2번 문제 풀고, 풀이 과정 설명하기

로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 ① 시그모이드 함수입니다.

1. 데이터 준비: read_csv() 함수 사용

2. 타겟 데이터인 'Species' 열의 고유한 값 추출: unique() 함수 사용 - 결과적으로 생선의 종류는 총 7가지로 구성됨

3. 입력 데이터(X)와 타깃 데이터(y)를 만들기 - 입력 데이터는 5개의 열을 사용, 타깃 데이터는 'Species' 열을 사용

4. train set과 test set 만들기: train_test_split() 사용

5. 표준화 전처리 진행: StandardScaler 클래스 사용

6. 이진 분류를 수행하기 위해 도미(Bream)와 빙어(Smelt)의 행만 추출하여 데이터를 구축함

7. LogisticRegression 클래스(로지스틱 회귀 모델)를 훈련함

8. predict() 메서드, predict_proba() 메서드

- predict() 메서드: 5개 샘플의 예측 출력

- predict_proba() 메서드: 5개 샘플의 예측 확률 출력(첫 번째 열: 음성 클래스(0)에 대한 확률, 두 번째 열: 양성 클래스(1)에 대한 확률)

9. classes_ 속성: 도미('Bream') - 음성 클래스, 빙어('Smelt') - 양성 클래스
    corf_ 속성, intercept_ 속성: 로지스틱 회귀가 학습한 계수

10. decision_function() 메서드: 양성 클래스에 대한 z값 출력 - 5개 샘플의 z 값 출력

      시그모이드 함수 expit(): z값을 시그모이드 함수에 통과시키면 확률을 구할 수 있음

       즉, predict_proba() 메서드 출력의 두 번째 열의 값양성 클래스에 대한 z값을 시그모이드 함수에 통과시킨 값이 동일함

[선택 미션]


Ch.04(04-2) 과대적합/과소적합 손코딩 코랩 화면 캡처하기

에포크 횟수와 과대적합/과소적합

- 적은 에포크 횟수: 과소적합(train set과 test set 모두 잘 맞지 않는 경우)

- 많은 에포크 횟수: 과대적합(train set에 너무 잘 맞아 test set에서는 오히려 점수가 나쁜 경우)

 

300번의 에포크 동안 SGDClassifier 클래스 훈련을 반복 진행하고, 300번의 에포크 동안 리스트에 기록한 train set의 점수(train_score)와 test set의 점수(test_score)그래프를 그려봄

train set의 그래프는 파란색, test set의 그래프는 주황색이며 100번째 에포크이후 train set과 test set 점수가 조금씩 벌어짐 ▷ 따라서 초기 에포크엔 과소적합이고, 100번째 에포크가 적절해 보임


출처: 한빛미디어, 혼자 공부하는 머신러닝+딥러닝