데이터 부트캠프 - Today I Learned

[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_9주차_25.01.21

onion95 2025. 1. 21. 21:47

Today's Goals

1. 머신러닝 개인과제 풀어보기

 

 

 

아무리 강의를 들어도 머신러닝 코드를 짜는 부분이 잘 들어오지 않았는데,

역시 인간은 체득을 해야한다.

 

실습을 여러번 반복하고, 개인과제 문제를 풀어보니 조금씩 감이 오는 것 같기도!

 

 

 

 

 

1. 머신러닝 개인과제


 

[카이제곱 검정 - 두 변수간 빈도표 만들기, aggfunc은 count로 하지 말것]

  • 이러한 데이터가 있을 때, 여기서 season과 color 변수 간의 독립성을 검정하고자 함
  • 카이제곱 검정을 수행하기 위해서는 두 변수간 빈도표(피벗 테이블) 생성 필요

  • 단순히 빈도니까 count라고 생각하고 생성, 컬럼이 400개나 나오는 대참사 발생

  • size로 바꿔주니 정상적으로 출력됨

 

 

[aggfunc='count'와 aggfunc='size'의 차이는 무엇인가]

  • count는 그룹화된 조건에 맞는 값 중 NaN을 제외한 개수를 세고, size는 그룹화된 조건에 맞는 행의 개수를 세어줌
  • count의 경우 개수를 세는 타겟인 value를 명시하지 않으면, 데이터프레임의 모든 컬럼에 대해서 그룹화와 집계가 진행됨(위와 같이 age 등의 모든 다른 컬럼과 color가 같이 그룹화 되는 것임)
  • 위와 같은 경우는 빈도표를 만드는 것으로 빈도, 즉 단순히 행의 수를 세면 되는 것이므로 size를 사용하는 것이 적합
  • 굳이 count를 사용하고자 한다면, NaN이 없는 컬럼을 value로 지정하면 됨(season-color 조합에 맞는 age 값 수를 세는 것이므로 size와 동일해짐)

 

 

[머신러닝 모델에 x데이터를 입력할 때는 무.조.건! 2차원 배열로 입력할 것]

  • 1차원 배열과 2차원 배열의 차이는 단순 배열이냐 행렬이냐임([1,2,3,4] or [[1],[2],[3],[4]])
  • 1차원은 n개의 값들 전체를 단일 샘플로 해석할지, 각각을 따로 보고 n개의 샘플로 해석할지 모호함
  • 머신러닝에 적용되는 식은 다변량(x가 여러개인)일 수 있기 때문에 정확한 해석을 위해 2차원 배열 필요(예 : 선형회귀 모델에서 y=ax1 + bx2 + cx3 + .... + d 일 수 있음)
  • 따라서! x변수가 하나인 경우에도 무조건 2차원 배열로 바꾸어 입력해주자! (예 : [[x값]])