기본 콘텐츠로 건너뛰기

라벨이 SGDRegressor인 게시물 표시

[matplotlib]quiver()함수

[stock]SGDRegressor를 사용한 주가예측

SGDRegressor를 사용한 주가예측 Stochastic Gradient Descent(SGD) 알고리즘을 사용하여 선형모델을 학습시키는 클래스입니다. sklearn.linear_mode.SGDRegressor() 클래스를 사용하며 선형모델을 생성합니다. loss: 손실함수 지정, 'squaredd_error'(최소제곱오차, 기본값), 'huber', 'epsilon_insensitive', 'squared_epsilon_insensitive'를 지정할 수 있음. penalty : 과적합 방지를 위한 적용할 규제 지정 . ('l1', 'l2', 'elasticnet'). 기본값은 None (규제 없음)입니다. alpha: 규제 강도를 조절하는 상수이며 클수록 규제가 강해집니다. 기본값은 0.0001입니다. l1_ratio: Elastic Net 규제 사용 시 L1 규제와 L2 규제의 혼합 비율을 결정합니다 (0 ≤ l1_ratio ≤ 1). penalty='elasticnet'일 때만 사용됩니다. fit_intercept: 모델에 절편 (bias) 항을 추가할지 여부를 결정. 기본값은 True. max_iter: 학습 데이터에 대한 최대 반복 횟수 (epoch)를 지정. 기본값은 1000. tol: 학습 종료 조건으로, 손실 함수의 감소량이 이 값보다 작으면 학습을 중단. 기본값은 1e-3. learning_rate: 학습률 스케줄링 방법을 지정('constant', 'optimal', 'invscaling', 'adaptive'). 기본값은 'invscaling'. eta0: 초기 학습률을 지정 (learning_rate='constant' 또는 learning_rate='invscaling'일 때 사용). 기본값은 0.0...

[data analysis] 경사하강법(Descent Gradient)

경사하강법(Descent Gradient) 최소자승법 은 공식화된 계산식에 의해 결정된 회귀계수를 적용합니다. 경사하강법은 수치적으로 모델을 최적화하는 과정에서 회귀계수를 산출합니다. 식 1의 선형회귀모형은 독립변수(x)와 종속변수(y)의 사이의 다음의 선형식을 만족하는 최적의 회귀계수를 결정하는 것입니다. \begin{align} \tag{식 1}&y=xW\\&W:\text{회귀계수(가중치)}\end{align} 예를 들어 다음의 자료는 sklearn.datasets.make_regression(n_samples, n_features, coef, random_state, …) 함수를 사용하여 생성한 데이터 입니다. import numpy as np import pandas as pd from sklearn.datasets import make_regression import matplotlib.pyplot as plt import sympy as sp X,y, cof= make_regression(n_samples=1000, n_features=1, coef=True, random_state=1) cof array(38.69892343) X.shape, y.shape ((1000, 1), (1000,)) 역으로 위 자료의 선형회귀 모델을 생성한다고 할 경우 y=xw로부터 식 2와 같이 계산되는 mse가 최소가 되는 방식으로 W를 결정해야 합니다. $$\begin{align}\tag{식 2}\text{mse}&=\frac{\sum^n_{i=1}(\hat{y}-y)^2}{n}\\&=\frac{\sum^n_{i=1}(xW-y)^2}{n} \end{align}$$ W를 임의적으로 적용할 경우 mse의 변화는 그림 1과 같이 2차 곡선의 형태를 나타냅니다. plt.figure(figsize=(4, 3)) w=np.linspace(-50, 50, 100)#회귀계수의 변화 mse=[np.sum((X*...