[빅데이터] 2. Measuring Data Similarity and Dissimilarity

|

Measuring Data Similarity and Dissimilarity


1.      Similarity and Dissimilarity


     유사성


n  두개의 데이터가 얼마나 유사한지에 대한 수적인 측정.

n  보통 0~1 사이의 값에 속한다.

n  값이 높을수록 더 비슷하다는 것을 나타냄


     비유사성(거리)


n  두개의 데이터가 얼마나 다른지에 대한 수적인 측정

n  값이 낮을수록 더 비슷하다는 것을 나타냄

n  비유사성의 최소값은 0이다

n  Upper limit은 다양하다


     Proximity(가까움)는 유사성 또는 비 유사성을 말한다.

 

2.      Data Matrix and Dissimilarity Matrix


n        

  

n  비유사성은 위의 메트릭스를 이용한다. 한쪽 면만 있는 이유는 반대쪽은 아래쪽과 같은 결과가

 나오기 때문에 한쪽면만 계산해주면 된다.


3.      Measure For Nominal Attributes Proximity (명목형 속성의 가까움 측정)


     명목형 데이터의 상태가 2개 이상일 때 적용된다.

     각각의 거리의 계산은 d(i,j)는 아래의 식으로 계산이 된다.


③             

     여기서 p는 속성의 총 개수, m은 일치하는 개수다.

     예제

n         

  


n  Test-1 Attribute의 비유사성은 아래와 같은 메트릭스를 갖는다.


n         

  

n  각각의 식은 d(4,1)만 동일한 값이므로, 0이 되고 나머지는 1이된다.


n         

  


4.      Measure For Binary Attributes Proximity


     두 가지의 상태만 가진것의 가까운정도를 측정할 때 사용한다.


     속성의 상태 중에서 남자/여자 와 같은것은 symmetric binary variables라 하고 예/아니오 와 같은 것은 asymmetric binary variables라고 한다.


     분할표는 아래와 같다



     Symmetric binary dissimilarity(대칭형 이진 비유사성)


n        

  


     Asymmetric binary dissimilarity(비대칭형 이진 비유사성)


n         

  

n  비대칭형 이진데이터는 두개의 상태가 동일한 중요성을 갖고 있지 않는다. 두값이 모두다 negative한 데이터인 t는 무시해버린다.


     Asymmetric binary simmilarity(비대칭형 이진 유사성)


n         

  


     예제


n         

  

n  여기서 gender는 대칭형이고 나머지는 비대칭형이다. Y P 1로 보고 N 0으로 설정한다.


n         

  

 


5.      Measure For Numeric Attributes Proximity


     숫자형 데이터의 가까움 정도를 측정하는 것은 3가지의 방법이 존재한다. Euclidean,manhattan,supremum이다. 유클리안과 맨하탄 방법을 민코스키(Minkowski)가 일반화 시킨 것이 Minkowski distance이다, supremum은 민코스키의 식에서 노름(norm)이 무한대로 갈 때의 식을 정리했다. 슈프리멈은 두지점사이의 절대값은 최대값을 의미한다.


     Euclidean distance


n         

n  보통 직선거리를 의미한다(피타고라스의 정리와 같음)


     Manhattan(or city block) distance


n         

n  이것은 도로에서 해당 지점까지 직선으로 못 가는 경우에 해당한다.


     Supremum distance


n         

n  , 각각의 거리차에서 가장 큰 것을 선택한다.


     Minkowsky distance


n  민코스키가 유클리안 과 맨하탄 식을 일반화 시킴

n  h값이 1이면 맨하탄 거리가 되고, 2이면 유클리드 거리, 무한대면 슈프리멈 거리가 된다.


n         


     예제


n         

 

6.      Measure For Ordinal Attributes Proximity



n  처리방법(3Step)


     해당 속성의 상태들을 1부터 M 까지 순서를 매긴다



상태가 fair(1),good(2),excellent(3) 이렇게 숫자로 변환해준다.


     [0,1] 범주에 들도록 일반화 한다.



여기서 Mf는 상태의 총합이며(3) rif는 상태 값이다.

이렇게 계산되면 Fair 0으로, good0.5excellent1로 계산된다.


     유클리드 거리법으로 계산한다. (일반화 된 값을 뺀 후 제곱에 루트값)




7.      Measure For Mixed Type Proximity


     여러가지 타입의 속성을 비교할 때는  각각의 타입에 맞는 식으로 계산한 후에 

      각각의 메트릭스를 다시 통합해준다.


②         

  

n  Numeric


:두 속성의 차이에 해당 속성의 최대값에서 최소값을 뺀 값으로 나눈다.


n  Binary



: 두 값이 같으면 0이고 그렇지 않으면 1이 된다.


n  Ordinal



:6번 항목에서 나온 그 식으로 계산해준다.



     여기서    


