탐색적 데이터 분석 EDA, Exploratory Data Analysis


통계적 추론

  • 탐색적 데이터 분석이 나오기 전까지 통계학에서는 추론을 추로 다루었다.
  • 추론 inference: 적은 수의 표본sample을 가지고 더 큰 모집단population에 대한 결론을 도출하기 위한 일련의 복잡한 과정
img/ch3_inf_sample_model.png
그림  출처: http://www.hellodatascience.com/?p=366



데이터 분석의 탄생

  • John W. Tukey의 1962년 논문 'The Future of Data Analysis 데이터 분석의 미래'
    • 통계적 추론을 하나의 구성 요소로 하는 학문 분야를 도입
    • 통계를 공학과 컴퓨터 과학 분야에 접목하고자 했음

  • 1977년 'Exploratory Data Aanlysis' 책을 집필하여 학문을 정립
    • 컴퓨터의 성능이 향상되고
    • 누구나 손쉽게 사용할 수 있는 데이터 분석 소프트웨어가 나오면서
    • 탐색적 데이터 분석은 계속 진화하고 있음


탐색적 데이터 분석

  • 데이터의 특징과 내재된 구조적 관계를 알아내기 위한 방법과 기술
  • 데이터의 구조의 특징을 파악하여 이를 기반으로 통계 모형 또는모델을 만드는 과정



'탐색적 데이터 분석 (Exploratory Data Analysis)' 카테고리의 다른 글

변이 추정  (0) 2019.09.03
정형화된 데이터 요소  (0) 2019.09.02
평균의 의미  (0) 2019.07.24
도수분포표와 히스토그램  (0) 2019.07.23
통계학이란?  (0) 2019.07.22

도수분포표나 히스토그램의 문제점

  • 그래프를 보고 데이터의 특징을 생각할 때 사람에 따라서 받아들이는 인상은 제각각이다.
    • 히스토그램으로 나타난 '형태'가 얼마나 높은가 하는 것은 말로 잘 표현할 수 없다.
    • 통일된 의견 도출이 어렵다.

통계량(statistic)

  • 데이터의 특징을 하나의 숫자로 요약한 것
  • 데이터의 어떤 비슷한 특징을 요약하고 싶은가에 따라 여러 가지 통계량이 개발되었다.
    • 평균(mean, average)
    • 분산(variance)
    • 표준편자(standard deviation)


평균

  • 평균(mean 또는 average): 일반적으로 데이터의 모든 값의 총합을 개수로 나눈 산술 평균(arithmetic mean)을 의미
    • 표본 데이터의 평균은 \(\bar{x}\)로 표기하고, 모집단에 대한 평균은 \(\mu\)로 표기함

\begin{eqnarray}\bar{x} = \frac{1}{n} \sum_{i=1}^nx_i\end{eqnarray}

학생 80명의 키(cm)

151   154   160   160   163   156   158   156   154   160
154   162   156   162   157   162   162   169   150   162
154   152   161   160   160   153   155   163   160   159
164   158   150   155   157   161   168   162   153   154
158   151   155   155   165   165   154   148   169   158
146   166   161   143   156   156   149   162   159   164
162   167   159   153   146   156   160   151   151   157
151   156   166   159   157   156   159   156   156   161
    • 학생 80명의 키 평균
\begin{eqnarray}\bar{x} &=& \frac{151 + 154 + \cdots + 156 + 161}{80} \\ &=& 157.575(\textrm{cm})\end{eqnarray}

  • 절사평균(trimmed  mean 또는 truncated mean): 정해진 개수의 극단값(extreme value)를 제외한 나머지 값들의 평균
    • 값들을 크기 순으로 정렬한 후, 양끝에서 일정 개수의 값들을 삭제한 후 남은 값들을 가지고 구한 평균
    • 극단값의 영향을 제외하기 위해 사용한다.
    • 오름차순으로 정렬한 값들이 \(x_{(1)}, x_{(2)},\ldots,x_{(n)}\)이라고 할 때, \(p\)개의 가장 크고, 작은 값들을 제외한 뒤 절사평균은 다음과 같다.

\begin{eqnarray}\bar{x} = \frac{1}{n-p} \sum_{i=1}^{n-p}x_{(i)}\end{eqnarray}


  • 가중평균(weighted mean 또는 weighted average): 데이터 \(x_i\)에 가중치 \(w_i\)를 곱한 값의 총합을 가중치의 총합으로 나눈 값
\begin{eqnarray}\bar{x}_w = \frac{1}{\sum_i^nw_i} \sum_{i=1}^{n}w_ix_i\end{eqnarray}
    • 어떤 값들이 본래 다른 값들에 비해 큰 변화량을 갖을 때, 이러한 관측값에 대해 더 작은 가중치를 줄 수 있다.
      • 여러 개의 센서로부터 평균을 구한다고 할 때, 한 센서의 정확도가 떨어진다면 그 센서에서 나온 데이터에는 낮은 가중치를 주는 것이 합리적이다.
    • 데이터를 수집할 때, 우리가 관심있는 서로 다른 대조군에 대해서 항상 똑같은 수가 얻어지지 않는다.
      • 온라인 실험을 진행할 때 모든 사용자 그룹에 대해 정확히 같은 비율을 반영하는 데이터를 수집하는 것이 어렵다.
      • 이를 보정하기 위해서, 데이터가 부족한 소수 그룹에 대해 더 높은 가중치를 적용할 필요가 있다.

중앙값과 강건성 추정

  • 중앙값(median): 데이터를 일렬로 정렬했을 때, 한 가운데 위치하는 값
    • 데이터가 짝수인 경우: 가운데 있는 두 값의 평균
  • 평균과 중앙값의 차이
    • 평균: 모든 관측값을 사용하기 때문에 데이터에 민감
    • 중앙값: 정렬된 데이터의 가운데에 위치한 값으로 결정하므로 중간값이 많으면 위치 추정에 더 유리
  • 시애틀의 메디나와 윈더미어 가계 소득 비교 예
    • 메디나에 빌게이츠 거주하므로 평균이 높게 나올 것이며, 중앙값을 사용한다면 메디나와 윈더미어의 가계소득은 유사하게 나올 것이라 추정할 수 있음
  • 가중중앙값(weighted median): 데이터를 일렬로 정렬한 후 가중치를 적용했을 때 상위 절반의 가중치의 합이 하위 절반의 가중치의 합과 동일한 위치의 값
    • 중앙값과 마찬가지로 가중중앙값 또한 특이값에 강건함

절사평균

  • 중앙값과 평균의 절충안으로 이상점의 영향을 줄이기 위해 사용
  • 데이터의 상위 10%와 하위 10%를 제외하는 방법은 데이터가 너무 작지만 않다면, 이상점으로부터 데이터를 보호할 수 있다

특이점

  • 특이점(outlier): 어떤 데이터 집합에서 다른 값들과 매우 멀리 떨어져 있는 값들
  • 중앙값은 결과를 왜곡할 수도 있는 특이점(outlier) 또는 이상값의 영향을 받지 않으므로 강건한 위치 추정 방법으로 알려져 있음
  • 다양한 데이터 요약과 시각화 방법에서 관습적으로 사용하는 특이점에 대한 정의가 있으나 정확한 정의는 따로 없어 주관적으로 사용
  • 특이점은 데이터 값 자체가 유효하지 않다거나 잘못되었다는 것이 아님
    • 서로 다른 단위의 값이 섞여있는 경우
    • 센서에서 잘못된 값이 읽히는 경우
  • 이런 에러 값들이 특이점이라면 평균은 잘못된 위치를 추정할 수 있지만 중앙값은 여전히 설들력있는 위치를 제공한다
    • 특이점을 확인하고 자세히 살펴봐야 한다

