숙명여자대학교 이기용 교수님의 데이터마이닝및분석 수업을 글로 정리한 것입니다.
데이터 마이닝에서의 데이터 관련 문제들
- 데이터의 타입
- 각 attributes는 다른 데이터 타입으로 표현될 수 있다.
- 범주형(순서형, 명목형), 숫자형(연속형, 이산형) 등..
- 각 attributes는 다른 데이터 타입으로 표현될 수 있다.
- 데이터의 질
- 노이즈, 이상점, 데이터 중복, 상실, 편향
- 데이터를 이해하고 퀄리티를 높여야 결과도 좋게 나온다.
- 전처리
- Row data는 우리가 사용하려는 알고리즘에 맞게 가공되어야 한다.
- 차원 압축, numeric -> categorical 등..
- 유사도 측정
- 두 객체간의 유사도가 필요한 알고리즘이 꽤 있음
- 유사도 측정 방법을 여러가지인데, 그 중에서 적절한 방법을 택하는 것이 중요
1-1. 데이터 타입
어떤 알고리즘을 사용하느냐에 따라 데이터 타입 변환이 필요하다.
범주형(Categorical) 데이터
- 데이터가 숫자로 표현되어 있더라도, 가질 수 있는 값의 수에 한계가 있다면 범주형 데이터다. (학번, 우편번호 등)
- 심볼로 다뤄지므로, 연산이 불가능하다.
- 기본적으로 범주형 데이터간의 비교는 불가능하지만, 순서관계를 가진 범주형 데이터(순서형 데이터)는 비교가 가능하다. (S < M < L 등)
숫자형(Numerical) 데이터
- 정해진 수의 범위 내에서 어떠한 값이라도 가질 수 있을 때 숫자형 데이터라고 칭한다. (온도, 나이, 무게, 길이 등)
- 숫자의 특성을 모두 가지므로 연산과 크기 비교가 가능하다.
- 단위와 붙어다닌다. (cm, kg, GB 등)
- 이산형 자료와 연속형 자료로 나눌 수 있다.
1-2. 데이터셋 타입
데이터셋은 기본적으로 차원(Dimensionality)와 분산(Distribution) 개념을 갖는다.
차원은 데이터셋이 갖는 특성의 개수이며, 차원의 저주 The curse of dimensionality
를 조심해야 한다. 차원이 높아질수록 데이터를 분석하는 데 많은 어려움이 따르므로, 가끔 고의로 차원을 감소시키기도 한다.
분산은 특성이 갖는 다양한 값의 빈도이며, 통계적 정규 분포를 따르지 않는 경우가 많다. 찾아내고자 하는 특성이 얼마나 분산되어 있는지 파악하여 상황에 맞는 알고리즘을 사용해야 한다. 예를 들어, 여러 진로 데이터 중 암 환자의 데이터는 빈도수가 매우 적으므로(분산 정도가 크므로), classification보다 outlier detection이 더 효과가 있다.
레코드(Record) 데이터
레코드(데이터 객체)의 집합이다. csv 생각하면 편하다. 하나의 row가 record다. record의 순서는 의미가 없으며, record간의 명시적인 상관관계는 존재하지 않는다.
그래프 기반(Graph-based) 데이터
하나 이상의 그래프로 표현되는 데이터다. 그래프가 데이터 객체간의 관계를 표현할 수도 있고, 데이터가 그래프일 수도 있다(분자 구조도 등).
순서형(Ordered) 데이터
시간 또는 공간의 순서를 담고 있는 데이터다. 구매 내역을 시간에 따라 정렬해 둔 데이터나, 유전자 염기서열을 담은 데이터나, 시간에 따른 지구 각 지역의 온도 변화 데이터 등이 여기에 포함된다.
2. 데이터의 질
데이터가 완벽하길 바라는 것은 사실 말도 안되는 것이다. 인간은 누구나 실수를 하기 마련이고, 데이터 측정 도구에도 한계가 있고, 데이터 수집 과정에서 결함이 있을 수도 있는 거다.
그래도 최대한 데이터의 질을 높이기 위해서 여러가지 시도를 할 수 있는데, 좋은 알고리즘으로 구린 데이터를 커버치거나 데이터의 노이즈를 제거하고 Missing values를 보간하는 등의 데이터 클리닝을 하는 것이다.
알고리즘은 나중에 알아보고, 어떻게 데이터 클리닝을 할 수 있는지 알아보도록 하자.
노이즈 Noise
측정 오류로 인해 생긴 랜덤 요소다. 흔히 생각하는 그 노이즈를 떠올리면 될 것 같다. 노이즈를 데이터에서 완벽하게 제거하는 것은 어려우므로, 데이터에서 구간을 나눠 각 구간에 해당하는 평균 지점을 이어 새로운 데이터로 가공하여 사용하는 등의 방법을 사용한다.
부산물 Artifact
데이터와 같이 들어온 가비지 값을 말한다. 셀카 찍어서 인생샷 건진 줄 알았는데 옆에 살짝 나온 친구 손 같은 거다.
이상점 Outliers
같은 데이터셋의 대부분의 데이터와 다른 경향을 보이는 데이터다. 통계학자들과 데이터마이닝 커뮤니티 사이에서 가리키는 이상점의 의미가 다르다. 노이즈와 이상점을 구분하는 것은 어렵고, 노이즈처럼 이상점도 제거하는 것이 맞지만 가끔 안고 가야 할 때도 있다. 측정 오류로 인한 이상점이 아니라면 값이 이상한들 정상적인 데이터이므로.
결측치 Missing values
(여러 이유로) 측정되지 않은 데이터다. 결측치를 다루는 방법은 다음과 같다:
- 결측치가 있는 열이나 행을 삭제한다.
- 결측치가 있는 자리의 값을 우리가 예측하여 집어넣는다. 평균이나 보간을 이용한다.
- 분석 시 결측치를 무시한다.
일관되지 않은 데이터 Inconsistent values
우리가 강제하는 데이터 형식에 맞지 않은 형식을 가진 데이터를 가리킨다. 예를 들어, 대전에 거주중인 사람의 집 전화번호가 02로 시작하는 경우 이 사람의 전화번호를 inconsistent values라고 할 수 있다. 이러한 데이터들을 발견하고 정확한 값으로 고치는 것이 중요하지만, 이런 작업은 사람이 일일히 해야 한다.
복제된 데이터 Duplicate Data
어떤 데이터의 복제된 데이터를 가리킨다. 일단 값이 똑같은(또는 매우 유사한) 두 record를 보면 두가지 질문을 떠올려야 한다.
- 얘네들이 "중복"이 맞는가? 그냥 값이 같은 서로 다른 데이터일 가능성은 없는가?
- 중복이라면 둘 중 어느 데이터를 가져가야 하나?
'강의노트' 카테고리의 다른 글
[2021-1 프로그래밍언어론] Chapter 12: Object-Oriented Programming (0) | 2021.06.01 |
---|---|
[2021-1 프로그래밍언어론] Chapter 11: Abstract Data Types and Encapsulation Constructs (0) | 2021.06.01 |
[2021-1 프로그래밍언어론] Chapter 10: Implementing Subprograms (0) | 2021.05.30 |
[2021-1 데이터마이닝및분석] Chapter 2: Data (3) Similarity (0) | 2021.04.16 |
[2021-1 데이터마이닝및분석] Chapter 2: Data (2) Preprocessing (0) | 2021.04.15 |