Gradient descent 알고리즘 Gradient descent 알고리즘은 손실 함수(loss function)의 미분값인 gradient를 이용해 모델에게 맞는 최적의 가중치(weight), 즉 손실 함수의 값을 최소화 하는 가중치를 구할 수 있는 알고리즘이다. 이번 실습에서는 Gradient descent 알고리즘을 직접 구현한 후, 이를 이용해 데이터를 가장 잘 설명하는 선형 회귀 직선의 기울기와 y절편, 즉 선형 회귀 모델에게 맞는 최적의 가중치를 찾아보자. 선형 회귀 직선의 수식은 다음과 같은 1차 함수 형태이며, 우리가 Gradient descent 알고리즘을 사용해 찾을 값, 즉 가중치는 w_0w0과 w_1w1이다. f(x) = w_0+w_1 xf(x)=w0+w1x 손실 함수 (..
서포트 벡터 머신은 높은 성능을 보여주는 대표적인 분류 알고리즘입니다. 특히 이진 분류를 위해 주로 사용되는 알고리즘으로, 각 클래스의 가장 외곽의 데이터들 즉, 서포트 벡터들이 가장 멀리 떨어지도록 합니다. SVM을 위한 사이킷런 함수/라이브러리 from sklearn.svm import SVC: SVM 모델을 불러옵니다. SVC(): SVM 모델을 정의합니다. [Model].fit(x, y): (x,y) 데이터 셋에 대해서 모델을 학습시킵니다. [Model].predict(x): x 데이터를 바탕으로 예측되는 값을 출력합니다. import pandas as pd import numpy as np import matplotlib.pyplot as plt import warnings warnings.fi..
로지스틱 회귀를 위한 사이킷런 함수/라이브러리 from sklearn.linear_model import LogisticRegression: 사이킷런 안에 구현되어 있는 로지스틱 회귀를 불러옵니다. LogisticRegression(): 로지스틱 회귀 모델을 정의합니다. [Model].fit(X, y): (X,y) 데이터 셋에 대해서 모델을 학습시킵니다. [Model].predict(X): X 데이터 바탕으로 예측되는 값을 반환 from data_plot import * # 경고메세지(버전이 낮다던가 다음 버전에서는 지워지는 경우 나타남)를 안 뜨게 해줌 import warnings warnings.filterwarnings(action='ignore') import numpy as np from skl..
교차 검증이란? 과적합 방지를 위해 데이터를 분리하는 방법 k-fold 교차 검증 학습용 데이터를 계속 변경하며 모델을 훈련시키는 방법 k-fold 교차 검증 순서 K를 설정하여 데이터 셋을 K개로 나눔 K개 중 한 개를 검증용, 나머지를 학습용으로 사용 K개 모델의 평균 성능 확인 K-fold 교차 검증을 위한 사이킷런 함수/라이브러리 KFold(n_splits) n_splits : 분리할 데이터(fold) 개수 [KFold].split(X) 실제로 데이터를 분리하기 위한 인덱스를 반환합니다. X : 분리하고자 하는 데이터 import numpy as np from sklearn.model_selection import train_test_split from sklearn.datasets import ..
다항 회귀란? Y를 X에 대한 임의의 다항 함수로 모델링하는 선형 회귀를 의미합니다. 다항 회귀는 먼저 입력 데이터 X에 대한 전처리를 진행해준 후 다중 선형 회귀를 적용함으로써 구현됩니다. 사이킷런을 이용하면 입력 데이터에 대한 전처리를 편리하게 진행할 수 있습니다. 다항 회귀를 위한 사이킷런 함수/라이브러리 PolynomialFeatures(degree, include_bias) : Polynomial 객체를 생성합니다. degree : 만들어줄 다항식의 차수를 의미합니다. include_bias : 편향 변수의 추가 여부를 설정합니다. (True/False) True로 설정하게 되면, 해당 다항식의 모든 거듭제곱이 0일 경우 편향 변수를 추가합니다. 이는 회귀식에서 베타0와 같은 역할을 합니다. [..