이상탐지

  • 전형적인 데이터 분석에서 이상점은 골칫거리가 되기도 하지만 가끔 유익한 정보도 제공한다.
  • 이상탐지(anomaly detection): 정상적인 데이터보다는 예외적으로 측정된 이상점을 주된 관심으로 하여 이를 탐지하는 것




도수분포표와 히스토그램

데이터의 특징을 돋보이게 하는 도구


데이터 자체로는 아무것도 알 수 없기 때문에 통계를 사용

  • 단순한 숫자의 나열인 데이터 자체를 뚫어져라 본다고 해서 어떤 정보를 알아낼 수가 없다.
  • 80명 학생의 키를 정리한 데이터를 살펴보고 어떤 정보를 이끌어 낼 수 있을까?
    • 이 그룹에 속한 학생들의 키는 모두 같지 않고 제각각의 숫자로 나타난다.
    • 이렇게 다양한 수치로 나타나는 것을 분포한다(distribute)고 표현한다.


학생 80명의 키(cm)

151   154   160   160   163   156   158   156   154   160
154   162   156   162   157   162   162   169   150   162
154   152   161   160   160   153   155   163   160   159
164   158   150   155   157   161   168   162   153   154
158   151   155   155   165   165   154   148   169   158
146   166   161   143   156   156   149   162   159   164
162   167   159   153   146   156   160   151   151   157
151   156   166   159   157   156   159   156   156   161


  • 분포가 생기는 이유?
    • 이 수치가 결정된 이면에는 어떤 '불확실성(uncertainty)'이 움직이고 있기 때문
    • 불확실성의 구조가 제각각인 키의 수치를 발생시킨다고 생각한다.
    • 그러나 이 수치에는 고유한 '특징'이나 '반복되는 것'이 있다. 이를 분포의 특성이라고 한다.
    • 분포의 특성을 도출하기 위해 사용하는 방법통계이다.
  • 축약(summary)
    • 데이터로 나열되어 있는 많은 숫자를 어떤 기준으로 정리정돈해서 의미있는 정보만을 추출하는 것으로 두 가지 방법을 사용한다.
    1. 그래프로 만들어서 그 특징을 파악할 수 있도록 한다.
    2. 숫자 하나로 특징을 대표하도록 한다.
    •  통계량(statistic): 특징을 대표하는 숫자


히스토그램(막대그래프) 만들기

  • 히스토그램을 만들기 위해서는 도수분포표를 만들어야 한다.

도수분포표 만들기

  1. 데이터 중에서 수치가 가장 큰 값(최대값)과 가장 작은 값(최소값)을 찾는다.
  2. 최대값부터 최소값까지 포함되도록 하여 구간을 자르기 좋게 대강의 범위를 만들고, 그 범위 내에서 5~8개 정도의 작은 범위(구간)으로 나눈다. 이렇게 나눈 범위(구간)을 '계급(class)'이라고 한다.
  3. 각 계급을 대표하는 수치를 정한다. 기본적으로 아무 값이나 대표로 정해도 되지만, 일반적으로 가낭 가운데 값을 선택하는 경우가 많다. 이 것을 계급값(class value)이라고 한다.
  4. 각 계급에 들어가 있는 데이터의 총 개수를 센다. 이 것을 도수(frequency)라고 한다.
  5. 각 계급의 도수가 전체에서 차지하는 비율을 계산한다. 이 것을 상대도수(relative frequency)라고 한다. 상대도수는 합하면 1이 된다.
  6. 어느 계급까지의 도수를 모두 합한다. 이 것을 누적도수(cumulative frequency)라고 한다. 최종 누적도수는 데이터의 전체 개수와 같다.

계급

계급값

도수

상대도수

누적도수

 141 ~ 145

143

1

0.0125

1

 146 ~ 150

 148

 6

 0.0750

 7

 151 ~ 155

 153

 19

 0.2375

 26

 156 ~ 160

 158

 30

 0.3750

 56

 161 ~ 165

 163

 18

 0.2250

 74

 166 ~ 170

 168

 6

 0.0750

 80

