5일이나 밀려서 제목 터져나가는거 개웃기다 멋진 과거의 나
18일차
SQL
- OUTER JOIN
- LEFT JOIN
- RIGHT JOIN
- 보통 하나의 조인만을 많이 사용
- INNER JOIN
- SELECT * FROM a INNTER JOIN b ON a.id = b.id
- SELF JOIN
- 자기자신에게 조인하는 것
- 특정 시간을 기준으로 더하거나, 빼기
- DATE_ADD(기준날짜, INTERVAL)
- DATE_ADD(NOW(), INTERVAL 1 MINUTE) -> 1분 더하기
- DATE_ADD(NOW(), INTERVAL -1 DAY) -> 하루 빼기
- DATE_SUB(기준날짜, INTERVAL)
- DATE_ADD(기준날짜, INTERVAL)
- UNION
- 좌우로 붙이는 것은 JOIN 이라고 하면, UNION은 상하로 붙이는 것
- UNION을 통해서 중복을 제거할 수 있다.
- 1 - 2, 2 - 3 있으면 -> 1 - 2 - 3
- UNION ALL
- 중복 포함하여 전부 다 보여주기
- 1 - 2, 2 - 3 있으면 -> 1 - 2 - 2 - 3
- 대칭 차집합 느낌으로 보고 싶으면 LEFT, RIGHT 해서 UNION
- 개발자로서 비즈니스 가치를 제공할 줄 알 것 -> 매출 분석..
- PU : Paying User
- ARPPU : Average Revenue Per Paying User
- Funnel Analysis 퍼널 분석
- 유저 경험 루트 따라가기
- 유저의 이탈과 도착
- Conversion Rate 전환율
- 퍼널의 단계 최소화, 전환율 높이기
19일차
Tidy Data
- 분석하기 좋은 깔끔한 데이터란?
- Long-form vs. Wide-form
- wide 와 long 의 차이를 알 것
- chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/http://vita.had.co.nz/papers/tidy-data.pdf
- pd.melt(df, id_vars, var_name, value_name)
- 열에 있는 데이터를 행으로 녹이기
- 열로 가지고 있던 데이터들을 하나의 변수로 내리면 깔끔하게 변한다.
- 단위까지 맞출 것
- id_vars 로 기준이 될 값을 잡는다.
- 열로 있던 것들이 가로로 남게 되고 옆에 관측치가 오게 된다.
- Tidy Data
- 변수가 열
- 관측치가 행
- point 는 범주형
- line 은 수치형
20일차
EDA
- df.rename(columns={}) 으로 컬럼명 변경하기
- df.str.replace, df.replace 로 컬럼 내용 한번에 변경하기
- df.nunique() 로 고유값 개수 확인
- df.columns.to_list() 로 컬럼명 리스트로 변경하기
- df.values 로 시리즈의 데이터 얻어오기
- df[].str 을 사용하면 시리즈에 문자열 함수 적용이 가능하다.
- sns.countplot() 으로 빈도수 시각화
- df[df[]조건, 열].value_counts() 로 일부 데이터 빈도수 확인하기
- 여기에 plot.barh() 등 시각화 적용 가능
- df 저장할 때 df[].copy() 사용
- sns.catplot() 을 이용하여 여러 가지 그래프 적용하기
- pd.pivot_table(data, index, columns, aggfunc, values, fill_value)
- 대용량 데이터 다루기
- 샘플링 해서 가져오기
- df[].unique() 를 이용하여 샘플링 pool 구하기
- np.random.choice(pool, n)
- df[].sample(n, random_state=42).tolist()
- 리스트 변경
- random_state 는 seed
- df[df[].isin(sample_list)].copy()
- 그리고 저장해서 사용
- pd.to_datetime(df[]) 으로 datetime 자료형으로 변경해서 사용
- 뽑아쓸때는 df[].dt.month 이런식으로
- df[].dt.day_name() 으로 요일을 영문문자열로
- 리스트 컴프리핸션을 사용하여 딕셔너리 만들기
- a = { c[0] : c[1] for c in city }
- df[].map(dictionary) 로 시도코드 시도명으로 바로 변경하기
- np.triu(m, k) 이용하여 상삼각행렬 만들기
- k를 기준으로 대각선 아래는 0으로 채워져있다.
- np.ones_like(a) 를 이용하여 a 리스트 크기 만큼의 1로 채워진 행렬 만들기
- sns.heatmap(df, annot, cmap, vmin, vmax, mask, fmt)
- annot = True 하면 숫자 표현 가능
- mask 를 이용하면 0인 부분만 표현된다.
21일차
모듈화
- 모듈화를 할 때 생각해야하는 점
- 코드 함수 사이의 의존성 관계 & 추상화 정도
- 모듈에 담긴 코드의 실행 순서
- 코드는 위에서 아래로 읽는다.
- 읽는 것과 실행이 되는 것은 다른 문제
- 에러는 실행하는 순간에 나게 된다.
- 변수와 함수는 메모리에 할당이 된다.
- 정보 은닉
- 감춰줘도 되는 함수는 앞에 _ 붙이기
- 모듈을 읽기도, 재활용성도 높아진다.
- 파이썬에서 실행 순서와 구조적 프로그래밍
- 순차
- 위 -> 아래
- 함수 호출과 스택
- 반복
- 선택
- 순차
- 주피터에서 ! 붙이면 리눅스 명령어 사용 가능
- !ls -al
- from importlib import reload 를 이용하여 강제로 모듈 로드하기
- import food
- food = reload(food)
22일차
통계
- 데이터란 패턴과 노이즈의 합작
- 데이터란 감각으로 주어지는 것이기 때문에 측정에 불완정성이 있다.
- 따라서 통계에는 맞다 틀리다의 개념으로 접근하면 안된다.
- 통계학과 머신러닝의 차이점은 크게 없지만, 통계학은 모형의 타당성에 머신러닝은 예측 성능에 좀 더 관심을 기울이는 경향을 띠고 있다.
- 모집단이란 ? 연구의 관심이 되는 집단 전체
- 표본이란 ? 특정 연구에서 선택된 모집단의 부분집합
- 표본을 보는 이유는 모집단 전체를 조사하면 비용과 시간이 많이 들기 때문에
- 표본을 이용해서 모집단을 어림잡아 보기 위한 것이다.
- 기술통계란 ? 표본을 요약하고 묘사한다.
- 중심 경향치, 분위수, 변산성 측정치
- 변산성이란 데이터가 어떻게 퍼져있는가를 이른다.
- 추론통계란 ? 표본을 통해 모집단에 대해 추측한다.
- 회귀분석이란 ? 독립변수를 이용하여 종속변수를 예측하는 것
회고
통계는 어려워요. 특히 용어가 어려운 것 같아요. 보면 어쩌라고 싶습니다..
고딩 때도 확통 싫어했다구요.. 흑흑.. 그래도 공부해야겠죠...
그나저나 미뤄뒀던 TIL 쓰고 멍때리거나 놓쳤던 수업 복습해서 마음이 홀가분합니다
휴일까지 말끔하게 쉬고 다시 꾸준히 할 것 🐎
728x90
'⛺ 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽 > 멋쟁이사자처럼 AI 스쿨 6기' 카테고리의 다른 글
[TIL] Day 24 - folium, streamlit (0) | 2022.06.08 |
---|---|
[TIL] Day 23 - Downcast (0) | 2022.06.07 |
[TIL] Day 16, 17 - 시각화, 리팩토링 (0) | 2022.05.26 |
[TIL] Day 15 - Plotly (0) | 2022.05.24 |
[TIL] Day 14 - EDA (0) | 2022.05.23 |