stochasticLinearRegression
stochasticLinearRegression
도입된 버전: v20.1
이 함수는 확률적 선형 회귀를 구현합니다. 다음과 같은 사용자 정의 매개변수를 지원합니다:
- 학습률
- L2 정규화 계수
- 미니배치 크기
또한 가중치를 업데이트하기 위한 몇 가지 방법을 제공합니다:
- Adam (기본값)
- 단순 SGD
- Momentum
- Nesterov
사용 방법
이 함수는 두 단계로 사용됩니다: 먼저 모델을 피팅(fitting)한 뒤 새로운 데이터에 대한 예측에 사용합니다.
- 피팅
모델을 피팅하기 위해 다음과 같은 쿼리를 사용할 수 있습니다:
여기서는 train_data 테이블에 데이터도 삽입해야 합니다.
파라미터의 개수는 고정되어 있지 않으며, linearRegressionState에 전달되는 인자의 개수에만 달려 있습니다.
모든 인자는 숫자형 값이어야 합니다.
예측 대상 값(학습을 통해 예측하려는 값)을 담은 컬럼은 첫 번째 인자로 삽입된다는 점에 유의하십시오.
- 예측
상태를 테이블에 저장한 후에는 이를 예측에 여러 번 사용할 수 있으며, 다른 상태와 병합하여 새로운, 더 나은 모델을 생성할 수도 있습니다.
이 쿼리는 예측값 컬럼을 반환합니다.
evalMLMethod의 첫 번째 인자는 AggregateFunctionState 객체이며, 그 다음 인자들은 피처 컬럼입니다.
test_data는 train_data와 유사한 테이블이지만, 타깃 값을 포함하지 않을 수도 있습니다.
참고
- 두 개의 모델을 병합하기 위해 사용자는 다음과 같은 쿼리를 작성할 수 있습니다:
여기서 your_models 테이블에는 두 모델이 모두 포함되어 있습니다.
이 쿼리는 새로운 AggregateFunctionState 객체를 반환합니다.
-State콤비네이터를 사용하지 않는 경우, 생성된 모델을 저장하지 않고도 필요에 따라 해당 모델의 가중치를 가져올 수 있습니다.
이와 같은 쿼리를 실행하면 모델을 피팅하고 그 가중치를 반환합니다. 앞의 값들은 모델의 매개변수에 해당하는 가중치이며, 마지막 값은 바이어스입니다. 따라서 위 예시에서 쿼리는 3개의 값을 가진 컬럼을 반환합니다.
구문
인수
learning_rate— 경사 하강법 단계를 수행할 때 사용되는 단계 길이 계수입니다. 학습률이 너무 크면 모델의 가중치가 무한대로 발산할 수 있습니다. 기본값은0.00001입니다.Float64l2_regularization_coef— 과적합을 방지하는 데 도움이 될 수 있는 L2 정규화 계수입니다. 기본값은0.1입니다.Float64mini_batch_size— 한 번의 경사 하강 단계를 수행하기 위해, 기울기를 계산하고 합산할 요소의 개수를 설정합니다. 완전한 확률적(스토캐스틱) 하강법은 하나의 요소만 사용하지만, 약 10개 정도의 작은 배치를 사용하면 경사 단계가 더 안정적이 됩니다. 기본값은15입니다.UInt64method— 가중치 갱신 방법입니다:Adam(기본값),SGD,Momentum,Nesterov.Momentum과Nesterov는 계산량과 메모리가 조금 더 필요하지만, 수렴 속도와 확률적 경사 하강법의 안정성 측면에서 유용합니다.const Stringtarget— 예측하도록 학습할 타깃 값(종속 변수)입니다. 숫자형이어야 합니다.Float*x1, x2, ...— 특성 값(독립 변수)입니다. 모두 숫자형이어야 합니다.Float*
반환 값
학습된 선형 회귀 모델의 가중치를 반환합니다. 앞의 값들은 모델의 파라미터에 해당하고, 마지막 값은 편향(bias)입니다. 예측에는 evalMLMethod를 사용합니다. Array(Float64)
예시
모델 학습
예측하기
모델 가중치 가져오기
참고