height.csv



도수분포표의 특징

  • 도수분포표로 잃어버리는 정보가 있다.

    • 데이터에 나타나 있던 수치들 자체
    • 예를 들어, 4번째 계급(156~160)의 도수를 통해 30개의 데이터가 있다는 것을 알 수 있지만, 그 세부적인 데이터가 각각 어떤 수치였는지 알 수 없다.
      • 도수분포표를 만드는 과정에서 발생하는 축약으로 인한 것
  • 도수분포표로 얻을 수 있는 정보가 있다.
    • 도수를 통해 다음과 같은 데이터의 특징을 발견할 수 있다.

      1. 키(데이터)는 균등하게(모두 똑같이) 분포하지 않고, 어느 한 곳(구체적으로 156~160의 계급)에 집중되어 있다.
      2. 집중되어 있는 곳을 기점으로, 작은 편에 속하든지 큰 편에 속하는 추이를 보인다. 즉, 데이터의 분포가 어느 한 곳을 축으로 좌우 대칭성이 있다.

    • 학생들의 키가 정해지게 된 구조 뒤에는 어떤 '불확실성'이 있지만, 여기에는 고유한 특징이 있다.
      1. 어떠한 수치든지 가능한 것은 아니다.
      2. 어느 한 키(158cm) 주변에 집중되어 있다.
      3. 158cm를 기점으로 해서 큰 편과 작은 편은 '수치가 별로 보이지 않는다는 점에서 서로 비슷'하다.
    • 이런 특징은 데이터 자체를 그냥 보았을 때에는 몰랐던 정보다.
  • 데이터의 축약은 데이터의 세부적인 수치를 희생하지만, 이 희생을 통해 데이터의 분포와 그 이면에 있는 특징들이 돋보이게 된다.
    • 데이터의 축약은 요점을 정리하는 작업


import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc

path = "c:/Windows/Fonts/malgun.ttf"
font_name = font_manager.FontProperties(fname=path).get_name()
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['figure.figsize'] = (10, 8)
plt.style.use('seaborn-darkgrid')

df = pd.read_csv('./height.csv')

sns.set(color_codes=True)

ax = sns.distplot(df['height(cm)'], kde=False)

plt.xlabel('키(cm)', fontproperties=font_name)
plt.ylabel('도수', fontproperties=font_name)
plt.title('학생 80명 키의 막대그래프', fontproperties=font_name)

plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)

major_y_ticks = np.arange(0, 25, 5)
minor_y_ticks = np.arange(0, 25, 1)
ax.set_yticks(major_y_ticks)
ax.set_yticks(minor_y_ticks, minor=True)
ax.grid(which='both')
ax.grid(which='minor', alpha=0.5)
ax.grid(which='major', alpha=1)

plt.show()


ax = sns.distplot(df['height(cm)'], kde=True)

plt.xlabel('키(cm)', fontproperties=font_name)
plt.ylabel('상대도수', fontproperties=font_name)
plt.title('학생 80명 키의 상대도수분포표', fontproperties=font_name)

plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)

plt.show()



출처: 세상에서 가장 쉬운 통계학 입문

'탐색적 데이터 분석 (Exploratory Data Analysis)' 카테고리의 다른 글

탐색적 데이터 분석의 소개  (0) 2019.08.30
평균의 의미  (0) 2019.07.24
통계학이란?  (0) 2019.07.22
데이터 위치 추정  (0) 2019.04.26
용어 정리  (0) 2019.04.26

통계학을 이루는 뼈대


통계학은 크게 '기술 통계'와 '추리 통계' 두 부분으로 나눌 수 있음



기술 통계

  • 관측을 통해 얻은 데이터에서 그 데이터의 특징을 뽑아내기위한 기술
    • 표와 그래프로 표현하는 방법론
      • 도수분포표
      • 히스토그램
    • 통계량으로 표현하는 방법론
      • (여러 가지) 평균값
      • 표준편차


