Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 개인정보수집유효기간
- 백준
- 모델링
- python
- 상어중학교
- Ai
- 미니프로젝트
- dfs
- kt에이블스쿨
- 코테연습
- 파이썬
- 알고리즘
- Queue
- 21609
- 코테
- BFS
- 스터디
- 크롤링
- 코테공부
- map
- 음수와 size 비교
- 취준
- 코테준비
- 에이블스쿨
- 코딩테스트
- 코딩
- 데이터전처리
- C++
- 프로그래머스
- 머신러닝
Archives
- Today
- Total
얼레벌레
[3주차] 데이터 전처리 및 분석 본문
3주차 내용정리
8월 8일-9일: 데이터 전처리
9월 10일-12일: 데이터 분석 및 의미찾기
다른 블로그들 보면 교육 프로그램을 주차별로 정리하시던데,
난 주차별로 말고 1일치씩 정리해야지~! 라고 다짐을 했는데..ㅎ
한 3주차에 접어드니까 드는 생각은 시간이 너무너무너무 할애가 돼서 부담스럽다는 것이다;; (주객전도가 되어버림)
그래서 그냥 나도 주차별로 정리해야겠다 ㅋㅋ
ML 프로세스
- 비즈니스에 대한 이해
- 데이터 자체에 대한 이해 => 8월 10-12일
- 데이터 전처리 => 8월 8-9일
- 모델링
- 학습과 평가
- 적용
데이터 전처리
- 중요한 Crispy-DM 표
- x, y 분할 ( x를 feature, y를 target)
- feature engineering: 우리가 가지고있는 데이터, 도메인지식을 통해 현재 없는 feature를 만들어내는 작업
- pd.merge(df1, df2, how= , on= )
- how : left, right, outer, inner
- on : 중심으로 merge할 컬럼
- crosstab
- heatmap
- pivot
- pd.to_datetime()
- concat
- rolling, shift 함수 사용법 - 시리얼 데이터를 김밥 말듯 마는 느낌
- NaN 처리
- 제거 : dropna(axis = )
- 채우기 : fillna(method = ‘ffill’/’bfill’)
.interpolate(method=’linear’)
우리가 값을 지정하기도 함. .fillna(0) / .fillna(평균) / 범주형 데이터의 최대 빈도를 알아내기 위하여 mode()
- dummy variable : 계절을 생각해보자. (가변수화) => 범주형 데이터에 적용
pd.get_dummies(x, columns=[], prefix= , drop_first=True) - 스케일링 : 각 feature 별로 range가 다를 수 있는데, 그거를 통일시켜가지고 학습이라던가 예측의 왜곡을 막아보려는 시도
- min-max 스케일링
거치면 데이터가 0~1 사이 값으로 변환됨 (최솟값 0, 최댓값 1으로) - standardization 스케일링
평균을 0으로 두고 표준편차를 1로 잡는 스케일링 방법
⇒ 평균에 가까워질수록 0에 가까워지는 건가요?
컬럼의 데이터 자체를 평균을 0으로 만들고, 평균에 가까워질수록 0에 가까워짐, 맞음.
- min-max 스케일링
데이터 분석 및 의미 찾기
목표: 데이터가 주어지면 파악 방법을 알고, 파악을 통해 해석하기
- 원본 식별 : 데이터가 내부에 있냐 외부에 있냐
- EDA & CDA : 가설이 진짜냐
- 데이터 파악 2가지 방법 => 수치화, 시각화
- 데이터 종류 2가지 => 숫자형, 범주형
단변량 분석 (개별 변수 분포)
- 숫자형
- 수치화 : (숫자로 요약) min, max, mean, std, 사분위수 => df.describe()
- 시각화 : 히스토그램, density plot, box plot => plt.hist(), sns.kdeplot(), plt.boxplot()
- 범주형
- 수치화 : 범주별 빈도수, 범주별 비율 => df.value_counts(), df.value_counts()/df.shape[0]
- 시각화 : bar plot, pie chart
이변량 분석 (가설 x->y 확인)
- x(feature)이 숫자임
- y(target)이 숫자임
- 시각화 : 산점도 구하기 => plt.scatter()
- 수치화 : 상관계수 분석 => spst.pearsonr()
- y(target)이 범주임
- 시각화 : boxplot, density plot, histogram
- 수치화 : logistic 회귀
- y(target)이 숫자임
- x(feature)가 범주임
- y(target)이 숫자임
- 시각화 : 평균 비교 barplot => sns.barplot()
- 수치화(기본적으로 평균을 비교)
- 범주가 2개라면 : t-test(T-검정) => spst.ttest_ind()
- 범주가 3개 이상이라면 : anova(분산분석) => spst.f_oneway(P_1, P_2, P_3)
𝐹 통계량 = (집단 간 분산)/(집단 내 분산) = (전체 평균 − 각 집단 평균)/(각 집단의 평균 − 개별 값)
F 통계량이 대략 2-3차이면 '차이가 있다'(대립가설 채택)고 판단.
기준은 집단 간 분산이 커야 하고, 집단 내 분산은 작아야 함
- y(target)이 범주임
- 시각화 : 100% stacked bar(crosstab으로 집계 후 .plot.bar), mosaic plot
- 수치화 : 카이제곱 검정 (crosstab으로 집계 후 spst.chi2_contingency() )
- y(target)이 숫자임
이변량 분석 부분은 반복학습을 해야겠다..!!
'취업 > KT AIVLE SCHOOL' 카테고리의 다른 글
[4주차] 미니프로젝트 1차 (0) | 2022.09.05 |
---|---|
[에이블스쿨] 코딩마스터스 & 메타버스 스터디룸 제작 이벤트 (0) | 2022.08.19 |
[크롤링] selenium, xpath, scrapy (0) | 2022.08.09 |
[크롤링] Request header와 BeautifulSoup (0) | 2022.08.08 |
[크롤링] 동적 페이지 크롤링 (0) | 2022.08.07 |