유용한 모든 것/Machine Learning

    단순회귀, 다중회귀, 다항회귀

    단순회귀, 다중회귀, 다항회귀

    이번 글에서는 회귀의 첫 시작이자 개념에 대한 정리 글이다. 깊게 다루지는 않겠다. 1. 회귀 (Regression) 1.1 회귀? Y=f(X)에 대하여 입력 변수(X)와 출력 변수(Y) 간의 관계를 모델링하는 지도학습의 대표적인 유형 여기에, 오차 e를 추가하는데, 실제 데이터에 존재할 수 있는 잡음 혹은 유실 발생에 대응하고자 입력 변수 X에 대해 연속형 출력변수 Y를 예측 (분류에서는 y의 변수: 이산형) 한 변수의 원인이 어떤 변수들인지 분석하는 방법 (즉, 독립변수 Xi와 종속변수 Y) 1.2 회귀의 종류 독립변수의 수에 따라 단순회귀분석, 다중회귀분석 독립변수의 척도에 따라 일반회귀분석, 더미변수를 이용한 회귀분석 독립변수와 종속변수의 관계에 따라 선형회귀분석(직선), 비선형 회귀분석(직선x)..

    데이터 전처리 (2. 피처 스케일링)

    『파이썬 머신러닝 완벽 가이드』 도서를 공부하며 정리한 글입니다. 코드 결과는 직접 실행해보면서 결과를 보시면 좋을 것이라 생각하여 생략하였습니다. 이번 글에서는 피처 스케일링(feature scaling)의 대표적인 방법인 표준화(Standardization)와 정규화(Normalization)에 대해 소개하겠다. 피처 스케일링은 서로 다른 변수(feature)의 값 범위를 일정한 수준으로 맞추는 작업이다. 예를 들어서, 어떤 feature는 -1부터 1 사이의 값으로 구성되어 있고, 다른 feature는 0부터 100 사이의 값으로 구성되어 있는 경우이다. 서로 다른 범위의 변수들을 평균이 0이고 분산이 1인 (가우시안) 정규 분포를 가진 값으로 변환하는 것이 표준화이다. 서로 다른 범위의 변수들의 ..

    데이터 전처리 (1)

    데이터 전처리 (1)

    『파이썬 머신러닝 완벽 가이드』 도서를 공부하며 정리한 글입니다. 코드 결과는 직접 실행해보면서 결과를 보시면 좋을 것이라 생각하여 생략하였습니다. 데이터 전처리는 ML(머신러닝) 알고리즘만큼 중요하다. 쓰레기를 넣으면 쓰레기가 나온다는 (Garbage in, Garbage out) 말이 있듯이, ML 알고리즘의 성능이 좋더라도, 어떤 데이터를 입력으로 가지느냐에 따라 결과가 매우 크게 달라질 수 있다. 그렇기 때문에 ML알고리즘을 적용하기전에 데이터에 대해 미리 처리해야할 것들이 있다. 1. 결손값(NaN) Null값이라고 하는 것인데, 이는 ML 알고리즘에 허용되지 않는다. 그렇기 때문에 무조건 결측치를 없애줘야하는데, 크게 결측치를 제거하는 방법과 대체하는 방법이 있다. (1) Null값이 얼마 되..

    교차 검증

    교차 검증

    1. 사이킷런 - 사이킷런 기반 프레임워크 사이킷런(scikit-learn)은 파이썬 머신러닝 라이브러리 중 가장 많이 사용되는 대표적인 라이브러리이다. 사이킷런에서는 분류 알고리즘을 구현한 클래스를 Classifier로, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭한다. (사이킷런에서는 매우 많은 유형의 Classifier와 Regressor 클래스를 제공한다.) Classifier와 Regressor를 합쳐서 Estimator 클래스라고 부른다. (즉, 지도학습의 모든 알고리즘을 구현한 클래스를 Estimator라고 부른다.) Estimator 클래스 (내부)에서 fit()과 predict()를 구현함. - 해당 Estimator를 인자로 받는... cross_val_score()와 같은..

    ndarray, 리스트, 딕셔너리와 DataFrame 상호 변환하기

    ndarray, 리스트, 딕셔너리와 DataFrame 상호 변환하기

    일반적으로 DataFrame으로 변환 시에는 컬럼명을 지정해준다. DataFrame이 2차원 데이터(행과 열)이기 때문에, 기본적으로 2차원 이하의 데이터들만 DataFrame으로 변환될 수 있다. 1. 1차원_리스트와 ndarray(넘파이) import numpy as np import pandas as pd list1 = [1,2,3] # 1차원 리스트 array1 = np.array(list1) # 1차원 numpy ndarray col_name1 = ['col'] # 컬럼이름 리스트 # 리스트를 이용해 데이터프레임 생성 df_list1 = pd.DataFrame(list1, columns=col_name1) # ndarray를 이용해 데이터 프레임 생성 df_array1 = pd.DataFrame..

    K-NN 알고리즘의 쉬운 예제

    K-NN 알고리즘의 쉬운 예제

    머신러닝에는 지도학습(Supervised Learning)과 비지도 학습(Unsupervised Learning)이 있습니다. 지도학습에는 최근접 이웃 (Nearest Neighbor) 나이브 베이즈 (Naive Bayes) 의사결정 트리 (Decision Trees) 분류 규칙 학습자 (Classification Rule Learners) 선형 회귀 (Linear Regression) 회귀 트리 (Regression Trees) 모델 트리 (Model Trees) 신경망 (Neural Networks) 서포트 벡터 머신 (Support Vector Machines) 이 정도가 대표적인 알고리즘입니다. 그중 KNN은 가장 고전적/직관적인 방법이라고 알려져있습니다. 또한 K-NN은 '분류'에 속하는데, 분..