추론 통계

  • 통계학 방법과 확률 이론을 섞은 것으로, '전체를 파악할 수 없을 정도의 큰 대상'이나 '아직 일어나지 않은 미래에 일어날 일'에 관해 추측하는 것
    • '부분으로 전체를 추측한다'는 의미

        


(통계학 도감, 2017)


통계와 확률의 차이

  • 현재를 기준으로 보면 통계와 확률의 의미는 아주 다르다.
  • 시간 축 위를 오고가다보면 그 차이는 거의 없다.
    • 미래에 일어날 것은 시간이 지난 후에는 이미 일어난 과거의 일이 된다.
    • 과거에 일어났던 것은 그 전 시점으로 가면 미래에 일어날 일이 된다.
  • 그러나 사용하는 용어는 같아서 혼란스러운 부분이 있다.
    • 확률에서 확률변수라는 용어를 사용
    • 그러나 의미는 동일하다.

통계

  • 관측된 데이터의 집합을 설명하고자 하는 것으로 과거에 일어난 일에 관한 기술

확률

  • 미래에 일어날 것에 관한 기술


       


출처: 세상에서 가장 쉬운 통계학 입문

데이터가 주어졌을 때, 데이터를 살펴보는 가장 기초적인 단계는 각 변수(feature)의 데이터들이 어떤 값 주위에 위치하는지(중심경향성 central tendency)를 알아보기 위해 대푯값(typical value)를 살펴보는 것입니다.

  • 위치는 데이터의 특징을 요약하는 다양한 요소들 중의 하나
  • 평균 mean 또는 average : 일반적으로 모든 값의 총합을 개수로 나눈 산술 평균(arithmetic mean)을 의미
  • 가중평균 weighted mean 또는 weighted average : 데이터에 가중치를 곱한 값의 총합을 가중치의 총합으로 나눈 값
  • 중앙값 median : 데이터에서 가장 가운데 위치한 값으로 50번째 백분위수 50th percentile이라고도 함
  • 가중중앙값 weighted median : 데이터를 정렬한 후, 각 가중치의 값을 위에서부터 더할 때, 가중치의 합이 총합의 중앙에 위치하는 데이터
정렬된 데이터 가중치 가중치의 합  
1 0.15 0.15  
2 0.10 0.25  
3 0.20 0.45 50% 근처로 중앙값
4 0.30 0.75  
5 0.25 1.00  

 

  • 절사평균 trimmed  mean 또는 truncated mean : 정해진 개수의 극단값(extreme value)를 제외한 나머지 값들의 평균
  • 강건 robust : 극단값에 민감하지 않다는 것을 의미하며 저항성이 있다(resistant)고도 함
  • 특이값 outlier : 대부분의 값과 매우 차이나는 데이터로 극단값(extreme value)라고도 함
  • 추정값 estimate : 데이터로부터 얻은 값과 실제 상태를 나타내는 이론적인 참값을 구분하기 위해, 데이터로부터 계산된 값으로 통계학자가 주로 사용
  • 측정지표 metric : 데이터로부터 얻은 값과 실제 상태를 나타내는 이론적인 참값을 구분하기 위해, 데이터로부터 계산된 값으로 데이터 과학자나 비즈니스 분석가가 주로 사용

 

 

데이터의 종류

