Skip to content

Instantly share code, notes, and snippets.

@FinanceData
Last active May 18, 2022 03:59
Show Gist options
  • Save FinanceData/908f06038af937ee1fddad2538e831fc to your computer and use it in GitHub Desktop.
Save FinanceData/908f06038af937ee1fddad2538e831fc to your computer and use it in GitHub Desktop.
EDA 소개
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "PXElJLwjiB-0"
},
"source": [
"# Introduction to EDA\n",
"Exploratory Data Analysis\n",
"\n",
"<img width=\"20%\" src=\"https://i.imgur.com/D9tPXHs.png\">\n",
"\n",
"\n",
"**2019-2022 [FinanceData.KR]() | [facebook.com/financedata]()**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fDHHYyVDiB-7"
},
"source": [
"## CDA <sup>Confirmatory Data Analysis</sup>\n",
"* 관측자료의 효고의 재현성, 전통적인 분석과정\n",
"* 신뢰구간의 추정, 검정 등 통계적 분석\n",
"* [목적설정] &rarr; [통계적 가설 설정] &rarr; [데이터 수집] &rarr; [통계분석 적용] &rarr; [모수 추정및 가설 검정]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vlgxaCOgiB-9"
},
"source": [
"## EDA <sup>Exploratory Data Analysis</sup>\n",
"탐색적 자료분석 \n",
"\n",
"* 데이터의 **특징**과 내재하는 **구조**적인 관계를 알아내기 위한 분석기법\n",
"* 이론적 모형을 적용하기보다 데이터를 있는 그대로 보려는데 중점 <u>**데이터 스스로 말하도록 유도**</u>하는 분석법\n",
"* 죤 튜키<sup>J.W.Tukey</sup>: **\"종이와 연필을 가지고 자료를 분석하자\"** <br/> (프린스턴 대학과 벨연구소, EDA의 첫저서 Exploratory Data Analysis 1977)\n",
"* 자료의 구조 및 특징 파악을 위하여 **자료의 요약**과 **그래프 기법**의 활용\n",
"* 추론통계학이 보다 기술통계학 <sup>descriptive statistics</sup> 의 중요성을 강조\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GD2RyLAciB-_"
},
"source": [
"## EDA 목적과 철학\n",
"자료 요약과 그래프 방법 최대한 활용\n",
"* 중앙값 <sup>median</sup>을 평균보다 중요하게 사용 (Median은 outlier에 영향을 받지 않는다)\n",
"* 세심한 관찰, 실험과 분석의 반복을 통하여 **insight** 를 얻는 것이 가능\n",
"* 컴퓨터의 성능향상으로 환경이 달라졌다. 더 많은 탐험 정신, 도전, 해당 분야 전문가와 협업 강조"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dHuuRzaJiB_B"
},
"source": [
"## EDA vs CDA\n",
"\n",
"* EDA is about looking at data to see what it seems to say\n",
"* EDA is a detective work.\n",
"* Data Mining is a modern EDA\n",
"\n",
"EDA | CDA\n",
"-- | --\n",
"가진 데이터에 의존 | 통계학적 모델에 의존\n",
"기술 통계 중심 | 추론 통계 중심\n",
"여러 도구와 경험 | 통계학적 방법론\n",
"탐정 (detective) | 판사 (judge)\n",
"다양한 시도 | 모델과 방법론\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5wDCfiEbiB_C"
},
"source": [
"## EDA의 4가지 주제\n",
"\n",
"1. 저항성 <sup>resistance</sup> : 데이터의 손상, 오류, Outlier에 적게 영향을 받아야 한다.\n",
"2. 잔차해석 <sup>residual</sup> : 관찰 값들이 주 경향에서 얼마나 벗어나는지 분석\n",
"3. 자료의 재표현 <sup>re-expression</sup> : 다른 방식의 표현(로그,제곱,역수 변환 등)\n",
"4. 자료의 현시성 <sup>Graphical Representation</sup> : 시각적 표현"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4PyrMojwiB_E"
},
"source": [
"### 1. 저항성 resistance\n",
"\n",
"이상치, 결측치, 입력 오류에 영향을 받지 않는 (resistant) 도구를 사용\n",
"* EDA 에서 수집 데이터의 숫자 요약 통계량으로 중앙값, 사분위수 등을 이용\n",
"* 예: 1, 2, 3, 4, 20 의 평균은 6 그러나 중앙값은 3\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ZqOMCNVuiB_G"
},
"source": [
"### 2. 잔차해석 residual\n",
"관찰 값들이 주 경향에서 얼마나 벗어나는지 분석\n",
"\n",
"* 경향이 벗어난 관측치가 이상치(outlier)인지 영향치(influential)인지를 산점도를 이용해 판단\n",
"* 예: 1, 2, 3, 4, 20 에서 중앙값을 중앙(main stream)으로 사용하는 경우 잔차는 -2, -1, 0, 1, 17\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "trAVZSm_iB_H"
},
"source": [
"### 3. 자료의 재표현 re-expression\n",
"\n",
"* 원래 데이터에 Log(로그), Square root(제곱), Inverse(역수) 변환 등 적용하여 다시 표현\n",
"* 분포 선형성, 분산 안정성, 분포 대칭성이 높아지도록 함수를 적용\n",
"* 예: 관찰값에 루트를 해주었더니 선형이 되었다 (직선 관계를 분석하는 것이 결과 해석이 편리)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JgM1l9TniB_I"
},
"source": [
"### 4. 자료의 시각적 표현 Graphical Representation\n",
"* 데이터에 숨겨진 정보를 알아보기 위하여 다양한 그래프가 이용\n",
"* 줄기-잎 그림 https://goo.gl/nQ0kvE , 상자 그림 https://goo.gl/y8zDla"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 일반적인 EDA의 작업\n",
"1. Missing values (누락값 처리)\n",
"1. Outliers (이상값 처리)\n",
"1. data distribution (분포)\n",
"1. Dropping irrelevant columns (피처 선택)\n",
"1. Finding correlations (상관 분석)\n",
"1. 범주형 피처(Categorical Variable) 처리 (클래스, 원핫인코딩)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## EDA 자동화 필요성\n",
"데이터 과학 프로젝트(또는 기계 학습 프로젝트)의 60% 이상의 시간이 데이터 분석, 피처 선택, 피처 엔지니어링 작업에 사용\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## EDA 자동화 도구\n",
"* dtale\n",
"* pandas profiling\n",
"* sweetviz\n",
"* autoviz\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Q86uEVVriHV9"
},
"source": [
"**2019-2022 [FinanceData.KR]() | [facebook.com/financedata]()**"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "01 Introduction to EDA.ipynb",
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment