본문 바로가기

스터디

[2주차] 엑셀을 통한 통계 및 데이터 분석, 파이썬 입문

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이라는 데이터셋의 형식과 대응 가능

 

 

 

 

 

 

 

 

 

 

반응형