데이터 분석(data analysis)과 예측 모델링(predictive modeling)을 할 때, 시각화나 해석, 통계 모델에서 데이터를 종류별로 분류하는 것이 중요한 역할을 함

  • 연속형 continuous : 일정 범위 안에서 어떤 값이든 취할 수 있는 데이터
    • 구간형 interval, 실수형 float, 수치형 numeric
    • 풍속(風速) 또는 지속 시간(time duration)
  • 이산 discrete : 횟수와 같은 정수 값만 취할 수 있는 데이터
    • 정수형 integer, 횟수 count
    • 사건의 발생 빈도(occurance of an event)
  • 범주형 categorical : 가능한 범주 안의 값만을 취할 수 있는 데이터
    • 목록 enums, 열거 enumerated, 요인 factors, 명목 nominal, 다항형polychotomous
    • TV 패널의 종류(plasma, LCD, LED 등)나 도시명(서울, 대전, 대구, 부산, 광주 등)
  • 이진 binary : 0 또는1, 참과 거짓 같은 두 개의 값만 갖는 데이터로 범주형의 특수한 경우
    • 이항형 dichotomous, 논리형 logical, 지표 indicator, 불리언 boolean
  • 순서형 categorical : 값 사이에 분명한 순위가 있는 범주형 데이터
    • 정렬된 요인 ordered factor
    • 학점(A, B, C, D, F)

 

테이블 데이터

데이터 분석에서 가장 대표적으로 사용되는 객체의 형태는 스프레드시트나 csv 파일과 같은 테이블 데이터임

  • 데이터 프레임 data frame : 통계와 머신러닝 모델에서 가장 기본이 되는 테이블 형태의 데이터 구조로 R은 기본적으로 data.frame 객체를 사용하며, Python에서는 pandas 라이브러리를 통해 DataFrame 객체를 사용할 수 있음
    • 구간형 interval, 실수형 float, 수치형 numeric
    • 풍속(風速) 또는 지속 시간(time duration)
  • 특성 feature : 테이블의 각 열 데이터로 입력 변수로 사용됨
    • 속성 attribute, 입력 input, 예측변수 predictor, 변수 variable, 독립 변수 independent variable
  • 결과 outcome  : 데이터 과학 프로젝트의 목표 대부분은 어떤 질문에 대한 결과를 예측하고자 하는 것으로, 실험이나 연구에서 결과를 예측하기 위해 특성을 사용함
    • 응답 변수 response variable, 종속 변수 dependent variable
  • 레코드 record : 테이블의 각 행 데이터
    • 사건 case, 사례 example, 예제 instance, 관측값 observation, 패턴 pattern, 샘플 sample

 

테이블 형식이 아닌 데이터

  • 시계열 데이터 time series data : 동일한 변수 안에 연속적인 측정값을 갖는 데이터

  • 공간 데이터 spatial data: 지도 제작과 위치 정보 분석에[ 사용되는 데이터

  • 그래프 데이터 graph data : 대상들의 물리적 관계나 사회적 관계 또는 다소 추상적인 관계를 표현하기 위해 사용

    • 페이스북이나 링크디인과 같은 소셜 네트워크에서 그래프는 네트워크 상의 사람들간의 연결을 의미


MODEL EVALUATION METRICS 모델 평가 측정 방법


모델의 성능을 평가하는데 사용하는 혼돈 행렬(confusion matrix)





Accuracy 정확도

  • 모델이 전체 데이터에서 긍정을 긍정으로 부정을 부정으로 정확하게 예측한 비율로 예측한 값이 얼마나 실제의 값과 일치하는지를 측정하는 지표
\begin{eqnarray} \textrm{Accuracy} = \frac{\mathrm{TP} + \mathrm{TN}}{\mathrm{TP} + \mathrm{FP} + \mathrm{FN} + \mathrm{TN}} \end{eqnarray}


Precision 정밀도 또는 Positive Predictive Value(PPV) 긍정예측값

  • 모델이 긍정으로 예측한 것 중에서 실제 긍정인 비율로 반복적으로 예측을 했을 때 예측한 값들이 얼마나 비슷한지를 측정하는 지표

\begin{eqnarray} \textrm{Precision 또는 PPV} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FP}} \end{eqnarray}


Recall 재현율 또는 Sensitivity 민감도 또는 True Positive Rate(TPR) 참긍정 비율

  • 실제 긍정에 대하여 모델이 긍정으로 정확하게 예측한 비율

