본문 바로가기

Tech

(583)
벡터공간의 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)이란? 우선 퍼셉트론은 인간의 뉴런으로부터 착안하여 생겨난 개념이다. 그렇다면 이러한 뉴런이라는 개념을 우리 실생활 문제를 해결하기 위해 어떻게 적용할 수 있을까? 밑의 그림을 보면서 퍼셉트론을 이해해보자. 간단하게 구성요소로 말하자면 '입력값 - 순입력함수 - 활성함수 ..
시계열 데이터(Time-Series) 분석, 예측방법 이번 포스팅에서는 시계열 데이터를 분석과 미래의 값을 예측하기 위해 사용하는 구체적인 방법들에 대해서 소개하겠다. 필자는 어떤 주제를 공부하기 전에 큰 숲이라는 개괄적인 부분보고 세부적인 부분으로 들어가는 이상한(?)습관이 있어서 우선 예측방법의 큰 틀이 어떻게 되어있는지 보고 넘어가자. 위 그림과 같이 예측방법이 여러가지로 분류된다. 우리는 앞으로 소개할 방법들은 위 그림에서 '고전적 방법-평활법-이동평균과 지수평활법' 의 여러가지 방법들에 대해서 소개하려 한다. 목차는 다음과 같다. 1. 단순이동평균법 2. 선형이동평균법 3. 가중이동평균법 4. 단순지수평활법 5. Holt 선형지수평활법 6. Holt winters 계절지수평활법 1. 단순이동평균법 단순이동평균법은 추세가 있는 경우의 데이터에 적합하..
[ML] 데이터 학습방법으로서 MLE, MAP ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 간단한 주제를 다룰텐데, 바로 데이터들이 모델에서 학습하는 방법에 대한 내용이다. 학습방법으로서는 MLE(Maximum Likelihood Estimation)와 MAP(Maximum A Posteriori estimation)이 존재한다. 하나씩 알아보자. 1. MLE(Maximum Likelihood Estimation) 2. MAP(Maximum A Posteriori estimation) 1. MLE(Maximum Likelihood Estimation) 우선 MLE는 모델 파라미터를 Observation data(이미 관측된 데이터)에만 기반하여 추..
LU Decomposition(LU 분할) 이번 포스팅에서는 저번 시간에 계속적으로 배웠던 '가우스 소거법(Gauss Elimination)' (줄여서 'GE'라고 부르기도 한다.)에서 이끌어낼 수 있는 LU 분할에 대해서 알아보려고 한다. 기본적으로 가우스 소거법의 계산과정을 알아야 LU분할이라는 개념이 이해가 되기 때문에 가우스 소거법을 모른다면 이전 포스팅을 참고하자. (가우스 소거법을 알고 싶다면? https://techblog-history-younghunjo1.tistory.com/67) 앞으로 소개할 목차는 다음과 같다. 1. LU Decomposition (LU분할) 2. Triangular Factors 3. Pivoting을 고려한 LU분할 1. LU Decomposition 사람에 따라 LU Factorization이라고도 부..
시계열 데이터(Time-Series Data)의 특징과 모형 앞으로 게시할 포스팅은 주로 순천향대학교 빅데이터공학과 김영민 교수님의 '시계열 분석' 수업자료에 기반을 두었으며 포스팅 내용의 출처는 김영민 교수님의 수업자료에 있음을 우선적으로 알려드립니다. 데이터사이언스 분야에서도 데이터분석가가 되기 위해서는 통계적인 지식이 필수적이다. 통계라는 것은 시간과 무조건적으로 관련되어 있으며 이는 곧 시계열 자료 즉, Time-Series Data와도 밀접하게 연관되어 있음을 의미하기도 한다. 학교에서 '시계열 분석' 전공과목을 들으면서 이 학습시간을 효율적으로, 그리고 나의 머릿속에 오래도록 남기게 하기 위해서 시계열 분석 관련 포스팅을 남기려 한다. 블로그에서는 주로 이론적인 면을 다루며 R을 사용하여 시계열 분석을 실습해보는 코드는 해당 Github의 레포지토리에 ..
1차 연립방정식과 가우스 소거법(Gauss Elimination) 이번 포스팅에서는 Singular Case에 대해 알아보고 저번 포스팅에서 소개했었던 가우스 소거법의 구체적인 절차(방법)에 대해서 소개하려고 한다. 목차는 다음과 같다. 1. Singular Case란? 2. Gauss Elimination(가우스 소거법) 절차 1. Singular Case란? 우선 정의부터 하자면 Singular Case란 Unique한 해를 가지지 않을 때를 말하며 두 가지의 Case가 존재한다. No solution : 해가 존재하지 않아서 해결책이 없는 경우이다. Infinite solution : 해가 무수히 많아서 해결책이 무한한 개수인 경우이다. 다음 그림을 보면서 row form(도형, 직선)일 때와 Column form(벡터)일 때 두 가지 예시를 나누어서 살펴보자. ..