•
계산값을 기반으로 계산값이 0보다 작으면 -1, 0보다 크면 1로 분류한다.
•
이진 선형 분류기는 선, 평면, 초평면을 이용해 2개의 클래스를 구분하는 분류기이다.
SGD ?
신경망모델에서 가중치를 조정하는 과정에서 보통 경사하강법을 사용한다. 신경망의 파라미터를 p라고 했을 때 모델에서 내놓은 예측값과 실제값 사이의 차이를 정의하는 손실함수(또는 비용함수)의 값을 최소화하기 위해 기울기를 이용하는 것이다. 즉, 손실함수의 값을 최소화하는 p를 찾는 것이 경사하강법이라고 생각하면 된다.
SGD에서는 손실함수를 계산할 때, 전체 데이터(Batch) 대신 일부 데이터의 모음(Mini-Batch)을 사용해서 계산한다. 전체 데이터셋을 이용할 때보다 다소 부정확할 수는 있지만, 계산 속도가 훨씬 빠르기 때문에 여러 번 반복하게 되면 결국 배치로 처리한 결과로 수렴하게 된다. 또한, 배치 경사 하강법의 단점이기도 한 지역 최소값에 빠지는 위험이 적다는 점에서 좋다.
특징
•
미니배치를 사용하여 학습하기 때문에 상대적으로 큰 데이터에 적합하다.
•
로지스틱 회귀의 손실함수 최소값은 직접적으로 계산할 수 없지만 SGD를 통해서는 최소값을 직접 계산할 수 있다.
•
SGDClassifier 사용법
SGDClassifier(alpha, average, class_weight, epsilon, eta0, fit_intercept, l1_ratio, learning_rate, loss, max_iter, n_iter, n_jobs, penalty, power_t, random_state, shuffle, tol, verbose, warm_start)
•
loss : 손실함수(default=’hinge’, which gives a linear SVM)
◦
possible options : hinge, log, modified_huber, squared_hinge, perceptron, squared_error, huber, eplsilon_insensitive, squared_eplsilon_insensitive
▪
log : logistic regression
▪
modified_huber : smooth loss that brings tolerance to outliers as well as probability estimates
▪
squared_hinge : like hinge, but is quadratically penalized
▪
perceptron : linear loss used by the perceptron algorithm
•
penalty : {’l2’,’l1’,’elasticnet’}, default= ‘l2’
◦
l2 : 릿지 규제. standard reqularizer for linear SVM models
◦
l1 , elasticnet : bring sparcity to the model(feature selection) not achievable with ‘l2’
•
alpha : 값이 클수록 강력한 규제 설정(default=0.0001)
◦
Also, used to compute the learning rate when ‘learning_rate’ is set to ‘optimal’
•
l1_ratio : l1 규제의 비율(elastic-net 믹싱 파라미터 경우에만 사용)(default=0.15)
•
fit_intercept : 모형에 상수항(절편)이 있는가 없는가를 결정하는 인수(default=True)
•
max_iter : 최대 반복수 (default=1000)
◦
only impacts the behavior in the ‘fit’ method, and not the ‘partial_fit’ method
•
tol : 정밀도(None이 아닐 경우, 학습은 loss > best_loss-tol 일 때 중지된다)
◦
convergence is checked aganist the training loss or the validation loss depending on the ‘early_stopping’ parameter
•
shuffle : 각 에포크 후에 트레이닝 데이터를 섞는지의 유무(default=True)
•
verbose : int(default=0)
•
epsilon : 손실함수에서의 입실론, 작을 경우 현재 예측과 실제값의 차이가 임곗값보다 작으면 무시(default=0.1)
•
n_jobs : 병렬 처리할 때 사용되는 CPU 코어 수
•
random_state : 난수 seed 설정
•
learning_rate : 학습률 결정하는 함수(default=’optimal’)
◦
=the learning_rate schedule
◦
‘const’ : eta = eta0
◦
‘optimal’ : eta = 1.0 / (alpha*(t+t0))
◦
‘invscaling’ : eta = eta0 / pow(t,power_t)
◦
‘adaptive’ : eta = eta0
•
eta0 : 초기 학습속도(default=0)
•
power_t : 역 스케일링 학습률(default=0.5)
•
early_stopping : 유효성 검사 점수가 향상되지 않을 때 조기 중지여부(default=False)
•
validation_fraction : 조기 중지를 위한 검증 세트로 설정한 교육 데이터의 비율(default=0.1)
•
n_iter_no_change : 조기 중지 전 반복횟수(default=5)
•
class_weight : 클래스와 관련된 가중치(default=None)
•
warm_start : 초기화 유무(default=False)
•
average : True 로 설정하면 모든 업데이트에 대한 평균 SGD 가중치를 계산하고 결과를 coef_속성에 저장(default=False)