\begin{eqnarray} \textrm{Recall 또는 Sensitivity 또는 TPR} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FN}} \end{eqnarray}




F-1 score

  • 정밀도와 재현율의 조화평균(harmonic mean)

\begin{eqnarray} \textrm{F-1 score} = \frac{2 \times \mathrm{PPV} \times \mathrm{TRP}}{\mathrm{PPV} + \mathrm{TPR}} \end{eqnarray}



Specificity 특이성 또는 True Negative Rate(TNR) 참부정 비율

  • 실제 부정에 대하여 모델이 부정으로 정확하게 예측한 비율

\begin{eqnarray} \textrm{Specificity 또는 TNR} = \frac{\mathrm{TN}}{\mathrm{TN} + \mathrm{FP}} \end{eqnarray}



Fall-Out 또는 False Positive Rate(FPR) 거짓긍정 비율

  • 실제 부정에 대하여 모델이 양성으로 잘못 예측한 비율

\begin{eqnarray} \textrm{Fall-out 또는 FPR} &=& \frac{\mathrm{FP}}{\mathrm{TN} + \mathrm{FP}} \\ &=& 1 - \mathrm{TNR} \end{eqnarray}



Miss Rate 또는 False Negative Rate(FNR) 거짓부정 비율

  • 실제 긍정에 대하여 모델이 부정으로 잘못 예측한 비율

\begin{eqnarray} \textrm{Miss rate 또는 FNR} &=& \frac{\mathrm{FN}}{\mathrm{TP} + \mathrm{FN}} \\ &=& 1 - \mathrm{TPR} \end{eqnarray}



AUC(Area Under the ROC Curve) ROC 곡선의 아래 면적

  • 신호탐지 이론(Signal Detection Theory)에서 나온 평가 방법으로 ROC(Receiver Operating Characteristic) 곡선을 이진분류(Binary Classification) 문제에서 경계값(threshold)을 바꿔가면서 거짓긍정(FP; False Positive) 비율 대비 참긍정(TP; True Positive) 비율 그래프의 아래 면적
  • ROC 곡선: 학습데이터를 0 또는 1로 분류하기 위한 경계값을 \(-\infty\)에서 \(\infty\)로 변화시켜가면서 거짓긍정 비율 대비 참긍정 비율을 그린 그래프
  • 분류 모델의 성과를 측정하거나 두 개의 분류 모델을 비교하는데 사용

Area Under the Cumulative Lift Curve 누적 향상도 곡선의 아래 면적

  • AUC의 대안으로 사용하는 평가 방법으로 직접 마케팅에서 자주 사용하는 방법
  • 모델을 사용하지 않는 경우, 즉 무작위하게 선택하는 경우에 비해 모델을 사용하면 얼마나 개선이 되는지 측정하는데 사용


Lift 향상도

  • 모델을 실제로 적용한다면 이 모델로 인해 얼마나 효과가 있는지 측정하는데 사용


유사도 측정을 위한 함수

Similarity Metrics


Euclidean Distance 유클리디안 거리

  • 두 개의 실수값을 갖는 벡터간의 평면 위에서의 거리로 \(\mathrm{x}=(x_1, x_2,\ldots,x_n)\)과 \(\mathrm{y}=(y_1, y_2, \ldots, y_n)\)의 유클리디안 거리 \(\overline{\mathrm{xy}}\)는 다음과 같이 계산한다.
\begin{eqnarray} \overline{\mathrm{xy}} &=& \sqrt{(x_1-y_1)^2 + (x_2 - y_2)^2 + \cdots + (x_n-y_n)^2} \\ &=&\sqrt{\sum_{i=1}^n(x_i-y_i)^2}\end{eqnarray}
  • 거리 계산을 할 때에는 각 요소들의 단위를 고려해야 한다. 각 요소별 단위 차이가 크다면 거리에 큰 영향을 줄 수 있다. 예를 들어, \(\mathrm{x}=(25, 54000, 700)\)과 \(\mathrm{y}=(35, 76000, 540)\)인 경우에는 두 번째 요소가 거리에 큰 영향을 주지만 \(\mathrm{x}=(25, 54, 700)\)과 \(\mathrm{y}=(35, 76, 540)\)인 경우는 세 요소 모두 거리에 영향을 준다.



