본문 바로가기

Machine Learning

(95)
ch.5.6 규제 선형 회귀 (릿지, 라쏘, 엘라스틱넷) 다항선형 회귀의 Overfitting문제 5.5절 예제에서 보듯이 다항회귀에서 차수(degree)가 높아질수록(e.g. degree = 15) 다항식이 복잡해지고 회귀계수가 매우 크게 설정되면서 overfitting이된다. 해결방법 -> 규제 규제 선형 회귀 개요 앞의 예제에서 Degree=15 의 다항회귀는 지나지게 모든 데이터에 적합한 회귀식을 만들기 위해서 다항식이 복잡해지고 회귀 계수가 매우 크게 설정이 되면서 과대적합이 되고 평가 데이터 세트에 대해서 형편없는 예측 성능을 보였습니다. 따라서 회귀 모델은 적절히 데이터에 적합하면서도 회귀 계수가 기하급수적으로 커지는 것을 제어할 수 있어야 합니다. 규제 선형 모델에서 alpha 의 역할 alpha가 0(또는 매우 작은 값)이라면 비용 함수 식은 ..
ch.5.5 다항회귀 (Polynomial Regression) 다항회귀 개요 (Polynomial Regression) 다항 회귀(Polynomial Regression)란 비선형 데이터를 학습하기 위해 선형 모델을 사용하는 기법이다. 단순 선형 회귀(SLR)를 이용해 모든 데이터의 관계성을 직선으로 표현할 수는 없으므로 다항 회귀 또는 다중 선형 회귀(MLR) 등과 같은 조금 더 복잡한 회귀 모델이 때에 따라 최적의 회귀선을 나타내고는 한다. 각 변수의 거듭제곱을 새로운 변수로 추가하고 이 확장된 변수를 포함한 데이터셋에 선형 모델을 훈련시킨다. 다중 선형 회귀는 여러 독립 변수들이 필요한 반면 다항 회귀는 하나의 독립 변수에 대한 차수를 확장해가며 단항식이 아닌 2차, 3차 등의 회귀 모델을 도출한다. 다만 주의해야 할 점은 선형 회귀와 비선형 회귀를 구분하는 ..
sklearn의 수치예측 scoring함수 scoring='neg_mean_squared_error'를 쓰는 이유는 scoring 매개변수에 클수록 좋은 함수를 기대하기 때문에 -mse를 쓰고 나서 나중에 다시 -를 곱해준다.
CH07_01. SVM 목표 1. SVM의 정의 2. Margin의 종류 3. Kernel의 종류 SVM 예시 어떤 직선이 데이터를 제일 잘 나눌까요? 정답은 ② ①의 경우 동그라미를 네모로 잘못 분류 ③의 경우 네모를 동그라미로 잘못 분류 ②의 경우 네모의 데이터와 동그라미의 데이터에서 충분히 떨어져 있는곳에서 직선이 있다. 새로운 데이터를 입력으로 받을 때 오분류할 확률이 적어진다. SVM 정의 Support Vector Machine (SVM) SVM은 결정 경계(Decision Boundary)을 정의하는 모델 Support Vector Machine의 목표 Margin을 최대화하는 Decision Boundary(결정 경계) 찾기 이 때 Support Vector가 Decision Boundary를 만드는데 영향을 주..
CH06_04. 음수 가능 여부 판단 (Python) 1 KNN으로 음수 가능 여부를 판단하기 import pandas as pd import numpy as np import matplotlib.pyplot as plt np.random.seed(2022) 1.1 1. Data 이번 실습에서 사용할 데이터는 음수가 가능한지를 판단하는 데이터 입니다. 1.1.1 1.1 Data Load water = pd.read_csv("water_potability.csv") data = water.drop(["Potability"], axis=1) label = water["Potability"] 1.1.2 1.2 Data EDA 데이터의 변수들을 확인하겠습니다. count를 확인하면 count들이 다른 것을 확인할 수 있습니다. data.describe() 값이 비..
ch5.3_Gradient_Descent, ch5.4_LinearModel 1 5.3 Gradient Descent import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline np.random.seed(0) 2 y = 4X + 6 Y=4X+6 모델에 실제값을 시뮬레이션하는 데이터 값 생성 (w1=4, w0=6) np.random.seed(0) np.random.rand(100, 1)[0:10] # 0~1 값 표준정규분포를 나타내는 100행 1열의 numpy array # np.random.rand 0부터 1사이의 균일 분포에서 난수 matrix array생성 >>> array([[0.5488135 ], [0.71518937], [0.60276338], [0.54488318], ..
ch.5.4 사이킷런 LinearRegression 클래스 (보스턴주택가격예측) 사이킷런 LinearRegression 클래스 LnearRegression 클래스는 예측값과 실제 값의 RSS(Residual Sum of Squares)를 최소화해 OLS(Ordinary Least Squares) 추정 방식으로 구현한 클래스입니다. LinearRegression 클래스는 fit() 메서드로 X, y 배 열 을 입력받으면 회귀 계수(Coefficients)인 W를 coef_ 속성에 저장합니다. 선형 회귀의 다중 공선성 문제 일반적으로 선형 회귀는 입력 피처의 독립성에 많은 영향을 받습니다. 피처간의 상관관계가 매우 높은 경우 분산이 매우커져서 오류에 매우 민감해집니다. 이러한현상을 다중공선성 (muIti-colIinearity) 문제 라고 합니다. 일반적 으로 상관관계가 높은 피처가 많..
언제 MSE, MAE, RMSE를 사용하는가? 제목에 열거한 RMSE, MSE, MAE는 딥러닝 모델을 최적화 하는 데 가장 인기있게 사용되는 오차 함수들이다. 이번 포스팅에서는 (1) 이들의 특징을 알아보고, (2) 이 3 가지 손실 함수를 비교 분석해본다. 아래의 예를 보자. 어떤 모델이 학습 데이터를 입력받아 아래 테이블 내 수치들을 예측했다고 해보자. target은 prediction이 맞춰야 할 정답이고, epoch은 학습의 횟수를 가리킨다. Epoch 2에서, Prediction의 3번째 값인 2는 그것이 근접했어야 할 Target의 3번째 값인 7과 크게 벗어나게 예측했다는 의미에서 Outlier라는 점에 주목하자. 이들 값을 가지고 MSE, RMSE, MAE를 계산해보면 아래와 같다: MSE의 특징 [1] Mean Square Erro..