n  만약 비교하는 i,j 값 둘 중 하나가 없거나(missing value), 비교하는 값이 둘다 0인 동시에 asymmetric binary 일때는 0이되고, 다른 경우는 1이된다.


     구해진 메트릭스의 같은 행과 열에 있는 것들의 평균을 구해서 하나의 메트릭스로 생성해준다.


8.      Cosine Similarity


     Document 문서와 같은 것들은 수천개 이상의 attributes들이 존재한다.

     이것들의 유사성을 구하는데 코사인을 사용한다.


②        

     여기서 분모의 식은 각각 x,y의 속성끼리의 곱의 합이며, ||x||x의 각 값의 제곱에 합의 루트를 씌운값이다.(유클리드 거리)


     예제 (Document1 Document2와 비교)


n         

n          




참고문헌:Data Mining Concepts and Techniques, 3rd Edition, Jiawei Han & Micheline Kamber

저작권 문제가 발생시 삭제될 수 있습니다.

And

[빅데이터] 1. Data Object and Attribute Types

|

Data Object and Attribute Types


1.      Data Object


n  Data Sets Data Object들로 이루어 졌다. 데이터 오브젝트는 entity를 나타내는데 예를 들어서 Students, Professors,Courses 등이 될 수 가 있다.

n  다른 말로는 samples, examples, instances, data points, objects, tuples가 있다.

n  Data Object Attributes들로 구성되어 있다.


2.      Attributes


n  다른 말로 dimentions, features, variables라고 한다.

n  종류들

     Nominal ( 명목형 데이터 )

Ø  심볼이나 사물의 이름을 나타낸다.

Ø  Categorical 이라고도 말한다.

     Binary ( 이진 데이터 )

Ø  2가지의 Category만 갖는 nominal 데이터 타입

Ø  Boolean 이라고도 말한다.

I.       Symmetric(대칭): 두 값이 동등한 중요성을 가질 때, 예를 들어서 남성/여성

II.      Asymmetric(비대칭):두 값이 동등한 중요성을 가지지 않을 때, 예를 들어서 병의 음성/양성 판정

     Ordinal ( 순서형 데이터 ) : Ranking

Ø  데이터간의 순서가 있다(학점:A+,A,B+,B~)

     Numeric

I.       Interval-scaled (간격척도): 순서가 있으면서 positive,0,negative가 되는 데이터를 말한다. 온도계나 달력의 년도

II.     Ratio-scaled (비율 척도) : 영점을 가지고 있는 숫자형 데이터. 데이터간의 몇 배인지 나타낼 수 있다. 예를 들어서 weight,height,money,time 등등

     Discrete(이산형)

Ø  연속적이지 않는 데이터로써, 한정되거나 셀수 있는 정도의 무한한 데이터 셋이다. 정수형 데이터나 바이너리 데이터

     Continuous(연속성)

Ø  실수형의 데이터 : 온도, height,weight  , 일반적으로 부동소수점 변수를 나타낸다.



3.      Central Tendency 측정 (중심집중경향측정)


     Mean (평균) : 데이터들의 평균

n  


n  


:가중치가 존재할 때는 위의 식으로 계산이 가능하며 weighted average 또는 weighted arithmetic mean이라고 한다.

     Median(중앙값) : 데이터들의 중앙값, (even) 수개이면 가운데 2개의 평균값

     Mode(최빈수) : 가장 많이 출현하는 값

n  가장 많은 빈도수가 하나 일때는 unimodal, 두개 일때는 bimodal, 세개일때는 trimodal인데 보통 2개 이상을 multimodal이라고 부른다.

     Midrange:자료의 최대치와 최소치의 절반값



4.      데이터의 분포 측정


     Quartiles

Ø  


Ø  사분위수 : 관측값을 작은 순서로 배열했을 때 전체를 사등분하는 값

Ø  Q1(25%),Q2(50%:중앙값),Q3(75%)

Ø  IQR(사분위수범위) : Q3-Q1로써 두 사분위 사이의 거리를 퍼진 정도의 측도로 사용한다.(Inter-quartile range)

Ø  극단 값에 영향을 받지 않게 되고, 한쪽으로 치우친 분포에서 극단 값을 제외한 퍼진 정도를 알려고 할 때 사용한다.


     Boxplot(상자그림) : 자료로부터 얻는 5가지의 자료를 가지고 그림을 그린다.


Ø  


Ø  최솟값,Q1,Q2,Q3,최댓값 (Minimum,Q1,Median,Q3,Maximum)

Ø  작성과정

I.       사분위수를 결정한다.

II.      Q1Q3를 네모난 상자로 연결하고, 중앙값(Q2)의 위치에 수직선을 긋는다.

III.    IQR=Q3-Q1을 구한다.

IV.    상자 양끝에서 1.5XIQR 크기의 범위를 경계로 하여, 이 범위에 포함되는 최소값과 최대값을 Q1 Q3으로부터 각각 선으로 연결한다.