Cosine Similarity 코사인 유사도

  • 두 개의 실수값을 갖는 속성 벡터 \(\mathrm{x}\)와 \(\mathrm{y}\) 간에 사용할 수 있는 척도는 다음과 같이 계산한다.
\begin{eqnarray}\cos (\mathrm{x}, \mathrm{y}) = \frac{\mathrm{x}\cdot \mathrm{y}}{\parallel \mathrm{x}\parallel \parallel \mathrm{y}\parallel} \end{eqnarray}
  • \(-1 \leqq \cos (\mathrm{x}, \mathrm{y}) \leqq 1\)의 범위를 가지며 \(\cos (\mathrm{x}, \mathrm{y})=1\)이면 \(\mathrm{x}\)와 \(\mathrm{y}\)는 동일하며, \(\cos (\mathrm{x}, \mathrm{y})=-1\)이면 \(\mathrm{x}$와 $\mathrm{y}\)는 완전히 반대임을 의미하고, \(\cos (\mathrm{x}, \mathrm{y})=0\)이면 \(\mathrm{x}\)와 \(\mathrm{y}\)는 서로 독립임을 의미한다.


Jaccard Distance 자커드 거리

  • 객체 집합, 예를 들어 \(\mathrm{A} = \{\mathrm{사과}, \mathrm{배}, \mathrm{감}, \mathrm{바나나}, \ldots\}\)와 \(\mathrm{B} = \{\mathrm{사과}, \mathrm{멜론}, \mathrm{감}, \mathrm{포도}, \ldots\}\) 사이의 거리로 두 집합이 얼마나 유사한지는 다음과 같이 계산한다.
\begin{eqnarray} J(\mathrm{A}, \mathrm{B}) = \frac{\lvert \mathrm{A} \cap \mathrm{B}\rvert}{\lvert \mathrm{A} \cup \mathrm{B}\rvert}\end{eqnarray}



Mahalanobis Distance 마할라노비스 거리

  • 두 개의 실수 벡터 간에 사용하며 유클리드 거리에 비해 단위와 무관하며 상관을 고려할 수 있는 장점있는 척도로 \(S\)가 \(\mathrm{x}\)와 \(\mathrm{y}\)의 공분산 행렬(covariance matrix)일 때 다음과 같이 계산한다.
\begin{eqnarray} d(\mathrm{x}, \mathrm{y}) = \sqrt{(\mathrm{x} - \mathrm{y})^T S^{-1}(\mathrm{x}-\mathrm{y})}\end{eqnarray}



Hamming Distance 해밍 거리

  • 두 개의 문자열이나 두 개의 단어 또는 같은 길이의 DNA 서열 간의 거리를 구하는데 사용하는 척도로 같은 위치에 있는 문자가 서로 다를 때마다 거리가 1씩 늘렬나가는 방식으로 계산한다.
  • 예를 들어, 'olive'와 'ocean'의 거리는 맨 앞의 'o'를 제외하고는 각각의 위치에 있는 나머지 4개의 문자가 다르기 때문에 거리가 4이며, 'shoe'와 'hose'의 거리는 맨 뒤의 'e'를 제외하고는 나머지 3개에 있는 위치의 문자열이 서로 다르기 때문에 거리가 3이다.


Manhattan Distance 맨해튼 거리

  • 두 개의 실수 벡터 간의 거리로 다음과 같이 계산한다.
\begin{eqnarray} d(\mathrm{x}, \mathrm{y}) = \sum_i^n \vert x_i - y_i \rvert \end{eqnarray}
  • 격자모양 형태의 맨해튼 도심의 두 점 사이의 거리를 상상해보세요.


+ Recent posts