Machine learning

    [데이터 전처리] . 결측치 처리하기 ( Missing Values )

    데이터가 없을 때 할 수 있는 전략 데이터가 없으면 없는 행을 날려버린다. ( 간단하쥬 ) 데이터가 없는 최소 개수를 정해서 날려버린다. ( ex 결측치가 3개이상인 행은 날려버린다.) 데이터가 거의 없는 변수는 변수자체를 날려버린다. 최빈값, 평균값 , 중앙값으로 비어있는 데이터를 채운다. 머신러닝기법으로 예측해서 채워넣는다 ( 이 부분은 추 후에 다루도록 하겠습니다. ) 샘플데이터 결측치를 확인하는 방법 df.isnull().sum() first_name 칼럼에 1개 , last_name 칼럼에 1개 등등... 결측치가 있다. 첫 번째 방법. 결측치가 하나로 있으면 그 행을 날려버리기. dropna() : 결측치가 있는 행은 삭제해주는 함수 df_no_missing = df.dropna() df_no..

    [기계학습] KNN ( K-Nearest neighborhood ) k-최근접 이웃

    KNN (K-Nearest neighborhood) 이란? K-최근접 이웃 K는 갯수를 의미한다. ( 3NN , 5NN , 10NN ) 주변의 관측치들의 정보를 이용해서 새로운 관측치의 분류를 하게 된다. 비지도학습(Unsupervised Learning) 의 간단한 예시 아래와 같은 경우, 녹색 원(새로운 관측치)은 무엇으로 분류되어야 할까? 빨강? 파랑? 실선을 기준(K=3)으로 분류를 했을 경우는 빨강의 갯수가 더 많아서 빨강으로 분류 점선을 기준(K=5)으로 분류를 했을 경우는 파랑의 갯수가 더 많아서 파랑으로 분류 이렇게 k를 기준으로 새로운 데이터가 빨간색일지 파랑색일지 분류하는 것이 knn 알고리즘이다. 그렇다면 k는 어떻게 정하는 가? 만약 k가 너무 크다면? 미세한 경계부분은 잘못 분류할..

    [기계학습] 나이브 베이즈 분류 - Naive bayes classifier

    나이브 베이즈 분류에 대해서 알아보기 전에 먼저 조건부 확률에 대해서 알아보자. 조건부 확률이란? B가 주어졌을 때 사건 A의 조건부 확률 : 자료가 주어졌을 때 ( 조건을 주었을 때 ) 어떤 값의 확률을 뜻한다. 자세한 사항은 아래링크 2020/03/27 - [Data Science/Statistics] - [기초통계] 수학적 개념 ( 확률의 기초 , 확률 변수 , 확률 분포 ) [기초통계] 수학적 개념 ( 확률의 기초 , 확률 변수 , 확률 분포 ) 확률 확률 실험 ( Random experiment): 다음과 같은 속성을 지닌 관찰이나 인위적인 실험 실험결과는 미리 알 수 없다. ( ex 주사위에서 뭐가 나올지 모른다 ) 실험에서 일어날 수 있는 모든 결과는 acdongpgm.tistory.com ..

    [기계학습]PCA (Principal Conponents Analysis) 주성분 분석

    PCA(Principal Conponents Analysis)란 차원을 축소 즉 변수(feature)들의 갯수를 함축시키는 방법이다. 예를 들면 국어 성적과 영어성적을 합쳐서 문과적능력으로 합치는 것과 같다. 국어 , 영어 성적 ( 2차원) --> 문과적능력(1차원)으로 차원을 축소시킨다. 차원축소는 언제 사용하는가? Visualization - 시각화 3차원 이하의 데이터로 만들어 차트로 보여줘 데이터의 이해를 돕는다. reduce noise - 이미지의 노이즈 감소 preserve useful info in low memory - 메모리 절약 less time complexity - 시간절약 less space complexity - 공간절약 차원축소법(PCA) 2차원 공간상의 점을 1차원으로 줄인다..

    [기계학습]회귀계수 축소법 ( Ridge regression, Ridge 회귀)

    Machine Learing 기계학습 머신러닝 회귀계수 축소법을 공부하기 전에 분석용 데이터의 이상적인 조건에 대해 먼저 알아보자. 독립변수 X 사이에 상관성이 작아야 이상적임 반면에 독립변수 X와 종속변수 Y의 상관성은 커야 함. 위 두 성질을 만족하는 소수의 독립변수 집합 많은 양질의 데이터(결측치와 노이즈가 없는 깨끗한 데이터) 변수 선택(variable Selection) 독립변수 X간에는 상관성이 적고, X와 종속변수 Y간에는 상관성이 큰 독립변수만을 추출 그럼 좋은 변수는 어떤 변수일까? Y의 변동성을 잘 설명하면서 X들끼리는 상관관계가 없는 변수들이 좋은 변수이다. X1과 X2는 Y의 변동성을 설명하면서 겹치게 되고 변동성을 중복으로 가져갈 수 없기 때문에 겹치는 부분이 많아지면 하나를 제거..

    [기계학습] 변수 선택법 알고리즘( Python Code - 파이썬 예제 )

    #변수 선택법 def processSubset(x,y, feature_set): model = sm.OLS(y,x[list(feature_set)]) #modeling regr = model.fit() #모델학습 AIC = regr.aic #모델의 AIC return {"model" : regr , "AIC" : AIC} print(processSubset(x=trainX,y=trainY,feature_set=featureColums[0:5])) #모든 조합을 다 조합해서 좋은 모델을 반환시키는 알고리즘 import time import itertools def getBest(x,y,k): tic = time.time() #시작시간 results = [] #결과저장공간 for combo in iterto..

    [기계학습]. 다중선형회귀(Multiple Linear Regression)실습 Python code -예제

    실습데이터 및 파이썬 script 실습에 사용된 라이브러리 import os import pandas as pd import numpy as np import statsmodels.api as sm from sklearn.model_selection import train_test_split Pandas 행과 열로 이루어진 데이터 객체를 만들어 다룰 수 있게 되며 보다 안정적으로 대용량의 데이터들을 처리하는데 매우 편리한 도구 numpy 다차원 배열을 처리하는데 필요한 여러 유용한 기능을 제공 statsmodels 검정 및 추정 , 회귀분석, 시계열분석등의 다양한 통계분석 기능을 제공 patsy 패키지를 포함하고 있어 기존에 R에서만 가능했던 회귀분석과 시계열분석 방법론을 그대로 파이썬에서 이용할 수 있..

    [기계학습]로지스틱 회귀분석 ( logit , odds , sigmoid 함수 )

    Machine Learing 기계학습 머신러닝 로지스틱 회귀란 출력 변수를 직접 예측하는 것이 아니라, 두 개의 카테고리를 가지는 binary형태의 출력 변수(명목형) '성공','실패' 또는 '예' , '아니요' 를 예측(분류)할 때 사용하는 회귀분석 방법이다. 로지스틱 회귀에서는 k개의 입력 변수를 사용하여 성공 실패를 예측하기 위해 성공 확률 p(X)를 모델링 함. 확률에 대해서 모델링하는 방법이다. 방정식의 왼쪽의 범위는 확률이기 때문에 [0,1]이지만 오른쪽의 범위는 [-무한대 , + 무한대] 이므로 다른 형태로 모델링 해야함. 좌측항과 우측항의 범위를 맞춰주기 위해서 로지스틱 함수(Logistic Function)을 사용한다. 로지스틱 함수(Logistic Function) 1. 왼쪽항에 자연 ..

    [기계학습]다항 회귀 분석 ( 비선형 회귀 분석 )

    Machine Learning 기계학습 머신러닝 다항 회귀분석(비선형 회귀 분석) 정의 : 2차 3차 항을 추가로 해서 직선이 아닌 모델 잔차의 3가지 검정을 해보고 나서 안 맞을 경우 다항회귀분석을 진행한다. 처음부터 다항회귀분석을 진행하면 과적합(overfitting)의 문제가 발생할 수 있다. 다항 회귀분석이 필요한 경우 독립변수와 종속 변수 간의 비선형 관계를 가지는 경우 독립변수와 종속변수의 plot을 통해 확인 가능 다중 회귀의 가정이 위배된 경우 Residual Plot을 통해 확인 가능 다항 회귀 적합 회귀계수를 추정하는 방법은 선형 회귀분석과 동일하게 잔차 제곱합을 최소화시키도록 회귀계수 추정 기존의 변수에 2차항을 추가한 모델 vs 2차항 만을 사용한 모델을 비교했을 때. X1와 Y 간..

    [기계학습]회귀분석의 진단 ( nomal Q-Q plot ,Residual vs Fitted, Residuals 산점도 )

    Machine Learning 기계학습 머신러닝 회귀분석의 진단 적절한 변수를 통해 어느 정도 성능지표가 잘 나오는 모델을 만들었다. 과연 이 회귀모델이 잘 만들어진 모델인 것인가에 대한 진단이 필요. 회귀분석에서는 아래 잔차에 대한 세 가지 가정이 존재 : 정규성, 독립성, 등분산성 세 가지 가정을 만족할 시 잘 만들어진 회귀모델이라 판단. 회귀분석의 가정: X와 Y는 선형 관계다. 선형성 - 독립변수의 변화에 따라 종속 번수도 변화하는 선형인 모형이다. 독립성 - 잔차와 독립변수의 값이 관련되어 있지 않다. ( 더빈-왓슨 통계량 이용) 등분산성 - 오 차 항들의 분포는 동일한 분산을 갖는다. 비상관성 - 잔차들끼리 상관이 없어야 한다. 정상성 - 잔차항이 정규분포를 이뤄야 한다. 잔차의 정규성 검정 ..