V.      양 경계를 벗어나는 자료값들을 *(outlier)로 표시하고, 이 점들을 이상점이라고 한다.

Ø  상자-수염그림 이라고도 한다.(box-whisker plot)


     Variance(분산) : 자료가 얼마나 흩어져 있는지를 나타낸다.


Ø  


Ø  관측 값에서 평균의 값을 뺀 값의 합의 제곱에 전체 갯수로 나누어 주면 표본분산이 된다.

Ø  관측 값들이 넓게 퍼져 있으면 편차들의 값이 크게 되고, 표본분산이 커짐

Ø  표본분산의 값이 클수록 관측 값들이 표본평균으로부터 멀리 퍼진 것.


     Standard Deviation(표준편차) : 표준분산에 루트를 씌운값이다.



5.      Histogram(히스토그램)


     자료를 막대그래프 형식으로 나타낸다.

     파티션분할 방법은 Equal-width(간격동일) Equal-depth(개수동일)



6.      Quantile Plot(사분위그림)


     사분위수를 그래프로 나타낸 그램

     Quantile-Quantile Plot은 두개의 사분위를 X Y축으로 배치해서 비교를 할 수 있게 한다.

 


참고문헌:Data Mining Concepts and Techniques, 3rd Edition, Jiawei Han & Micheline Kamber

저작권 문제가 발생시 삭제될 수 있습니다.

And

[C#] Dispose VS Finalize

|


보통 클래스를 만들때 Dispose나 Finalize를 잘 구현하지는 않습니다.

하지만 필요에 따라서는 구현이 필요할 때가 존재합니다.



1.차이점



클래스 인스턴스에서 관리되지 않는(unmannaged resource) 리소스들(DB 접속, 파일관리등)을 캡슐화할 때가 존재합니다.

해당 인스터스가 종료될 때 이 리소스를 해제하는 명시적인 방법(Dispose)암시적인 방법(Finalize)을 모두 제공되어야 합니다.


보통은 해당인스턴스가 더이상 참조 되지 않을때 GC가 자동적으로 Finalize를 호출해서 리소스를 해제합니다.

하지만 GC에 인스턴스가 수집되기전에 프로그래머가 해제할 수도 있습니다. 이런 경우는 해당 리소스가 드물거나

비싼경우에 명시적으로 Dispose를 호출해서 해제하면 성능이 향상될 수 있습니다.


Dispose를 사용해서 명시적 제어 기능을 제공하더라도 Finalize 을 사용한 암시적으로 정리하는 기능을 제공해야합니다.

프로그래머가 Dispose를 호출하지 못했을때 리소스 누수가 발생하지 않도록 백업하는 기능을 합니다.




2.예제소스


//base class
public class Base: IDisposable
{
    private bool disposed = false;

    //IDisposable 인터페이스 구현
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        if (!disposed)
        {
            if (disposing)
            {
                //관리되는 자원을 해제
            }
            //관리되지 않는 자원을 해제
            //큰 변수들을 null로 설정한다.
            disposed = true;
        }
    }

    // 소멸자 구현
    ~Base()
    {
        // Simply call Dispose(false).
        Dispose (false);
    }
}

// base class를 상속받는 클래스에서의 dispose 구현
public class Derived: Base
{
    private bool disposed = false;

    protected override void Dispose(bool disposing)
    {
        if (!disposed)
        {
            if (disposing)
            {
                //관리되는 자원 해제
            }
            //관리되지 않는 자원해제
            //큰 변수들을 null로 설정한다.
            disposed = true;
        }
        //기본클래스의 dispose 호출
        base.Dispose(disposing);
    }

   //위의 Derived클래스에서는 Finalize와 Dispose()가 구현이 안되어 있는데
   //이것은 base클래스에서상속받는다.
}



3.소스분석

base class에서는 IDisposable 인터페이스를 구현해서 dispose를 구현합니다.

CASE 1 - 프로그래머가 명시적으로 Dispose를 호출해서 자원을 해제한다고 한다면, 우선 Derived 클래스의 인스턴스에서
Dispose()를 호출하게 됩니다. 이때 상속받은 base클래스의 메서드가 실행되면서 Dispose(true) 로 관리되는 자원과 관리되지 않는
자원이 모두 해제가 되며  GC.SuppressFinalize(this); 이 구문으로 가비지컬렉터에서 Finalize가 호출되지 않게 처리합니다.

CASE 2 - 프로그래머가 명시적으로 Dispose를 호출하지 못한다면, base클래스의 소멸자가 호출이되고  Dispose (false); 구문에서
관리되지 않는 자원만 해제가 됩니다.


참고(MSDN) https://msdn.microsoft.com/ko-kr/library/vstudio/b1yfkh5e(v=vs.100).aspx


And