요약/나만의 인사이트
- 데이터는 크게 수치형(양적), 범주형으로 나뉠 수 있다.
- 수치형 데이터는 연속형(ex 나이, 키 - 소수점 자리까지 숫자가쭉이어짐), 이산형(ex 시험 응시자 수, 판매자 수, 페이지 뷰 수 - 뚝뚝 끊어지는 수)데이터로 나눌 수 있다.
- 범주형 데이터는 명목형(ex 성별), 순서형(ex 사이즈, 등급)데이터로 나뉠 수 있다.
- t분포는 표본수가 작을 때 평균 비교 시 사용되는 분포이다.
- 이항분포는 비율 비교 시 사용된다. (ex 생존비율 vs 사망비율)
- t검정은 두 그룹간 평균비교할 시 사용된다. (ex 생존자 평균나이 vs 사망자 평균나이)
- t검정시 정규성, 등분산성을 만족해야한다.
- 정규성 만족하나 이분산성(분산이 다를) 경우 Welch’s t-test로 검정한다.
- 정규성을 불만족하나 충분한 표본의 크기일 경우 역시 Welch’s t-test를 사용한다.
- 정규성 불만족하고 표본도 작을 경우 Whitney test를 한다.
- 비모수 검정은 데이터 분포에 대한 가정 없이 순위 기반으로 그룹 차이를 평가하는 검정이다.
새롭게 알게 된 것
t분포 (표본 수가 작을 때 평균 비교에서 사용되는 확률 분포)
- 예시
- 생존자의 평균나이에 대한 신뢰구간은 어떻게 될까?
- 표본(데이터로 수집된 생존자들의 평균나이)
- ⇒추정⇒ 모집단(타이타닉 생존자 평균나이)
- 정의
- 표본수가 작으면 표본 평균이 더 불안정하게 흔들리는데 이를 반영한 꼬리가 두꺼운 t분포를 활용하게 된다. (좀 더 보수적인 추정)
- 정규분포처럼 생겼지만, 꼬리가 두꺼운 분포
- 다음 아래 2가지 조건을 충족할 때 사용하는 분포
- 표본수가 작을 때(보통 표본수가 30개 미만일 때)
- 모집단의 표준편차를 모를 때 사용(대부분 실제 상황)
- t값 = 표본 평균이 모집단 평균에서 얼마나 떨어져 있는지, 표준오차를 기준으로 나타내는 비율
- t분포 기반 신뢰구간 계산
- t값은 t분포표에서 찾는데, 신뢰수준과 자유도에 따라 달라진다.
- 표본이 작을수록 t값이 커져서 신뢰구간이 넓어진다. (불확실성이 더 커진다.)
- 신뢰구간=표본평균±t값×표준오차
- 자유도란?
- 통계를 계산할 때 자유롭게 변할 수 있는 값의 수
- 보통 n개의 데이터가 있으면 평균은 고정되므로 자유도를 n-1개의 값으로 정한다. 마지막 하나는 자동으로 결정된다.
- 예시문제
- 어떤 샘플 데이터 ages = [23, 25, 29, 22, 30]에 대해, 95% 신뢰수준에서 평균 나이의 신뢰구간을 t분포를 사용해 계산하기
''' 1. 표본크기 n = 5 2. 자유도 4 = 5 -1 3. 표본평균 (23+25+29+22+30) / 5 = 25.8 4. 표본 표준편차 s = 3.03 5. 표준 오차 3. 03 / 루트 5 => 1.35 6. 95% 신뢰수준에서 자유도 4인 t 값 => 2.776 7. 신뢰구간 25.8 +- 2.776 * 1.35 = (22.05, 29.55) 즉 표본을 기반으로 볼 때, 모집단의 평균 나이는 95%확률로 22.05세 ~ 29.55세 사이에 있다. '''
t검정 (두 평균 간 차이가 통계적으로 유의미한지 검정)
- t검정은 t분포를 바탕으로 통계적으로 두 집단을 비교하는 방법
- p-value(귀무가설이 참일 때 발생할 확률) 를 구해 충분히 작으면 보이는 숫자가 우연이 아니라고 판단
- 즉 귀무가설 기각, 대립가설 채택
- 예시 생존자와 사망자의 나이 평균에 차이가 있는가?
이항분포 신뢰구간 (결과 2가지 성공/실패)
- 예시
- 타이타익 평균 생존율에 대한 신뢰구간
- 생존/죽음 ⇒ 이진형 데이터
- 비율의 신뢰구간을 구할 땐 이항분포 기반 공식(Wilson 방식)을 쓴다.
- 타이타닉 탑승자의 생존률은 38%였는데, 진짜 생존률(모집단 비율)은 95% 신뢰수준에서 35.1% ~ 40.9%”일 수 있다.
- 죽음/생존률 ⇒ 이항비율
- 코드해석
from statsmodels.stats.proportion import proportion_confint : proportion_confint 은 이항비율의 신뢰구간을 계산해주는 함수
ci_low, ci_high = proportion_confint(count=success, nobs=n, alpha=0.05, method='wilson')
count = success 성공(생존)한 횟수
nobs(number of observations) = n 탑승자 수
alpha = 0. 05 신뢰수준 95% 로 5%만큼의 오차를 허용하겠다는 뜻
method = ‘wilson’ 윌슨방식
t분포와 이항분포 비교
- 평균을 추정하거나 비교 → t분포
- 비율을 추정하거나 비교 → 이항분포 기반 검정
t분포 이항분포 데이터 유형 연속형 데이터
(ex 나이)이진형 데이터
(ex 생존/죽음)추정 평균
(ex 생존자의 평균 나이)비율
(ex 생존률)검정 t검정 (표본/독립/대응) 비율검정(z검정/카이제곱검정) 사용 예시 평균 나이의 신뢰구간 생존률의 신뢰구간
발표스킬
-
-
- 회사와 관련된 발표를 준비할 시 → 홈페이지 방문, 색상, 구조, 템플릿 등 착안하여 활용
- 캔바/미리캔버스 보단 파워포인트를 활용하면서 실력을 향상시킬 것
- 폰트 → 폰트 관련해서 꿀팁으로 해당 기업 폰트 궁금하시면 크롬 확장 프로그램 ->whatFont 설치하시면 웬만하면 폰트 알려줍니다!
- 시인성 - 얼마나 잘 알아볼 수 있는가? 청중에겐 헤드카피, 서브카피까지만 보임
-
머신모델 개인과제 해설 세션
선형회귀
- 배열을 데이터 프레임으로 바꿔야 한다.
- 왜냐하면 sklearn은 df로 종속되어 있기 때문이다.
- X,y의 데이터 개수가 같아야지 df로 불러와진다.접근방법
더보기
접근순서 정리
1) df로 데이터 확인
2) seaborn으로 시각화 - seaborn을 부르려면matplotlib을 같이 불러야
3) 선형적 관계가 있는지 확인
4) 그 다음 모델 학습
관련 개념
- 선형회귀는 방정식이다.
- 선형회귀는 숫자를 예측하는 것이다.
- RMSE가 3이다. = 예측값과 실제값이 평균적으로 3차이 난다.
- 모델이 회귀계수(Coefficient), 절편(Intercept)을 구해준다.
분류
- 분류 문제는 회귀와 대부분 같고 y가 연속형에서 카테고리형으로 바뀐다는 점만 다름
- 분류로 문제를 시작하는 게 쉬움 (맞냐, 아니냐를 맞추는게 숫자를 맞추는게 더 쉬우니까)
- 랜덤 포레스트라는 성능좋은 모델
- 분류는 얼만큼 맞췄냐는 확률로 성능을 평가 (참고로 회귀는 예측값과 실제값의 차이는 얼마냐?)
- 데이터 불균형 f1 스코어를 봐야함 (재현율과 정밀도 같이 봄)
- X변수에 뻔한 변수를 넣기 보단 예상치 못한 변수를 넣어야 함. (당연한걸 넣지말자)
- random_state = 42 랜덤 포레스트 → 수많은 트리 생성 → 매번 다른 트리 → 다수결 값이 달라짐 → 실행할 때 마다 랜덤 고정 → 아무리 실행시켜도 같은 값
- y를 예측할 때 어떤 값이 더 중요한가? (변수 중요도) feature_importance_ ⇒ 어떤 의사결정을 할 수 있는가? 중요도 높은 변수를 가지고 분석을 확장
- 학습한 데이터, 평가한 데이터가 같으면 일반화하는데 어려움이 있음.
- train, test 분리할 때 과적합인지 아닌지 알수 있다.
- random_state = 42 랜덤하게 뽑히는건 뽑히는건데 랜덤형태가 고정적, seed 고정
- max_depth : 나뭇가지가 깊어지면 과적합이슈가 생길수 있으니 조정할 수 있다. 단 몇개가 최적화인지 모르니 조정할 수 있다.
- parameter : 너 여기서 멈춰
- 과적합 해결하기 cross validation _k-fold 이거 한번 더 보기
- train, test 뽑을 때 랜던하게 뽑히기 때문에 random_state=42로 고정시켜야함
- acc_train, acc_test 차이가 크면 과적합되어있다 → 수선이 필요하다고 의사결정 → 뻥튀기 등등 과적합을 줄이는 방향으로 해줘야 함. → 차이가 비즈니스에 얼마나 손해를 입히느냐 등 효과를 검토해서 적당히 이 정도 성능만 나와도 괜찮다고 넘어감 (흑백논리로 되는 것은 아님) → 10% 이내 차이가 이상적 (튜터님 개인 의견)
문제
- 80달러 이상이면 1(충성고객) 아니면0(일반고객)
- X변수 숫자로 되어있으니 인코딩 할 필요 없음
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, f1_score
논문찾기 스킬
- 데이터를 찾을 수 있는 곳
- 공공 데이터 포털
- 서울 열린데이터 광장
- 국가 통계 포털
- 캐글
- discussion, notebook을 통해 데이터 확장할 수 있음.
- 유명한 데이터셋 (ex 타이타닉, 주택가격 등등 활용)
- 논문(도메인 지식 취하기 위함) ⭐⭐⭐
- 어떻게 접근할껀가?
- 필요한 논문선택, 속독
- 논문의 구조
- introduction_서론
- method_방법
- results_결과
- discussion_함의
- 논문 읽는 전략
- 제목/초록 읽기
- 서론 확인(연구 배경, 목적 -프로젝트 시 논문적 서론을 발췌하면 좋다.)
- 결과 및 결론 : 결과가 기대하는 것과 맞는지, 눈문의 함의, 기여
- 방법론 : 신뢰할만한 논문이면 방법론을 자세히 읽음. 사용한 데이터셋, 실험방법, 통계기법 등
- 어떤 논문이 좋은 논문인가?
- 신뢰할 만한 출처 (KCI, SCOPUS, SCI, SCIE, SSCI 등급 저널)
- 최근 연구 (5년 이내)
- 연구방법의 타당성
- 연관성 있는지?
- 논문 읽기 (데이터분석할 때 논문 10개정도 보기…?!!)
- 도메인으로 활용할꺼야? → 서론 중반부~ (ex 지역적 차이를 정량적으로 평가, 맞춤형 솔루션 제공, 인구감소 문제, 지역 경제 활성화)
- 메서드 활용할꺼야? → method만 보기
- 공모전
- 데이콘 : 국내 캐글
- ai 모델 최적화 : ai factory
- 나는 8월까지 과정 끝내고 캐글, 데이콘의 입문용 대회 또는 기업이 주최하는 간단한 분석 대회를 하기
- 역할분장: 모델링/모델링/성능최적화/기획
- 꿀팁
- 모델의 성능을 위한 데이터 분석을 경계하기
- 분석 x 문제 해결 o 을 목적으로 데이터 분석하기
- 현실적용가능성, 정책적 행정 이용가능성
- 모델 , 분석 ——> 설명 —→ 의사결정
- EDA가 제일 중요하다!!!!!! ⭐
- 어떻게 접근할껀가?
특히 어려웠던 것
통계는 왜 봐도 봐도 헷갈리지..!?
다음에 적용해 볼 것
t분포, 이항분포 관련 개념 다시 보기
'기타 > 통계, 머신러닝' 카테고리의 다른 글
| 분산 -> 공분산 -> 상관관계 : 개념 빌드업해서 이해하기 (0) | 2025.12.03 |
|---|---|
| 250709_머신러닝(클러스터링, 이상탐지) (3) | 2025.07.09 |
| 250708_머신러닝(앙상블), 파이썬(람다함수, 고차함수, try-except) (0) | 2025.07.08 |
| 250707_머신러닝(비지도학습-군집, 개인과제 문제풀이(통계) (0) | 2025.07.07 |
| 250704_머신러닝(지도학습-회귀, 분류) (0) | 2025.07.04 |