본문 바로가기

Data Science

(158)
[ML] Spectral Clustering(스펙트럴 클러스터링) 이번 포스팅에서는 클러스터링 모델 중 하나로서 스펙트럴 클러스터링에 대해서 소개하려 한다. 여기서 스펙트럴(Spectral) 자체는 행렬의 고윳값(Eigenvalue)을 의미한다. 이는 추후에 고윳값을 어떻게 활용할 것이라는 걸 암시해주는 듯하다. 1. Parametric-based V.S Graph-based 기본적으로 클러스터링 알고리즘엔 Parametric-based 와 Graph-based 알고리즘이 존재한다. 이전에 우리가 배웠던 K-means 클러스터링같은 경우 Parametric-based 방법이라고 정의할 수 있다.(참고로 Knn(K-nearest Neighbors) 모델은 Non-parametric 클러스터링 모델이다.) 이번에는 Graph-based 방법인 Spectral Cluster..
[ML] GA(Genetic Algorithm) 이번 포스팅에서는 생물체가 환경에 적응하면서 진화해나가는 모습을 모방하여 최적의 해를 구하는 방법론인 GA라고 불리는 유전 알고리즘에 대해서 알아보려고 한다. GA의 이름에 알고리즘이라는 용어가 붙어 우리가 그동안 배웠던 머신러닝의 지도학습 또는 비지도학습의 종류 중 하나라고 오해할 수 있다. 하지만 GA는 모델의 종류가 아닌 파라미터의 최적화 문제를 풀기 위한 일종의 방법이다. 파라미터의 최적화 문제를 풀기 위한 다른 방법으로는 이전 포스팅에서 배웠던 EM(Expectation Maximization)알고리즘을 예로 들 수 있다. GA를 이해하기 위해서는 사전에 정의하고 넘어가야 할 몇 가지 개념들이 존재한다. 하나씩 정의해보자. 염색체(Chromosome) : 여러개의 유전자를 담고 있는 하나의 집합..
[ML] Hidden Markov Model(HMM) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 HMM(Hidden Markov Model)이라고 불리우는 히든 마르코프 모델에 대해 다루려고 한다. HMM은 기본적으로 Markov Property(마르코프 특성)를 가정한다. 따라서 '마르코프 특성'에 대한 개념부터 정립하고 넘어가야 한다. 이번 글에서 써내려갈 목차는 다음과 같다. 1. Markov Property란? 2. Markov Model의 종류 3. HMM(Hidden Markov Model) 4. HMM의 알고리즘 1. Markov Property란? 마르코프 특성의 정의에 대해 알아보기 전에 밑의 수식을 살펴보자. 위 그림의 맨 윗줄 쌍따옴..
[ML] EM Algorithm과 GMM(Gaussian Mixture Model) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 EM(Expectation Maximum)알고리즘과 이 EM 알고리즘을 이용한 모델 중 하나인 GMM(Gaussian Mixture Model)에 대해서 알아보려고 한다. 목차는 다음과 같다. 1. EM 알고리즘이란? 2. EM 알고리즘 프로세스 3. GMM이란? 4. GMM에서 적용되는 EM알고리즘 프로세스 1. EM 알고리즘이란? EM 알고리즘은 기본적으로 Unsupervised learning에 주로 사용되는 알고리즘이다. 그래서 Clustering에 사용되기도 한다. EM 알고리즘은 크게 E-step과 M-step 2가지 단계로 나누어질 수 있는데 결..
[ML] Topic Modeling(토픽 모델)인 LDA(Latent Dirichlet Allocation) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 Clustering의 방법 중 하나이며 비지도학습이기도 한 토픽 모델에 대해 알아보려고 한다. 또 토픽 모델 중 가장 유명한 LDA(Latent Dirichlet Allocation:잠재 디리클레 할당)에 대해 공부해보자. 토픽 모델은 원래는 텍스트를 위한 대표적인 Clustering 방법이였지만 현재 이미지와 다른 분야에 널리 사용되고 있다. 토픽 모델이라는 아이디어는 "방대한 양의 텍스트가 존재할 때 누가 이걸 대신 읽고 주제를 파악해줄 수 있을까?" 라는 생각에서 기원했다고 한다. 그런데 토픽모델은 Parameter에 따라 같은 데이터셋을 갖고도 다른 ..
벡터공간의 4가지 부벡터공간(Subspaces) 이번 포스팅에서는 벡터공간의 4가지 Subspaces라고 불리는 부벡터공간에 대해 알아보려고 한다. 이 부벡터공간들을 배우는 이유는 저번 포스팅의 내용이였던 Basis(기저 벡터)와 연관성이 있다. Basis는 기본적으로 선형독립을 이루는 최소 개수의 unique한 벡터의 집합을 의미하며 이러한 Basis 자체는 Unique하지 않고 여러개라는 것을 알게되었다. 그런데 여러가지의 Basis 중에 적절한 Basis 하나를 선택해야 하는데 이 때 어떤 기준으로 골라야 할까? 이 때 선형독립을 이루는 벡터들끼리 서로 수직인 관계를 갖고 있는 Basis을 고르면 된다. 그렇다면 수직인 관계는 무엇을 의미할까? 이 때 알아두어야 할 개념이바로 벡터공간의 4가지 Subspace들이다. 차근차근 하나씩 알아보자. 밑..
[ML] Missing value(결측치)를 처리하는 방법과 결측치의 종류 이번 포스팅에서는 데이터 전처리 과정에서 필연적으로 직면하게 되는 데이터셋의 결측치를 처리하는 방법과 결측치의 종류에 대해서 알아보려고 한다. 평소에 결측치를 처리한다고 생각하면 0값, 평균값, 중앙값 등.. 어떻게 보면 단순무식한 방법만을 생각해왔던 것 같다. 그런데 과연 세계에 수많은 똑똑한 사람들도 이러한 단순무식한 방법으로만 결측치를 처리할까? 그럴 리 없다고 생각해서 한 번 찾아보았다. 한 번 같이 살펴보자. 1. 행 또는 열 삭제 : 가장 단순한 방식이다. 결측치가 존재하는 행 또는 열(feature)을 삭제하는 방식이다. 2. 중앙값, 평균값으로 대체 : 빈 결측치에 해당하는 Feature의 평균값이나 중앙값으로 대체한다. 3. 최빈값으로 대체 : 하지만 이 방법은 주로 Nominal fea..
[ML] Clustering의 Distance Function의 종류 이번 포스팅에서는 저번 시간에 배웠던 Clustering 내용에 대한 추가적인 컨텐츠이다. 바로 Clustering을 실행할 때 데이터 간의 거리를 계산해야 하는데 '어떤 방법' 으로 계산을 할지에 대한 내용이다. 이번에는 하나의 주제에 대한 것이므로 별다른 목차 없이 바로 본론으로 들어가겠다. 앞으로 나올 내용들은 모두 거리는 계산하는 방법 중 하나인 Distance Function의 종류들이다. 1. Euclidian Distance 중, 고등학교 시절 문과, 이과를 불문하고 수학을 공부했던 사람들에겐 모두 친숙한 공식일 것이다. 바로 유클리디안 거리 공식이다. 이름만 듣고 잘 모르겠는가? 그렇다면 공식을 보면 "아~!" 라고 나올지도 모른다. 유클리디안 거리 공식을 살펴보자. 하지만 이 유클리디안 ..
[ML] Clustering(군집화) model ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 Unsupervised learning의 종류로서 Clustering에 대해 소개하고 Clustering model의 종류에 대해서 알아보자. 목차는 다음과 같다. 1. Clustering model 이란? 2. K-means Clustering 3. KNN(K-Nearest Neighbors) 4. Hierarchical Clustering 1. Clustering model 이란? 기본적으로 클러스터링은 비지도 학습방법이므로 label(정답)이 존재하지 않는 상태에서 학습을 한다. 하지만 클러스터링 모델들도 최후의 단계에서는 이 클러스터링 모델이 정답을 ..
[ML] Ensemble(앙상블)과 Semi-supervised learning ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 Ensemble(앙상블)의 개념과 종류에 대해서 알아보려고 한다. 그리고 마지막에는 '반지도학습'이라고 불리는 'Semi-supervised learning'에 대해 소개한다. 우선 앙상블의 사전적 의미는 무엇일까? 앙상블이란 '음악' 분야에서 '2인 이상에 의한 가창(歌唱)이나 연주' 를 의미한다. 우리는 앙상블의 사전적 의미에서 음악과 관련된 용어는 신경쓰지 말고 '2인 이상'이라는 단어에 집중하자. 즉, 머신러닝 분야에서의 앙상블은 2개 이상의 여러가지 모델을 결합시켜 하나의 결합모델을 만드는 것이다. 앙상블은 SVM보다 성능이 좋다고 알려져있으며 대표..
시계열의 분해법(Time-series decomposition) 이번 포스팅에서는 시계열의 분해법에 대해 알아보려고 한다. 이번에 다룰 내용은 이동평균평활법을 활용한 분해법과 전통적인 분해법이다. 시계열 데이터를 각 개별성분(추세, 계절, 순환, 불규칙)으로 분해하고 다시 결합하여 미래의 값을 예측하기도 하지만 분해법의 주요목적은 '변동요인을 잘 구분하기 위함'이라는 것을 기억하자. 포스팅의 목차는 다음과 같다. 1. 이동평균평활법을 활용한 시계열 분해 2. 전통적인 시계열 분해법 1. 이동평균평활법을 활용한 시계열 분해 이동평균평활법은 시계열 데이터의 '불규칙 성분'을 제거하기 위해 사용되는 방법이다. 즉, 추세, 순환성분을 추정하기 위해 사용한다. 이동평균평활법은 또 대칭이동평균과 중심화이동평균으로 나뉘어진다. 대칭이동평균 : 이동평균시키는 값(m값)이 홀수인 경..
ETS 모델과 벤치마크로 미래의 값 예측하기 이번 포스팅에서는 저번 시간까지 배운 홀트-윈터스 계절 모형과는 다른 미래의 값을 예측하기 위한 방법인 ETS모델에 대해서 알아보고 또 다른 예측방법인 벤치마크 방법에 대해서 알아보려고 한다. 목차는 다음과 같다. 1. ETS 모델 2. 벤치마크 예측법 1. ETS 모델 ETS의 의미는 Error, Trend, Seasonal을 의미한다. 기본적으로 ETS 모델은 잔차(실제값-예측값) 즉, Error로 보정을 해주는 모델이다. ETS의 모델의 인자에 여러가지가 들어갈 수 있고 여러가지 모델을 만들 수 있다. 모델 종류에 대해서 알아보자. E,T,S각 인자에 맞게 들어갈 수 있는 유형이라고 생각하면 된다. #N : None / A: Additive / M: Mulitiplicative E(Error) A ..
벡터의 Linear Independence(선형독립)와 Basis(기저벡터) 이번 포스팅에서는 벡터의 선형독립(Linear Independence)와 기저벡터(Basis)에 대해 알아보려고 한다. 선형독립과 기저벡터는 머신러닝의 PCA(주성분분석), SVD(Singular Value Decomposition), LDA(선형판별분석)을 배울 때 연관되어 있는 개념이다. 우선 본격 주제에 들어가기 앞서서 저번 포스팅에서 배웠던 Ax=0라는 Rectangular Matrix의 경우에 영벡터공간(Null Space)과 결부지어서 이제는 영벡터공간이 아닌 연립방정식인 Ax=b의 해집합을 어떻게 나타낼지에 대해서 살펴보자. 먼저 Ax=0이라는 연립방정식의 해집합을 구할 때 다음과 같은 수식으로 구해짐을 우리는 저번 포스팅에서 알게되었다. 위와 같은 식으로 영벡터공간의 해집합을 구하게 됬는데..
[ML] SVM(Support Vector Machine)서포트 벡터 머신 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 머신러닝 모델 중 Classification에 활용되며 Supervised Learning의 종류인 SVM(Support Vector Machine)에 대해 알아보려고 한다. 2019년 2학기에 DSC 활동을 하면서 SVM에 대해서 처음 알게되었고 그 때 당시에는 얕은 깊이의 공부를 했던 기억이 난다. 하지만 이번엔 SVM을 머신러닝 전공 수업에서 다루는 만큼 깊이 있게 공부하고 넘어가야 겠다. 목차는 다음과 같다. 1. SVM의 기원은 무엇일까? 2. Margin의 maximum을 구하는 방법 3. 비선형 분류를 하기 위한 Slack Variable 4. ..
영벡터공간(Null Space)과 해집합 이번 포스팅에서는 영벡터공간에서의 해집합에 대해서 알아보려고 한다. 우선 영벡터공간에 대해서 알아보자. 영벡터공간이란, Ax=0을 만족하는 'x'라는 벡터의 모든 해집합을 말한다. 그런데 우리가 여기서 체크하고 넘어가야 할 부분이 있다. 바로 Ax=0을 만족하는 'x라는 벡터의 모든 해집합이 공간(Space)라고 할 수 있는지 조건을 체크하는 것이다. Space가 될 수 있는 조건은 3가지가 있다. 벡터집합의 요소 중 임의의 두 개의 벡터의 합도 Null Space(영벡터공간)에 포함되어야 한다. 벡터집합의 요소에 임의의 Scala값을 곱해도 Null Space(영벡터공간)에 포함되어야 한다. 영벡터공간에서는 당연한 이야기지만 '원점을 포함'해야 한다. 이제 우리가 구하고자 하는 미지수 즉, 해집합을 어..
벡터공간(Vector space)과 열벡터공간 이번 포스팅에서는 벡터공간에 대한 개념과 특징, 그리고 열(Column)벡터공간에 대해서 알아보려고 한다. 본격적인 내용에 들어가기에 앞서 지금까지 배웠던 그리고 앞으로 배우게 될 내용의 큰 구조를 보고 들어가려고 한다. 우리는 그동안 연립방정식을 밑의 그림과 같이 나타낸 후 가우스 소거법을 이용해서 미지수를 구했고 특정 행렬의 역행렬을 구하기 위해서 가우스 소거법을 확장한 Gauss-Jordan Method를 알아보았다. 우리는 본질적으로 구하려고 하는 것이 x1,x2,x3에 해당하는 미지수였다. 미지수와 식의 개수 관계에 대한 경우의 수는 다음과 같이 세가지가 있다. 미지수 개수 = 식의 개수 미지수 개수 >= 식의 개수 미지수 개수 < 식의 개수 지금 작성하고 있는 포스팅 이전까지는 1번에 해당하는..
Inverse Matrix(역행렬)&Transpose Matrix(전치행렬) 이번 포스팅에서는 역행렬과 전치행렬의 정의와 특성에 대해서 알아보려고 한다. 먼저 역행렬의 정의와 여러가지 특성에 대해서 알아보자. 1. Inverse Matrix (역행렬) 우선 역행렬이 존재하려면 반드시 정방행렬(m by m)(Square Matrix)이어야 한다. 하지만 정방행렬이라고 해서 모든 행렬이 역행렬을 갖고 있는 것은 아니다. 특정 행렬 A의 Determinant가 0이 아닐 때만 역행렬이 존재한다. 결론부터 말하자면 여기서 Determinant란 우리가 가우스 소거법 포스팅에서 배웠던 Diagonal element(행렬의 대각요소들)인 Pivot값들을 말한다. 즉, Pivot값이 모두 Non-zero값이 되어야 역행렬을 가질 수 있다는 의미이다. 이제 역행렬의 특징에 대해서 알아보자. 방..
[ML] Class imbalance(클래스 불균형)이란? 이번 포스팅에서는 머신러닝 분류 문제에 있어서 '클래스 불균형' 에 대한 간단한 주제에 다룰 예정이다. 머신러닝 모델을 평가하는 하나의 지표로서 F1 score이란 것을 고려한다. F1 score은 Precision과 Recall의 조화평균으로부터 나오는 지표이다. F1 score은 그럼 언제 사용할까? 주로 데이터 Class(Lable)이 불균형 구조일 때 모델 성능을 정확히 평가한다고 한다. 필자는 '데이터 클래스 불균형' 이라는 개념에 대해 생소했고 이를 알아보기 위해 갓구글링의 도움을 받아보았다. 먼저 데이터 불균형 구조에 대한 정의부터 알아보자. 데이터 불균형이란 어떤 데이터에서 각 클래스(주로 범주형 변수)가 갖고 있는 데이터의 양에 차이가 큰 경우를 말한다. 예를 들어, 병원에서 질병이 있는..
[ML] ANN(Artificial Neural Network) 인공신경망 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 저번 포스팅에서 다루었던 주제인 Perceptron(퍼셉트론)의 종류 중 다층 퍼셉트론(MLP=Multi-Layer Perceptron)이라고 할 수 있는 ANN(Artificial Neural Network)인 '인공신경망'에 대해 다룰 예정이다. 목차는 다음과 같다. 0. 왜 ANN과 딥러닝을 쓰는가? 1. ANN의 특성 2. ANN의 활성함수(Activation Function) 3. ANN의 학습 4. ANN의 Parameter Optimization(학습방법) 5. ANN 전처리(초기값 부여) 6. ANN의 Overfitting을 막기위한 방법 0...
[ML] Perceptron(퍼셉트론)의 이해와 종류 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 인공신경망, 딥러닝의 근간이 되는 퍼셉트론의 개념에 대해 알아보고 퍼셉트론의 종류에는 무엇이 있는지에 대해 공부하려 한다. 목차는 다음과 같다. 1. 퍼셉트론(Perceptron)이란? 2. 퍼셉트론의 종류 3. 퍼셉트론의 학습 알고리즘 4. 퍼셉트론 정리 1. 퍼셉트론(Perceptron)이란? 우선 퍼셉트론은 인간의 뉴런으로부터 착안하여 생겨난 개념이다. 그렇다면 이러한 뉴런이라는 개념을 우리 실생활 문제를 해결하기 위해 어떻게 적용할 수 있을까? 밑의 그림을 보면서 퍼셉트론을 이해해보자. 간단하게 구성요소로 말하자면 '입력값 - 순입력함수 - 활성함수 ..