Day 1
Part 1 . 왕초보 통계, 엑셀 데이터 탐색 시작하기
비전공자도 통계 기초가 필요한 이유
통계학이란
: 산술적 방법을 기초로 다량의 데이터를 관찰, 정리, 분석하는 방법을 연구하는 학문
: 불확실성 속에서 정보를 찾아내며, 부분으로 전체를 추론하는 학문
: OKR, KPI 등 지표를 통한 방법론
- 적절한 지표를 선정하는 방법과 기준
: Growth Marketing(Performance Marketing) 등을 통한 마케팅 성과, 효율 측정
: 비즈니스의 근거가 되는 데이터 수치는 다양한 도구를 통해 수집, 가공, 시각화가 이루어짐
: 데이터를 기반으로 수많은 의사결정을 수행하는 것은 데이터 직군 종사자만의 일이 아님
: 통계수치를 해석, 올바른 인과 관계를 분석, 인사이트를 도출하는 실무적 능력을 요구
데이터 분석 단계 및 탐색적 데이터 분석(EDA)
데이터 분석의 과정
- 데이터 분석 기획 → 데이터 수집 및 정제 → 데이터 분석 모델링 → 평가 및 결론 도출 → 분석 결과의 활용
: 데이터 분석 기획
- 비즈니스 이해 및 목표 설정(비즈니스적으로 어떤 것을 이루고자 하는지)
- 프로젝트 정의(어떤 데이터를 바탕으로 어떤 것을 예측/측정할 것인지)
: 데이터 수집 및 정제
- 분석에 필요한 데이터를 어떻게 수집할 것인지
- 데이터 전처리, 검증(수집된 데이터의 정합성, 무결성 등을 검증)
: 데이터 분석 모델링
- 탐색적 데이터 분석(EDA)
(통계량 확인 및 시각화를 통한 데이터의 특성을 파악)
(예측을 위한 수학적 통계적 모델링)
: 평가 및 결론 도출
- 모델링을 통해 생성된 결과를 활용하여 결론 도출
- 성능에 대한 평가
(도메인에 따라, 비즈니스적 요구에 따라 성능의 기준은 달라짐)
(상황에 따라 위의 과정을 수정하며 성능 개선)
: 분석 결과의 활용
- 시스템 구현(주기적으로 업데이터)
- 비즈니스 인사이트(의사결정에 도움, 시각화)
- 서비스에 활용(모델을 활용하여 서비스에 적용)
탐색적 데이터 분석
: Exploratory Data Analysis, EDA
- 기초적인 통계개념으로 데이터 전체를 파악
- 데이터의 형질에 대한 도메인 개념 축적
- 전처리의 방향성 제시
: 데이터 전처리 - 데이터 분석에 앞서 전처리 과정을 통한 데이터 가공 및 변환
: 분포 탐색, 범주형 변수 비교 분석, 결측치 탐색 등
데이터 탐색 실습
캐글
: 데이터 분석 경진대회 플랫폼
: 기업 또는 단체에서 빅데이터 제공
: 데이터 과학자들이 해결 모델을 개발하고 경쟁
데이터 과학자 커뮤니티
: 캐글에서 제공하는 데이터와 문제를 바탕으로 의견 공유
: 기업은 이를 바탕으로 정보와 인사이트, 유저는 데이터 분석 경험
실습시 사용한 통계 데이터 분석 방법
: 기술 통계법
- 숫자가 아닌 컬럼들은 분석하기 어렵기 때문에 숫자 컬럼들을 분석시 사용
Part 2. 엑셀만 알아도 시작할 수 있는 데이터 탐색
데이터 탐색 사례
대표값으로 데이터 탐색 사례
: 수집된 데이터로부터 통계량을 측정, 통계량을 통해 집단의 특성을 파악
: 기술 통계법(Descriptive Statistics, not Technical Statistics)
- 엑셀 내장 함수를 통해 수치 요약 가능
- 엑셀 피벗 차트를 활용한 시각화 가능
- 파이썬에서의 기술 통계, 시각화
차트로 데이터 탐색 사례
예) 좌석, 생존에 따른 연령 분포(바이올린 차트)
예-1) 동일 그래프의 면적을 동일하게
예2) 요금의 분포, 왜도(얼마나 한쪽으로 치우쳤는지)가 비대칭적인 분포
: 분표를 확인할 때 함께 확인해야 하는 수치
- 분포의 중심(평균, 중위값, 최빈값 등)
- 퍼짐 정도(분산, 표준편차, 사분위수, 변동계수)
- 분포의 모양=비대칭성(왜도(skewness), 첨도(kurtosis))
상관관계로 데이터 탐색 사례
예) 사용 데이터셋(IRIS dataset)
- 변수간 상관분석, 시각화(산점도 사용)
결측치, 이상치 데이터 탐색 사례
예) 타이타닉 탑승 요금 boxplot
- 등석에 따른 탑승 요금 분포
- boxplot에서 벗어난 데이터가 이상치일 수도 있다
예2) IRIS dataset boxplot
- 종별 세팔렝스와 세팔윙스 분포
- 아웃라이어 데이터를 버릴지, 함께 학습할지는 경우에 따라 다름
데이터 탐색과 통계 필요성
데이터 탐색과 통계 공부 필요성
1. 기술 통계
: 요약된 정보를 담고 있는 통계량과 시각화를 바탕으로 데이터를 탐색
: 관측된 데이터의 특성을 파악하는 좋은 수단
2. 추론 통계
: 추출한 표본의 통계량 관찰 및 분석 기법을 활용하여 모집단을 추론
: p-value 등을 활용하여 추론의 신뢰도 확보
데이터 탐색
: 적절한 통계 기법을 활용하고 수치를 뽑는 과정
: 더 나아가 데이터로부터 올바른 정보를 얻어내는 과정
: 통계 공부는 수치로부터 정보를 추출하기 위한 수단
: 기술 통게법 - 평균, 분산, 표준편차, 왜도, 첨도 등 통계량 확인
: 데이터 시각화 - 차트를 통한 분포 확인
: 상관관계 분석 - 각 변수 간의 비례관계
: 결측치, 이상치 탐지 - 관측되지 않거나 추세에서 벗어난 데이터 확인
데이터 탐색의 목적
: 어떤 변수가 결론에 맣은 영향을 미치는지
- 유의미한 변수 탐색
- 변수 간의 독립성 확보
- 의미없는 데이터 제거(효율성, 차원 축소)
: 변수의 분포에 따라 사용할 수 있는 통계적 방법론이 다름
예) 정규성 검정을 통해 정규 분포를 따르는지 아닌지를 판단
- t-검정을 통한 결론 도출
- Mann-Whitney U test, Krusjal-Wallis test 등
실습
: EDA 과정 실습
- 피벗 테이블을 활요한 기술 통계량 확인
- 차트를 통한 데이터 시각화
(히스토그램_수치형 변수의 분포 파악)
(산점도_두 변수 간의 양의 상관 관계 파악)
(Box Plot_분위수 시각화 및 이상치 탐지)
차트로 엑셀 데이터 쉽게 탐색하기
엑셀로 히스토그램 그리기(실습)
엑셀로 산점도 그리기(실습)
엑셀로 Box Plot 그리기(실습)
Part 3. 비전공자를 위한 왕초보 기초 통계
왕초보 고등학교 기초 통계
변량: 자료의 수치, 데이터의 값을 의미하는 용어
예) 100명의 키를 임의로 추출한 데이터
계급
: 변량을 일정한 간격으로 나눈 구간
: 계급을 정할 때 변량의 최소, 최대 고려
도수: 각 계급에 속하는 변량의 개수
상대도수: 각 계급에 속하는 변량의 비율
도수분포표
: 주어진 자료를 계급에 따라 나눔
: 각 계급에 속하는 도수를 조사해 순서대로 요약
: 장점 - 구간별 분포를 한눈에 알아보기 좋음
: 단점 - 각 변량의 정확한 값을 생략
히스토그램(바 차트)
: 피벗차트와 비슷한 형태로, 도수분포표를 시각화해서 보는 가장 기본적인 방법
평균: 산술평균. 변량의 합을 변량의 수로 나눈 값
분산
: 변량이 중심(평균)에서 얼마나 떨어져있는지를 보기 위한 통계량
: 편차 - 변량에서 평균을 뺀 값
: 분산 계산식 - 편차를 제곱해서 더한 값
표준편차
: 분산의 제곱근(편차의 평균과 비슷한 의미를 내포함)
: 관찰값들이 얼마나 흩어져 있는지를 하나의 수치로 나타낸 통계량
: 관측된 변량의 스케일을 표준화할 수 있는 수단
정규분포
: 평균( 𝜇 )과 표준편차( 𝜎 )에 대해 아래의 확률밀도함수를가지는 분포
정규분포가 중요한 이유
: 많은 분야의 연속형 데이터들이 종모양의 형태를 띈다는 걸 확인
: 실험 오차를 분석하면서 사용하기 시작
: 서로 다른 상황에서 비슷한 분포가 나타나는지 분석하고자
중심극한정리
: 독립적인 확률변수들의 평균은 항상 정규분포에 가까워진다
: 수학적인 방법을 통해 증명
평균, 표준편차에 따라 달라지는 정규분포
표준 정규 분포
: 정규 분포 중에서 평균이 0, 표준편차가 1인 정규분포
표준화
: 다양한 형태의 정규 분포를 표준 정규 분포로 변환
: 방법
- 표준 정규 분포에 대한 값을 이용해 원래 분포의 확률을 구할 수 있음
- 표준화 공식 = (변량 - 평균)/표준편차
예) 키 분포. 평균 170, 표준편차 5. 키가 175-180일 확률은?
A) z1=(175-170)/5=1, z2=(180-170)/5=2
표준 정규 분포를 기준으로 확률을 역산할 수 있음
표준화의 중요성
: 다양한 데이터를 균일한 기준으로 비교할 수 있음
: 이후 다양한 통계량(비교, 해석 기준 등)을 구하는 과정에서 계속 등장
기술 통계
기술 통계(Descriptive Statistics)
: 데이터의 간결한 요약 정보
: 수치적인 통계량 또는 시각화
: 데이터의 특징을 파악하는 관점
- EDA 단계에서 주요하게 사용됨
추론 통계(Inferential Statistics)
: 모집단으로부터 추출한 샘플(표본)을 사용
: 모집단에 대한 추론이 목적
: 전체 모집단을 조사할 수 없을 때 유용
: p-value를 구하는 등의 과정을 거쳐서 모집단에 대한 가설을 검정
대표값: 자료의 특성을 나타낼 수 있는 대표성을 띠는 수치
기초통계량
: 중심경향성 - 데이터 분포의 중심을 보여주는 값(평균, 중간값 등)
: 퍼짐정도 - 자료가 얼마나 흩어져 있고 얼마나 모여있는지(분산, 표준편차, IQR 등)
: 왜도 - 분포의 좌우 비대칭성 정도
: 첨도 - 분포의 뾰족한 정도
중심경향성(Central Tendency)
: 중심으로 모이는 경향
: 중심 경향성을 나타내는 통계량 - 최빈값, 중앙값, 평균값 등
최빈값(Mode)
: 가장 빈번하게 나타나는 값
: 범주형 자료에서 대표값으로 최빈값을 주로 사용
중앙값(Median)
: 자료를 크기 순으로 나열했을 때 가운데 위치하는 값
: 순서형 자료의 대표값으로 적합한 통계량
: 이상치에 크게 영향받지 않음
: 크기 순서로 나열할 수 없는 경우에는 사용 불가
산술 평균(Arithmetic Mean, Mean)
: 자료의 값을 모두 더해서 자료의 수로 나눈 값
: 숫자가 있는 자료, 그 중에서도 주로 연속성 자료에 사용
: 이상치에 영향을 크게 받을 수 있음
: 가중 평균(Weighted Mean) - 자료의 중요도에 따라 가중치를 부여한 평균
: 기하 평균(Geometric Mean)
- 성장률 등 이전 시점의 비율에 대한 평균을 구할 때 유용함
- 예) CAGR(평균 연간 성장률), 주가 상승률 등
회귀분석, 공분산, 상관계수
회귀분석을 공부하는 이유
: 보통의 경우 결과를 설명하기 위해 하나의 변수만 영향을 주지는 않음
: 결과를 종속변수, 종속변수를 설명하기 위한 변수들을 독립변수라고 함
회귀분석
: 변수 사이의 모형을 구한 뒤 적합도를 측정하는 분석 방법
: 대표적인 모형이 선형 회귀 모형
: 장점
- 대부분의 경우 결과를 설명하는 요인이 매우 많음
- 둘 이상의 변수 간 관계를 보여주는 통계적 방법
- 종속변수에 영향을 미치는 독립변수의 영향력을 판단 가능
: 주의점 - 인과관계를 설명해주진 못한다
공분산
: 2개의 확률변수의 선형 관계를 나타내는 값
: 부호☆
- (-) → 음의 상관관계(반비례)
- (0) → 상관관계 없음
- (+) → 양의 상관관계(정비례)
: 주의점
- 두 변수가 아무 관계없는 독립 변수일 때 → 공분산=0
- 공분산=0 → 두 변수가 독립은 아닐 수 있음!
: 표본공분산 수식(아래)
상관 계수
: 피어슨 상관 계수(Pearson Correlation Coefficient)
- -1에서 1 사이의 값만 가짐
- 상황에 따라 기준이 다르지만 절대값이 0.5 - 0.7 이상이면 강한 상관관계를 가진다고 봄
- 절대값이 0.2 이하인 경우 상관관계가 약하거나 없다고 해석
- 수식(아래)
Day2
CH 04. 탐색적 데이터 분석(EDA)
탐색적 데이터 분석(EDA) - 복습
: 주어진 가료만가지고도 충분한 정보를 찾을 수 있도록 하는 분석 방법
: 유용하게 사용할 수 있는 엑셀 도구 - 데이터 분석 도구, 피벗 테이블, 박스 플롯 등
: 결측치와 이상치의 처리 방법은 업무자의 주관이 많이 개입하는 요소
: 상관 분석과 상관 관계(양, 음), 주의점(상관 관계!=인과 관계)
: 산점도
CH 05. 데이터 전처리
데이터 전처리 - 복습
: 가장 많은 시간과 비용이 필요한 과정
: 함수를 활용한 데이터 전처리와 추출(IF, VLOOKUP 등)
함수 실습
COUNTIFS 팁
: 이상, 이하를 표현할 때 (">="&특정 셀)과 같은 형식으로 표현 가능
챗지피티를 활용한 데이터 분석, 코드 이용
데이터 유효성 검사
: 특정 셀이나 범위에, 상황에 따라 유효하다고 인정하는 데이터만 입력되게 하는 기능
: 가장 많이 쓰이는 경우 - 데이터를 목록화할 때
CH 06. 데이터 분석/모델링
통계적 데이터 분석 / 모델링
통계학
: 산술적 방법을 기초로 다량의 데이터를 관찰하고 정리 및 분석하는 방법을 연구하는 수학의 한 분야
: 연구 대상인 모집단으로부터 자료를 수집, 정리, 요약하고 표본 정보로부터 추출했던 대상 전체인 모집단에 대한 최적의 의사 결정을 내릴 수 있도록 정확한 정보를 제공하는 방법론을 연구하는 학문
기술 통계학
: 요약 통계량, 그래프 표 등을 이용해 데이터를 정리, 요약하여 데이터의 전반적인 특성을 파악하는 방법
추론 통계학
: 데이터가 모집단으로부터 나왔다는 가정 하에 모집단으로부터 추출된 표본을 사용하여 모집단의 특성을 파악하는 방법
: 가설 검정
- 통계적 추론의 하나로, 모집단 실제의 값이 얼마가 된다는 주장과 관련해 표본의 정보를 사용해서 가설의 합당성 여부를 판정하는 과정
- 귀무 가설(영가설. 기본적으로 참으로 추정되며 처음부터 버릴 것으로 예상하는 가설)
- 대립 가설(연구 가설. 귀무 가설에 대립하는 명제. 독립 변수와 종속 변수 사이에 어떤 특정한 관련이 있다는 결과가 도출됨. 귀무가설을 기각하는 반증의 과정을 거쳐 참이라고 받아들여질 수 있음)
대립 가설의 종류
: 제 1형 - 양측 검정 ( 𝜇!=x )
: 제 2형, 제 3형 - 단측 검정( 𝜇<x, 𝜇>x )
가설 검정의 기준1_p-value(유의 확률)☆
: 귀무 가설이 맞다는 전제 하에, 표본에서 실제로 관측된 통계치와 '같거나 더 극단적인' 통계치가 관측될 확률
- 예) 돼지 농장 사례(농장 주인 왈, 농장에 총 10000마리의 돼지가 있고, 평균 체중은 100kg)
- 귀무 가설: 돼지 10000마리의 평균 체중은 100kg이다
→ 100마리를 무작위로 선정해 평균 체중 측정. 표본에 따라 다양한 평균값이 나올 수 있음
→ 하지만 전체 평균이 진짜 100kg라면 표본의 평균도 100kg 근처에서 형성될 가능성이 큼
→ 전체 평균이 진짜 100kg일 때 표본의 평균이 30kg가 나올 확률은 5% 미만임
→ 하지만 추출 표본의 평균이 30kg가 나왔다면, 전체 평균이 100kg가 아닐 것이라 강하게 의심
→ 돼지 10000마리의 평균 체중이 100kg라는 귀무 가설을 기각함
→ 이 때 30kg가 나오거나 30kg보다 더 극단적인 평균이 나올 확률이 p-value
: 주의사항
- p-value는 관계나 집단들 사이에 차이가 생기는 것이 우연인지 변수에 의한 것인지 여부를 밝히는 것
- 이것이 효과나 변화의 정도, 관걔의 강도나 크기 등을 설명하는 것은 아님
- 상관 계수 r이나 결정 계수 r(제곱) 등의 지표를 함께 활용해 분석 결과를 더 정확히 표현할 수 있음
가설 검정의 기준2_t-test
: 두 집단(또는 한 집단의 전/후)의 평균에 통계적으로 유의미한 차이가 있는지를 검정
: 시행 단계(적합한 t-test 방법을 선택하기 위한 F 검정 필요)
- 변수(집단) 선택 → F-검정 → t-test → 결과 해석
- F-검정(두 집단의 분산에 통계적으로 유의미한 차이가 있는지를 검정) ☆
→ 귀무 가설(두 집단의 분산에 유의미한 차이가 없다. p>=유의수준(0.05))
→ 대립 가설(두 집단의 분산에 유의미한 차이가 있다. p<유의수준(0.05))
→ 귀무 가설이 채택될 시 등분산 가정 t-test, 대립 가설이 채택될 시 이분산 가정 t-test
- F-검정은 두 집단의 분산 차이를 검정해 각 상황에 맞는 t-test 방법을 선정하기 위해 사용
회귀 분석의 개념
: 두 개 이상의 연속형 변수(수치)인 종속 변수와 독립 변수 간의 관계를 파악하는 분석
: y=ax+b
: y=종속 변수. 우리가 알고 싶은 값
: x=독립 변수. 우리가 알고 있는 값
: 목적 - 두 변수 간의 관계를 파악해 알고 싶은 값을 예측
: 회귀 분석의 종류
- 선형 회귀 분석[ 단순 선형 회귀 분석(독립변수 1개)&다중 선형 회귀 분석(독립 변수 여러 개) ]
- 비선형 회귀 분석
단순 선형 회귀 분석
: 독립 변수(x)가 변할 때 종속 변수(y) 값이 어떻게 변하는지 가장 잘 설명하는 직선을 찾아 그 직선이 x와 y의 관계를 얼마나 설명하는지 분석하는 방법
: x와 y의 1차 방정식 구하기
: 데이터를 잘 설명하는 직선이란
- 값과 직선 사이의 거리가 가까울 때, 즉 오차값의 합계가 작은 직선이 좋은 직선
- 오차값 = 실제값 - 예측값
- 오차값의 합계 = 오차의 제곱들의 합
: 평가와 해석에 영향을 미치는 요소
- 결정 계수 (0~1값을 가지며 1에 가까울수록 회귀 모형이 실제 값을 잘 설명함)
- F값 (0.05 미만일시 유의미한 회귀 모형이며 사용 가능함)
- Y절편(b값) 및 X1의 계수(a값) 확인
여담_데이터 차트 제작시 주의해야 하는 차트
: 분산형(데이터의 순서가 왼쪽부터 x, y여야 함)
: 거품형(데이터의 순서가 왼쪽부터 x, y, 거품이어야 함)
Day3
CH 06. 데이터 분석/모델링
통계적 데이터 분석 / 모델링
다중 선형 회귀 분석
: 독립 변수가 x1, x2, x3 등으로2개 이상일 때 독립 변수들과 종속 변수 간의 관계를 파악하는 분석
: 평가와 해석
- 조정된 결정 계수 (0~1값을 가지며 1에 가까울수록 회귀 모형이 실제 값을 잘 설명함)
- F값 (0.05 미만일시 유의미한 회귀 모형이며 사용 가능함)
- Y절편 및 각 독립 변수의 p-value와 계수 (P-값이 0.05보다 작은 변수들이 종속변수 y값에 영향을 미칠 것으로 기대됨)
여담_선형 회귀 분석 시 신뢰도를 높히기 위한 절차
: 00. 상관 분석을 활용해 16개 미만의 종속 변수와 상관 관계가 강한 변수들을 추출
: 01. 모든 독립 변수들을 포함한 다중 선형 회귀 분석
: 02. 유의미한 독립 변수들로만 다시 다중 선형 회귀 분석
: 03. 유의미한 독립 변수들을 각각 종속 변수와 단순 선형 회귀 분석
시계열 데이터 분석
: 시간의 흐름에 따라 발생된 데이터를 분석하는 기법
: 시계열 데이터 - 시간의 흐름에 따라 정리한 데이터
: 정상 시계열 데이터(정상성ㅇ)와 비정상 시계열 데이터(정상성x)로 구분
- 정상성: 추세나 계절성을 가지고 있지 않으며, 관측된 시간에 무관한 성질
: 데이터의 특성에 따라 다양한 분석 기법을 사
지수 평활법(Exponential Smoothing)
: 현재 시점에 가까운 시계열 자료에 큰 가중치를 주고, 과거 시계열 데이터일수록 작은 가중치를 주어 미래 시계열 데이터를 예측하는 기법
: 단수 지수 평활법(Single Exponential Smoothing)
- 미래의 예측 값 = 과거의 실제 값*a + 과거의 예측 값*(1-a)
- a = 실제값을 반영할 가중치(0~1 사이의 값)
엑셀에서 사용할 수 있는 지수 평활법 관련 예측 함수
: 비교적 뚜렷한 계절성*이 있는 데이터 예측에 사용 가능
: =FORECAST.ETS(target_date, values, timeline, [계절성 주기], [누락 데이터 처리], [중복 데이터 처리])
- target_date: 예측할 날짜
- values: 알고 있는 실제 값들 (예 - 과거 매출 등)
- timeline: 과거의 날짜들
- 계절성 주기
: 0(주기가 없다고 생각하고 선형 예측), 1(엑셀에서 자동으로 계절성 예측), 2 이상(해당 주기로 데이터 예측)
- 누락 데이터 처리: 1 또는 비어 있는 경우(누락 데이터를 주변 데이터의 평균으로 계산), 0(누락된 데이터를 0으로 계산)
- 중복 데이터 처리: 중복된 시계열이 있을 경우, 중복된 값을 어떻게 처리할지 결정
* 계절성: 적어도 3주기 이상 반복되는 패턴을 관측할 수 있어야 함
머신 러닝
머신 러닝(기계 학습 Machine Learning)
: 경험과 학습을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구이며 인공지능의 한 분야
: 컴퓨터가 어떤 작업(Task)을 하는 데 있어서 경험(Experience)으로부터 학습하여 성능(Performance)을 향상시키는 학문
: 인공지능>머신러닝>딥러닝
- 인공지능: 사고나 학습 등 인간이 가진 지적 능력을 컴퓨터를 통해 구현가는 기술
- 머신 러닝: 컴퓨터가 스스로 학습하여 인공지능의 성능을 향상시키는 기술 방법
- 딥러닝: 인간의 뉴런과 비슷한 인공신경망 방식으로 정보를 처리
: 학습 방법에 따라 지도 학습, 비지도 학습, 강화 학습으로 구분됨
지도 학습(Supervised Learning)
: 정답이 있는 데이터를 활용해 데이터를 학습하고, 학습한 모델이 얼마나 정답을 정확하게 맞추는지 평가하는 학습 분류
: 회귀 문제들을 해결할 수 있음
: 지도 학습의 종류
- Regression(회귀): 연속형 수치의 입력 값을 활용해 특정 수치를 예측하는 지도 학습
- Classification(분류): 주어진 입력 값을 2개 혹은 여려 개의 결과값으로 분류하는 지도 학습
비지도 학습(Unsupervised Learning)
: 정답이 없는 데이터를 활용해 데이터를 학습
: 데이터가 어떻게 구성되어 있는지, 혹은 어떻게 분류될 수 있는지에 대한 문제 해결
강화 학습(Reinforcement Learning)
: 에이전트(학습 시스템)가 취한 행동에 대해 보상 또는 벌점을 주어 가장 큰 보상을 받는 방향으로 유도하는 방법
: 가장 큰 보상을 얻기 위해 에이전트가 해야 할 행동을 선택하는 방법을 정의하게 되는데 이를 '정책'이라고 함
CH 07. 데이터 시각화
데이터 시각화
데이터 시각화
: 데이터 분석 결과를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달하는 과정
: 의사 결정자가 데이터 간의 관계를 식별하고 숨겨진 패턴이나 추세를 감지할 수 있도록
: 데이터 중심 의사 결정 및 전략적 계획 수립을 지원하는 이야기를 만드는 스토리텔링
: 예) 나이팅게일의 로즈 다이어그램 - 위생 개선을 위한 예산을 마련하고자 사망자 현황 시각화
: 데이터 시각화는 하나의 전략
: 데이터 시각화의 구성요소 - 스토리, 데이터, 시각적 개체
차트
: 고려해야 할 3가지
- 어떤 숫자로 차트를 그릴지, 어떤 차트가 숫자를 가장 잘 설명하는지, 어떻게 디자인하는 게 가장 효과적인지
: 차트는 숫자의 다른 표현 - 어떤 숫자로 차트를 그릴지를 먼저 결정해야
: 차트 종류 선택
: 강조할 데이터 선택
- 모든 데이터 단색 변경, 중요한 데이터를 메인 컬러로 강조, 데이터 레이블 추가 및 윤곽 제거 등
거품형 차트
: 숫자의 크기나 비율을 거품으로 나타내는 차트
: 거품의 위치와 크기, 색 등을 활용해 정보를 표현
여담
:엑셀 참조하기 좋은 책
- 'DATA SMART 엑셀로 이해하는 데이터 과학 입문'
Day4
Part 4.기술통계 기초 개념을 엑셀 데이터 탐색에 적용해 보기
대표값으로 데이터 분포 파악하기
참조 함수
: 표준 오차 = 표준편차/sqrt(데이터 수)
*sqrt 함수: 루트 함수
: 표준 편차 함수 = STDEV.S(데이터 범위)
: 분산 함수 = VAR.S(데이터 범위)
: 첨도 함수 = KURT(데이터 범위)
: 왜도 함수 =SKEW(데이터 범위)
*왜도가 절댓값 기준으로 3을 초과할 경우 한 쪽으로 쏠려 있음
: 사분위 함수 = QUARTILE(데이터 범위, 분위수(0~4 중 택 1))
: IQR = 3분위-1분위
이상치 탐지
사분위수(IQR) 활용 이상치 탐지하기
: 이상치 = Q1 -1.5IQR 미만 OR Q3 + 1.5*IQR 초과
두 변수의 상관관계 분석하기
산점도 활용 및 회귀선 찾기
공분산, 상관계수 측정 및 회귀선 비교하기
: 공분산 분석보다는 상관 분석을 추천하는 편
: 여담_추세선의 기울기는 상관 계수와 관계가 있음
Part 5. 추론 통계 맛보기와 공공데이터 셋 탐색해보기
중심극한정리
중심극한정리
: 표본 평균의 분포가 정규분포를 따른다
: 표본이 충분히 많아지면 표본 평균의 분포가 정규분포를 따름
비교 예시_이항분포
: n=100, p=0.7인 상황
: 평균= n*p = 70
: 분산 = 평균*(1-p) = 21
: 표준편차 = sqrt(분산) = 4.58
: Q. 원하는 수가 50~70 사이로 나올 확률은?
- 누적분포함수(binom_dist) 사용
- 정규분포 활용
: x=값, z=원수치인 x가 평균에서 떨어져 있는 정도
: z = (x-평균)/표준편차
- 표준 정규 분포 활용(norm.s.dist)
→ 이항분포가 정규분포에 가까워지는 걸 확인할 수 있음
분포의 모양과 추론통계
추론 통계
: 모집단에서 추출된 표본으로부터 모수와 관련된 통계량의 값을 계싼하고 이것을 이용해 모집단의 특성을 알아내는 과정
분포와 추론의 가설 검정
: 독립성 검정 - 두 변수 사이에 상관관계가 있는지
: 샤피로 윌크 검정
- 표본이 정규분포로부터 추출된 것인지
- 즉 모집단이 정규분포를 따르는지
- 정규성을 검정할 때 가장 많이 사용하는 검정 중 하나
: 카이제곱 검정 - 데이터가 특정 분포를 따르는지
: K-s 검정
- 콜모고로프 스미르노프 검정
- 데이터가 같은모집단으로부터 추출된 건지, 두 데이터가 차이가 있는지
: 통과한 검정에 따라 적용하는 통계 방법이 달라짐
공공 데이터 셋으로 데이터 탐색해보기(실습)
Part.3 PYTHON
PYTHON 기초 살펴보기
파이썬 소개
: 인터프리터 언어 - 컴파일 없이 코드를 바로 실행할 수 있음
: 인덴트(띄어쓰기)에 매우 민감
코랩을 이용한 분석환경 세팅
: 구글 드라이브에서 .ipynb 파일을 colab을 사용해 열 수 있음
: 데이터를 임포트하고 싶을 때 아래의 코드를 사용해 드라이브 마운트 권한 실행 후 드라이브에서 데이터 파일 임포트
from google.colab import drive
drive.mount('/content/drive')
: 간단 단축키 모음
- 현재 셀 위에 새로운 셀 삽입 (Ctrl + M + A)
- 현재 셀 아래에 새로운 셀 삽입 (Ctrl + M + B)
- 코드 셀로 변경 (Ctrl + M + Y)
- 텍스트 셀로 변경 (Ctrl + M + M)
- 셀 삭제 (Ctrl + M + D)
- 현재 셀 실행 후 이 셀에 머무름 (Ctrl + Enter)
- 현재 셀 실행 후 다음 셀로 넘어감 (Shift + Enter)
: 기타 기능들은 강의자료 참고
PYTHON 기초 살펴보기
변수
: 데이터를 저장하고 추후에 사용할 수 있게 해주는 저장 공간
: 이름과 값으로 구성
: 이름은 변수를 참조할 때 사용되고 값은 실제 데이터를 의미
: 반복 사용하는 어떤 값을 저장하고 사용할 때마다 불러오는 것이 재사용할 때 편리하기 때문에 변수가 필요
: 변수는 공간이므로, 공간에 새로운 값을 할당시 새로운 값으로 변경
변수를 만드는 방법
: 변수 이름 = 저장할 값
* 파이썬에서의 =는 변수를 저장할 때 사용
* 수식 등에서 등호를 사용하고 싶을 시 ==로 사용
: 한 줄에 여러 개의 변수 작성 가능
- 예) a, b = a에 저장할 값, b에 저장할 값
: a와 b에 같은 값 지정 가능
- 예) a = b = 저장할 값
변수 이름 규칙
: 영문자+숫자(혹은 언더바_)의 형식을 취함
: 언더바 외 특수문자는 허용치 않음
: 공백 불가능
: 소문자와 대문자는 구분하여 사용
: 숫자가 맨 앞에 오는 건 허용치 않음
자료형
: 변수의 종류
: 자주 사용하는 자료형
- 숫자형
- 문자형
- 리스트(list)
- 튜플(tuple)
- 딕셔너리(dict)
- 집합(set)
print 함수
: 결과물을 출력하는 함수
: 수식 - print(변수 or 출력하고 싶은 결과물)
* sep: 여러 값을 한 번에 출력하고자 할 때 구분 방식을 정하는 함수
* /n: 줄바꿈 옵션
*end: 여러 번 호출한 값을 한 줄에 출력하고자 할 때 사용하는 함수
자료형_숫자형
: 숫자 형태로 이루어진 자료형
: 정수형(int)와 실수형(float) 등이 있음
: 연산자 중 참고할 만한 함수들
- 제곱: a**b
- 나눗셈 나머지: a%b
- 나눗셈 후 몫: a//b
: 할당연산 중 참고할 만한 예시
- a += 1 → a = a +1 과 같은 의미
- a -= 1 → a = a - 1
- a *= 2 → a = a*2
- a /= 2 → a = a/2
자료형_문자열
: 문자 형태로 이루어진 자료열
: 큰 따옴표 혹은 작은 따옴표로 감싸주면 문자열이 됨
: 문자열 안에 따옴표를 넣고 싶다면 아래와 같이 해야 함
- ' "문자열" ' or " '문자열' "
- a = '\'Hello, World\''
- a = "/"Hello, World/""
: 여러 줄을 하나의 변수에 넣고 싶다면 따옴표를 세 번 사용함
- a = ''' Hello, World
Hello, Python '''
- a = 'Hello, World\nHello, Python'
문자열 연산
: 문자열도 더하기와 곱하기를 사용 가능함
문자열 인덱싱
: []를 통해 지정할 수 있음
: 첫 번째 위치는 0이며, 맨 마지막 위치는 -1로도 표현 가능
: :를 통해 슬라이싱 가능
- 예) 변수 [ 시작 인덱스:끝 인덱스:간격]
: 공백 또한 한 칸 차지
문자열 길이: len 함수 사용
문자열과 숫자형의 혼용
: 문자열과 숫자형을 더하면 에러 발생
: 에러발생을 방지하기 위해 숫자형을 문자열로 변환하거나 문자열을 숫자형으로 바꾼 후 더해야 함
: 사용 함수
- str(숫자형 변수)
- int(문자형 변수), float(문자형 변수)
문자열 포맷팅
: 문자열 안에 어떤 값을 삽입하는 방법
: 사용 예시
- num = 14
a = 'My favorite number is {}'.format(num)
- num = 14
a = f'My favorite number is {num}'
문자열 함수
: upper - 대문자로 변환
: lower - 소문자로 변환
: lstrip, rstrip, strip - 공백 제거한 값을 출력
: count - 문자열 개수 세기
: find
- 문자열 안의 특정 문자열이 처음 나온 위치 반환
- 문자열이 없다면 -1을 반환함.
: index - find와 같으나 문자열이 없을시 오류 발생
: join - 특정 문자열을 각각의 문자 사이에 삽입하여 출력
: split - 특정 문자열을 기준으로 문자열을 나눈 값을 출력
: replace - 특정 문자열을 특정 문자열로 반환
: startswith, endswith - 특정 문자열로 시작하는지 혹은 끝나는지 확인
* 문자열 함수들은 변수의 값을 변경하는 것이 아니라 함수의 결과물을 출력
* 변수의 값을 변경하고 싶다면 변수에 값을 덮어씌워야 함
input 함수
: 변수 = Input('입력 받을 때 띄우고 싶은 말')의 형식으로 변수에 들어갈 값을 입력받을 수 있음
: 기본적으로 문자열 타입이고 input 앞에 타입 변환 함수를 씌우면 타입 변경이 가능
자료형_리스트
: 요소들의 모음을 나타내는 자료형
: 요소들을 대괄호 []로 감싸 만들 수 있음
: 모든 자료형을 리스트의 요소로 담을 수 있음
리스트 인덱싱
: 문자열과 마찬가지로 리스트 적용 가능
: 리스트 안에 리스트가 있는 경우 인덱싱을 두 번 하면 리스트 안의 리스트 요소를 가져올 수 있음
리스트 연산
: 더하기와 곱하기를 할 수 있음
: + - 리스트와 리스트를 연결하여 하나의 리스트를 만듦
: * - 리스트와 숫자형을 곱하여 리스트 안의 요소를 숫자만큼 반복한 하나의 리스트 제작
: 리스트에 다른 자료형을 더하면 오류 발생
리스트 값 치환
: 인덱싱을 통해 값 수정 가능
리스트 함수
: len 함수 - 리스트의 길이
: sum, min, max 함수 - 리스트 요소들의 합, 최솟값, 최댓값
: in - 특정 요소가 리스트 안에 있는지 확인
: append, extend - append는 리스트의 맨 마지막에 요소를 추가, extend는 리스트의 맨 마지막에 다른 리스트를 추가
: insert - 리스트의 특정 위치에 특정 요소를 삽입
: remove, pop - 리스트의 요소를 삭제
- remove(특정 요소를 제거)
- pop(특정 위치의 요소를 제거하고 그 값을 반환)
: count - 리스트의 특정 요소의 개수를 반환
: index - 리스트에 요소가 있는 경우 인덱스 값을 반환
: sort, sorted - 리스트를 정렬
- .sort( )(정렬된 리스트 반환)
- sorted( )(정렬된 리스트 출력)
: join - 리스트의 요소들을 하나의 문자열로 합침
: split - 문자열을 리스트의 요소들로 쪼갬
range 함수
: range(시작, 끝, 간격)
: 간격은 입력하지 않으면 디폴트 값이 1
: list(range()) - 리스트로 변환하고 싶을 땐 list( ) 함수를 씌움
자료형_튜플
: 리스트와 유사하게 여러 요소를 묶을 수 있는 자료형
: 그러나 수정과 삭제 불가능
: 프로그램 실행 중 절대 변해서는 안 되는 값들을 주로 튜플로 지정
: 요소를 괄호()로 감싸면 튜플이 됨
: 요소가 하나일 경우 뒤에 쉼표(,)를 붙임
: 인덱싱, 연산 가능
: 치환은 불가능
: a.sort( )는 사용 불가능하지만 sorted( )는 사용 가능
- 튜플을 리스트로 변환하여 출력하기 때문
- 리스트를 다시 튜플로 바꾸고 싶다면 tuple(sorted( )) 입력
튜플 함수
: len - 튜플의 길이
: sum, min, max - 튜플의 요소들의 합, 최솟값, 최댓값
: in - 특정 요소가 튜플 안에 있는지 확인
: count - 튜플의 특정 요소의 개수를 반환
: index - 튜플에 요소가 있는 경우 인덱스 값을 반환
: join - 튜플의 요소들을 하나의 문자열로 합침
튜플 함수 심화
: max(튜플, key = lambda x:x[인덱스])
- 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최댓값을 탐색함
: min(튜플, key = lambda x:x[인덱스])
- 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최솟값을 탐색함
: 절댓값을 기준으로 최댓값/최솟값을 탐색하고 싶을 시
- print(max(a, key = lambda x:abs(x[1])))
- print(min(a, key = lambda x:abs(x[1])))
* abs: 절댓값을 구하는 함수
자료형_딕셔너리
: 키(Key) - 값(Value)의 쌍이 모여있는 사전 형태의 자료형
: 키는 값의 쌍을 중괄호{}로 감싸줌
: 키는 중복될 수 없고, 리스트는 키가 될 수 없음
: 위치로 인덱싱 불가
: 요소 추가 - 딕셔너리변수명[추가할키]=추가할값
: 요소 삭제 - del 딕셔너리변수명[삭제할키]
: 딕셔너리 키로 값 찾기 - 딕셔너리변수명[찾을키]
딕셔너리 함수
: keys() - 키들을 반환
: values() - 값들을 반환
: items() - 키와 값의 튜플 쌍들을 반환
: get(원하는키값)
- 원하는 키 값에 대응되는 값을 반환
-딕셔너리변수명[원하는키값]과 똑같은 값을 반환
: update - 딕셔너리에 새로운 딕셔너리를 추가
: zip - 튜플/리스트 두 개를 하나의 딕셔너리로 변환
* 결과를 리스트의 형태로 바꾸고 싶을 시 list() 함수로 감싸기
* 딕셔너리 함수는 반복문을 같이 자주 쓰는 편
딕셔너리_데이터셋과 대응
: 각 키의 값의 길이가 같을 경우, dataframe이라는 데이터셋의 형식과 대응 가능
'스터디' 카테고리의 다른 글
[5주차] 파이썬 실습2 및 1차 미니 프로젝트 (0) | 2024.05.24 |
---|---|
[4주차] 파이썬 기초2 및 실습 (0) | 2024.05.17 |
[3주차] 파이썬 기초 (0) | 2024.05.10 |
[1주차] 데이터 분석과 빅데이터, 엑셀 (0) | 2024.04.26 |
데이터 분석 부트캠프 14기 오리엔테이션 (0) | 2024.04.22 |