메인 콘텐츠로 건너뛰기

stochasticLogisticRegression

도입 버전: v20.1.0 이 함수는 확률적 로지스틱 회귀를 구현합니다. 이 함수는 이진 분류 문제에 사용할 수 있으며, stochasticLinearRegression과 동일한 사용자 지정 매개변수를 지원하고 같은 방식으로 동작합니다. 사용법 이 함수는 다음 두 단계로 사용합니다:
  1. 피팅
피팅에는 다음과 같은 쿼리를 사용할 수 있습니다:
CREATE TABLE IF NOT EXISTS train_data
(
    param1 Float64,
    param2 Float64,
    target Float64
) ENGINE = Memory;

CREATE TABLE your_model ENGINE = Memory AS SELECT
stochasticLogisticRegression(0.1, 0.0, 5, 'SGD')(target, x1, x2)
AS state FROM train_data;
여기에서도 train_data 테이블에 데이터를 삽입해야 합니다. 매개변수의 개수는 고정되어 있지 않으며, logisticRegressionState에 전달하는 인수의 개수에 따라 달라집니다. 이들은 모두 수치 값이어야 합니다. 예측하도록 학습하려는 대상 값이 있는 컬럼은 첫 번째 인수로 삽입된다는 점에 유의하십시오. 예측된 레이블은 [-1, 1] 범위에 있어야 합니다.
  1. 예측
저장된 상태를 사용해 객체의 레이블이 1일 확률을 예측할 수 있습니다.
WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, param1, param2) FROM test_data
이 쿼리는 확률 컬럼을 반환합니다. evalMLMethod의 첫 번째 인수는 AggregateFunctionState 객체이고, 그다음 인수들은 피처 컬럼입니다. 확률 임곗값도 설정할 수 있으며, 이를 통해 요소를 서로 다른 레이블에 할당할 수 있습니다.
SELECT result < 1.1 AND result > 0.5 FROM
(WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, param1, param2) AS result FROM test_data)
그러면 결과는 레이블입니다. test_datatrain_data와 같은 테이블(table)이지만 대상 값을 포함하지 않을 수 있습니다. 구문
stochasticLogisticRegression([learning_rate, l2_regularization_coef, mini_batch_size, method])(target, x1, x2, ...)
인수
  • learning_rate — 경사 하강 단계 수행 시 스텝 크기에 곱해지는 계수입니다. 학습률이 너무 크면 모델의 가중치가 무한대로 발산할 수 있습니다. 기본값은 0.00001입니다. Float64
  • l2_regularization_coef — 과적합을 방지하는 데 도움이 될 수 있는 L2 정규화 계수입니다. 기본값은 0.1입니다. Float64
  • mini_batch_size — 경사 하강의 한 단계를 수행하기 위해 그래디언트를 계산하고 합산할 요소 수를 설정합니다. 순수 확률적 하강법은 요소 1개를 사용하지만, 작은 배치(약 10개 요소)를 사용하면 그래디언트 단계가 더 안정적입니다. 기본값은 15입니다. UInt64
  • method — 가중치를 업데이트하는 메서드입니다: Adam(기본값), SGD, Momentum, Nesterov. MomentumNesterov는 계산량과 메모리를 조금 더 사용하지만, 수렴 속도와 확률적 경사 하강 메서드의 안정성 측면에서 유용합니다. String
  • target — 대상 이진 분류 레이블입니다. 범위는 [-1, 1]이어야 합니다. Float
  • x1, x2, ... — 특성 값(독립 변수)입니다. 모두 숫자여야 합니다. Float
반환 값 학습된 로지스틱 회귀 모델의 가중치를 반환합니다. 예측에는 evalMLMethod를 사용하며, 이 함수는 데이터가 레이블 1을 가질 확률을 반환합니다. Array(Float64) 예시 모델 학습
Query
CREATE TABLE your_model
ENGINE = MergeTree
ORDER BY tuple()
AS SELECT
stochasticLogisticRegressionState(1.0, 1.0, 10, 'SGD')(target, x1, x2)
AS state FROM train_data
Response
훈련된 모델 상태를 테이블에 저장합니다
예측하기
Query
WITH (SELECT state FROM your_model) AS model
SELECT
evalMLMethod(model, x1, x2)
FROM test_data
Response
테스트 데이터에 대한 확률 값을 반환합니다
임계값 기반 분류
Query
SELECT result < 1.1 AND result > 0.5
FROM (
WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, x1, x2) AS result FROM test_data)
Response
확률 임계값(threshold)을 사용하여 이진 분류 레이블을 반환합니다
관련 항목
마지막 수정일 2026년 6월 10일