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값]])
'데이터 부트캠프 - Today I Learned' 카테고리의 다른 글
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_9주차_25.01.23 (0) | 2025.01.23 |
---|---|
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_9주차_25.01.22 (0) | 2025.01.22 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_9주차_25.01.20 (0) | 2025.01.20 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] WIL(Weekly I Learned)_8주차 (0) | 2025.01.19 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_8주차_25.01.17 (0) | 2025.01.17 |