--
데이터 마이닝, 기계학습 개론
데이터 마이닝과 기계학습은 자료 탐색을 통해 통계적으로 모형화하여, 이전에 알려지지 않은 유용한 지식을 추출하는 기법이다. 데이터 마이닝과 기계학습이 혼용되어 사용되기도 하나, 그 개념을 살펴보면 다음과 같다.
데이터 마이닝(Data mining) : 알지 못했던 어떤 정보를 발견하는 것에 집중해 데이터에서 지식발견(KDD, Knowledge Discovery in Databases). 대규모 데이터에서 암묵적인, 이전에 알려지지 않은, 잠재적으로 유용할 것 같은 정보를 추출하는 계적인 과정
기계학습(Machine learning) : 훈련된 데이터(training data)를 통해 학습된 알려진 속성을 기반으로 모델, 패턴, 어떤 규칙성 등을 발견하고 결과를 예측하는 기법. 경험을 통해서 나중에 유사하거나 같은 일을 더 효율적으로 처리할 수 있도록 시스템의 구조나 파라미터를 바꾸는 것. 알고 있는 것으로부터 모르던 것을 추론하기 위한 알고리즘을 설계하는 것.
1. 데이터 마이닝
데이터 마이닝은 데이터베이스에서 알지 못했던 지식을 새롭게 발견하는 것을 목적으로 한다.
지식발견(KDD, Knowledge Discovery in Database)은 다음과 같은 절차를 반복하여 획득한다.
- 데이터 정제(Data Cleaning) : 불필요하거나 일치하지 않는 데이터를 제거
- 데이터 통합(Data Integration) : 다수의 데이터 소스들을 결합
- 데이터 선택(Data Selection) : 필요한 데이터들을 데이터베이스로부터 검색
- 데이터 변환(Data Transformation) : 요약이나 집계 등을 수행해 데이터마이닝을 위한 적합한 형태로 데이터 가공
- 데이터 마이닝(Data Mining) : 지능적 방법들을 적용하여 데이터 패턴이나 지식을 축출
- 데이터 검증(Data Evaluation) : 데이터 마이닝으로 찾아낸 패턴이나 지식을 검증
- 데이터 시각화(Data Presentation) : 발견한 패턴이나 지식을 사용자에게 효과적으로 보여주기 위해 시각화
2. 기계학습
A computer program is said to learn from experience(E) with respect to some class of tasks(T) and performance measure(P), if its performance at tasks in T, as measured by P, improves with experience E" - T. Michell(1997)
기계학습을 통해 어떠한 일(T)을 할지 명확히 하고, 그 일이 얼마나 잘 되었는지 측정할 지 정량화된 값(P)을 정하고, 학습을 위한 충분하고 적절한 경험이나 데이터(E)들이 필요하다.
연역적 학습(deductive learning)
연역적 추론(deductive inference)을 통한 학습
귀납적 학습(inductive learning)
사례들을 일반화하여 패턴 또는 모델을 추출하는 것
일반적인 기계학습의 대상
학습 데이터를 잘 설명할 수 있는 패턴을 찾는 것
오컴의 면도날(Occam's razor)
가능하면 학습 결과를 간단한 형태로 표현하는 것이 좋다.
2.1. 기계학습의 종류
- 지도학습(supervised learning) : 입력(문제) - 출력(답)의 데이터들로 부터 새로운 입력에 대한 출력을 결정할 수 있는 패턴 추출
- 비지도학습(unsupervised learning) : 출력에 대한 정보가 없는 데이터로 부터 필요한 패턴 추출
- 반지도학습(semisupervised learning) : 일부 학습 데이터만 출력값이 주어진 상태에서 일반화한 패턴 추출
- 강화학습(reinforcement learning) : 출력에 대한 정확한 정보를 제공하지는 않지만, 평가정보(reward)는 주어지는 문제에 대해 각 상태에서의 행동(action)을 결정
2.1.1. 지도학습(supervised learning)
- 분류(classification)
데이터들을 정해진 몇개의 부류(class)로 대응시키는 문제
분류 문제의 학습 : 학습 데이터를 잘 분류할 수 있는 수학적 함수이나 규칙을 찾는 것
분류기(classifier) : 학습된 함수를 이용하여 데이터를 분류하는 프로그램
분류기 학습 알고리즘
결정트리(decision tree) 알고리즘, K-근접이웃(K-nearest neighbor, KNN) 알고리즘, 다층 퍼셉트론 신경망(MLP), 딥러닝(deep learning), 서포트 벡터 머신(Support Vector Machine, SVM), 에이다부스트(AdaBoost), 임의 숲(random forest), 확률 그래프 모델(probabilistic graphical model)
B. 회귀분석(regression)
학습 데이터에 부합되는 출력값이 실수인 함수를 찾는 문제
회귀분석의 과정합 대응 방법은 모델의 복잡도(model complexity)를 성능 평가에 반영한다.
목적함수 = 오차의 함+(가중치)*(모델 복잡도)
2.1.2 비지도학습 (unsupervised learning)
결과정보가 없는 데이터들에 대해서 특정 패턴을 찾는 것
데이터에 잠재한 구조(structure), 계층구조(hierarchy), 숨겨진 사용자 집단(hidden user group), 사용패턴(usage pattern)을 찾아내는 것.
A. 군집화(clustering)
유사성에 따라 데이터를 분할하는 것.
일반군집화(hard clustering): 데이터는 하나의 군집에만 소속. K-means 알고리즘
퍼지군집화(fuzzy clustering): 데이터가 여러 군집에 부분적으로 소속, 소속정도의 합은 1이 됨, 퍼지 k-means 알고리즘
B. 밀도 추정
부류별 데이터를 만들어 냈을 것으로 추정되는 확률 분포를 찾는 것
C. 차원 축소
고차원의 데이터를 정보의 손실을 최소화하면서 저차원으로 변환하는 것
주성분 분석(PCA, Principle component analysis)
분산이 큰 소수의 축들을 기준으로 데이터를 사상(projection)하여 저차원으로 변환
데이터의 공분산행렬(covariance matrix)에 대한 고유값(eigenvalue)가 큰 소수의 고유벡터(eigenvector)를 사상 축으로 선택
D. 이상치(outlier) 탐지
이상치(outlier) : 다른 데이터와 크게 달라서 다른 메커니즘에 의해 생성된 것이 아닌지 의심스러운 데이터, 관심 대상
잡음(noise) : 관측 오류, 시스템에서 발생하는 무작위적인 오차, 관심 대상이 아니고 제거해야할 대상
2.1.3. 강화학습(reinforced learning)
학습 알고리즘이 환경(enviroment)와 상호작용을 통해 보상(reward)이 최대가 되도록 주어진 상태(state)에서 취할 수 있는 적합한 행동(action)을 찾는 것
시행착오(trial and error)적인 방법으로 적합한 행동을 탐색함
2.2. 기계학습을 활용한 에너지 소비 패턴 분석 방법
비지도학습(Unsupervised learning)으로 분류되는 군집 분석(Clustering)방법
지도학습(Supervised learning)으로 구분되는 분류 분석(Classification) 방법
군집분석(Clustering)방법은
특정 분류 기준을 사용하지 않고 대표적인 에너지 소비 패턴을 구분하고 싶은 경우일 때 사용
즉, 분류 기준을 가지고 있지 않을 때 사용.
적절한 기준에 대하여 동일한 군집에 속하는 관측값들을 서로 유사한 여러 개의 부분집합으로 할당하는 방법.
종류로는 K-means clustering, K-medoids clustering 등 있다.
K-means clustering 알고리즘 : clustering 기법 중 가장 기본. 데이터를 사전 정의된 목표 cluster 수인 K개 만큼의 구릅으로 분류. 적정한 크기의 목표 군집 수 K 값을 선정해야 한다. 이를 위해서 2부터 수십 개의 K 값에 대한 variance 비율을 구하고, 일정 비율 이상을 가지는 K 값을 선택하는 과정이 필요하다. 이 때 variance 비율은 군집으로 설명되는 variance를 전체 데이터의 variance로 나눈 값을 의미한다.
K-medoids clustering 알고리즘 : K-means clustering 알고리즘과 유사하나, random하지 않은 분류 결과를 도출하는 특징을 가진다.
분류분석(Classification)방법은
분석하고자 하는 대상에 미리 알고 있는 에너지 소비 패턴이 있는 경우일 때 사용
즉, 분류 기준을 가지고 있을 때 사용.
분류 결과가 사전 정의된 분류 기준에 영향을 받을 수 밖다는 단점이 있지만,
분류 기준을 알기 때문에 도출된 패턴의 의미를 이해하기 쉬운 장점이 있다.
분류 기준이 분석 결과에 영향을 지대하게 미치기 때문에, 분류 기준 설정에 주의가 필요하다.
종류로 Artificial Neural Network(ANN), Support Vector Machine(SVM), K-Nearest Neighbor(KNN) 등이 있다.
KNN 알고리즘 : SVM이나 ANN 알고리즘과 달리, 먼저 학습하지 않고 새로운 패턴과 가장 가까운 K개의 패턴을 찾아서 에너지 소비 패턴을 분류한다.
따라서 적절한 K 값을 사용하는 것이 필요하다. 여러 K 값에 대한 오분류율을 구한 후, 낮은 오분류율을 보이는 K 값을 선택하는 과정을 거친다.
KNN 알고리즘은 random process를 포함하기 때문에 여러 번의 테스트가 필요하다.
참고
[1] 인공지능, 충북대 이건명 교수 kocw 강의
[2] Machine learning 기법을 이용한 BEMS 에너지 데이터 분석 사례, 윤영란, 문현준, 설비저널 Vol. 45
[3] 인공지능과 BEMS, 김원욱, 설비저널 Vol. 45
--
__
2016. 11. 15 작성
'Energy Analysis' 카테고리의 다른 글
데이터 종류 (0) | 2014.11.13 |
---|---|
TLC 와 ERC (0) | 2013.10.08 |
일사 Radiation (0) | 2013.10.03 |
Weather data 기상데이터 (0) | 2013.10.03 |
CLTD에 의한 부하계산법 (0) | 2013.05.21 |