데이터로 Deep Dive

데이터 분석과 개발 경험을 공유합니다.

머신러닝 20

범주형 데이터를 수치형 데이터로 바꿔주는 One-hot Encoding

머신러닝에는 사용되는 데이터터는 아래와 같이 크게 두 종료가 있다. 많은 머신 러닝 알고리즘은 인풋 데이터, 즉 입력 변수의 값이 수치형 데이터여야 한다. 예를 들면 선형 회귀도 손실 함수를 구하고 경사 하강법을 적용하려면 인풋 데이터가 수치형 데이터여야 한다.  그렇다면 범주형 데이터가 있을 땐 어떻게 해야 할까? 범주형 데이터를 -> 수치형 데이터로 바뚸 주면 된다. 그러나 위 이미지처럼 범주에 숫자를 입력하게 된다면 머신러닝 알고리즘은 'A형은 1이니까 가장 작고, O형은 4니까 가장 크고, AB형, B형은 그 사이에 존재한다'라는 관계로 인식하게 되어 오히려 예측에 방해가 된다.  그러므로 범주형 데이터를 수치형 데이터로 바꿔줄 때는 One-hot encoding 방법을 사용한다. One-hot..

Feature Scaling - Min-Max Nomalization

Feature Scaling입력 변수(feature)의 크기를 조정해 준다(scale)라는 뜻이다. 아래 이미지와 같이 '연봉'이라는 입력 변수가 있고 '나이'라는 입력 변수가 있다고 가정해보자. 이때, 연봉은 천단위이지만 나이는 대부분 십단위이다. 이렇게 입력 변수의 규모 단위가 차이가 클 경우 머신 러닝에 방해가 될 수 있기 때문에 feature scaling을 해서 입력 변수들의 크기가 모두 일정 범위 내에 들어오도록 조정해주는 것이다. feature scaling을 하면 '경사 하강법'을 조금 더 빨리 할 수도 있다. Min-Max Nomalizationnormalization은 '숫자의 크기를 0과 1사이로 만든다'라는 뜻이다. 이는 데이터의 minimum, 즉 최솟값 그리고 최댓값(maximu..

편미분과 기울기

편미분위의 함수가 있다고 가정해보자.인풋 변수가 $x$와 $y$ 이렇게 두 개로 이루어져 있다. 이럴 때에는 '편미분'을 해야 하는데,편미분이란 두 인풋 변수 $x$랑 $y$에 대해서 모두 미분을 하는 게 아닌 변수 하나에 대해서만 미분을 하는 것이다. 즉, 변수 $x$ 에 대해서 편미분을 할 수도 있고, 변수 $y$에 대해서 편미분을 할 수도 있다.  $x$ 에 대해서 편미분$x$ 에 대해서 미분을 하면: $d/dx$ 를 쓰는데, $x$ 에 대해서 편미분을 하면 $∂/∂x$ 를 쓴다. (*'델'이라고 읽음)변수 $x$ 에 대해서 편미분을 한다면 $x$ 를 제외한 나머지 변수들은 마치 상수인 것처럼 취급하게 되므로 $x$ 를 제외한 나머지 변수 $y$ 를 변수가 아니라 그냥 일반 숫자(상수)처럼 취급 한..

선형대수학 - 극소점, 극대점 그리고 안장점

순간 변화율이 양수면 해당 지점에서 x가 늘어나면 y도 늘어난다. 반대로 순간 변화율이 음수라는 것은, 해당 지점에서 x가 늘어나면 y가 줄어든다는 뜻이다. 그런데 순간 변화율이 0인 지점은 해당 지점에서 x가 변해도 y는 그대로라는 의미이다. 이런 순간 변화율이 0인 지점이 발생하는 경우는 아래와 같다. 극소점 (Local Minimum)극소점은 이렇게 그래프에서 아래로 볼록 튀어 나오는 경우를 말한다. 이 지점에서 왼쪽으로는 기울기가 음수고, 오른쪽으로는 기울기가 양수인데, 기울기가 음수에서 양수로 전환할 때 한 번 0을 찍고 가게 된다. 참고로 지금 아래로 볼록 튀어 나오는 부분이 여러 개 있는 경우에는 극소점이 여러 개 있는 것인데, 이 중에서 제일 작은 값은 최소점, 영어로는 global m..

선형대수학 - 행렬

행렬과 벡터 구분행렬이란?행렬(matrix)은 수를 직사각형의 형태로 나열한 것으로 행렬의 가로줄을 행, 영어로는 row라고하며, 세로줄은 열, 영어로는 column이라고 한다. A의 경우 행이 3개 있고 열이 4개 있는데, 이런 걸 3 x 4 행렬 또는 "이 행렬의 차원이 3 x 4다"라고도 한다. 원소 표기 m x n인 행렬이 있다면 원소들을 아래처럼 표현할 수 있다.벡터벡터도 일종의 행렬로써, 행이 하나밖에 없거나 열이 하나밖에 없는 행렬을 의미한다.a는 열이 하나만 있으므로 열 벡터라고 하며 b는 행이 하나만 있기 때문에 행 벡터라고 한다. 다만, 열 벡터를 사용하는 경우가 더 많기 때문에, 그냥 벡터라고 하면 열 벡터를 뜻한다. 벡터의 차원벡터는 무조건 열이 하나밖에 없거나 행이 하나밖에 없다...

차원 축소 알고리즘

차원의 저주: 차원이 커지면 커질수록 데이터 포인트들 간 거리가 크게 늘어나므로 데이터가 희소화(Sparse) 되기 시작함수백~수천 개 이상의 Feature로 구성된 포인트들간 거리에 기반한 머신러닝 알고리즘들이 무력화 됨또, Feature가 많을 경우, 개별 Feature간 상관관계가 높아 선형 회귀 같은 모델에선 '다중공선성 문제'로 인해 모델의 예측 성능이 저하될 가능성이 매우 높다.  차원 축소 장점학습 데이터 크기를 줄여 학습 시간을 절약할 수 있음불필요한 Feature를 줄여 모델 성능 향상에 기여할 수 있음다차원 데이터를 3차원 이하의 차원 축소를 통해 시각적으로 쉽게 데이터 패턴을 인지할 수 있음차원 축소 분류특성 선택(feature selection): 종속성이 강한 불필요한 특성은 완전..

회귀 알고리즘

회귀란?데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향회귀 분석은 데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향을 이용한 통계학 기법 여러 개의 독립변수(X)와 한 개의 종속변수(y) 간의 상관관계를 모델링하는 기법(*모델링은 표본)가중치 -> 회귀 계수(Regressino Coefficients)회귀 유형회귀 계수회귀 계수가 직선이면 -> 선형회귀회귀 계수가 직선이 아니면 -> 비선형로지스틱 회귀독립변수 개수회귀 계수의 결합1개단일 회귀선형선형 회귀 N개 다중 회귀비선형비선형 회귀로지스틱 회귀 회귀 모델의 목적: 전체 데이터의 잔차(오류 값) 합이 최소가 되는 모델을 만드는 것 -> 오류 값의 합이 최소가 될 수 있는 최적의 회귀 계수 w을 찾는 것!일반 선형 회귀(LinearRegre..

앙상블(보팅, 배깅, 부스팅)

보팅(Voting)Hard Votiing: 다수의 Classifeir간 다수결로 최종 class 결정Soft Voting: 다수의 Classifier들의 class 확률을 평균하여 결졍(*일반적으로 많이 사용) -> predict prob가 있어야 가능SVC 모델은 predict proba가 없으므로 Soft Votingd 참여 불가 배깅(Bagging): Bootstrap Sampling의 줄임말, 기존 학습 데이터 세트로부터 랜덤하게 복원추출하여 동일한 사이즈의 데이터 세트를 여러 개 만드는 것과대적합되며 훈련이 진행됨대표 모델: 랜덤포레스트부스팅(Boosting): 과소적합된 모델을 사용하여 순차적으로 반복학습을 진행함, 예측한 데이터 혹은 학습 트리에 가중치 부여를 통해 오류를 개선해 나가면서 학..

미분

예측 모형의 성능손실함수(loss function) = 비용함수(cost function) 또는 오차함수(error function)목적:  목적함수의 값을 가장 크게 혹은 적게 할 수 있는 입력값, 즉 모수를 구하는 것을 최적화(optmization)라고 한다.  eg.   미분을 이용해 최소 지점으로 갈 수 있는 방법을 구해보자. 기울기: (= 변화량) 가장 적은 횟수로 여러가지 𝑥값을 시도하여 최적의 값을 찾는 방법수치미분미분(differentiation): 어떤 함수로부터 그 함수 기울기를 출력하는 새로운 함수를 만들어내는 작업이다. 미분으로 만들어진 함수를 원래 함수의 도함수(derivative)라고 한다.미분 가능: 함수에 따라서는 어떤 점에서는 기울기 값을 정의하기 어려울 수가 있다. 예를..

분류 알고리즘 - 결정 트리

알고리즘을 배운다는 것은?결정 트리 알고리즘스무고개를 하듯이 계속적인 질문을 통해 패턴을 찾아간다. 목적: 가장 효율적인 분류가 되기 위한 규칙을 찾음(모든 리프를 균일하게 만드는 것)정보 균일도 측정 방법정보 이득 vs 지니 계수 - 정보 이득: 엔트로피(복잡도) 개념 기반상이한 값들이 섞여 있으면 엔트로피 높음, 동일한 값들이 섞여 있으면 엔트로피 낮음정보 이득 지수 = 1 - 엔트로피 지수결정 트리는 이 정보 이득 지수로 분할 기준을 정한다. 즉, 정보 이득이 높은 속성을 기준으로 분할한다.  - 지니 계수: 경제학에서 불평등 지수를 나타낼 때 사용하는 지수0(평등/균일) ~ 1(불평등/불균일): 낮으면 낮을 수록 좋음!즉, 결정 트리에선 지니 계수를 0으로 만드는 것이 목적임  규칙 노드 생성 ..