회귀 알고리즘 regression-algorithms

이 문서에서는 고급 통계 모델에서 다양한 회귀 알고리즘의 구성, 주요 매개 변수 및 실제 사용에 초점을 맞춰 개요를 제공합니다. 회귀 알고리즘은 종속 변수와 독립 변수 간의 관계를 모델링하는 데 사용되며, 관측된 데이터를 기반으로 지속적인 결과를 예측한다. 각 섹션에는 선형, 랜덤 포레스트 및 생존 회귀와 같은 작업에 이러한 알고리즘을 구현하고 최적화하는 데 도움이 되는 매개 변수 설명 및 예제 코드가 포함되어 있습니다.

Decision Tree 회귀 decision-tree-regression

Decision Tree 학습은 통계, 데이터 마이닝 및 기계 학습에 사용되는 지도 학습 방법입니다. 이 접근법에서는 관측치 집합에 대한 결론을 도출하기 위한 예측 모형으로서 분류 또는 회귀 결정 트리가 사용된다.

매개 변수

아래 표에는 의사 결정 트리 모델의 성능을 구성하고 최적화하는 주요 매개 변수가 나와 있습니다.

매개변수
설명
기본 값
가능한 값
MAX_BINS
이 매개변수는 연속 피쳐를 분할하고 각 노드에서 분할을 결정하는 데 사용되는 최대 빈 수를 지정합니다. 저장소가 더 많으면 세부기간 및 세부 정보가 더 세밀하게 표시됩니다.
32
모든 범주 기능에서 최소 2개 이상 및 범주 수 이상이어야 합니다.
CACHE_NODE_IDS
이 매개 변수는 각 인스턴스에 대해 노드 ID를 캐시할지 여부를 결정합니다. false이면 알고리즘이 트리를 실행자에게 전달하여 인스턴스와 노드를 일치시킵니다. true이면 알고리즘에서 각 인스턴스에 대한 노드 ID를 캐시하여 더 깊은 트리의 훈련 속도를 높일 수 있습니다. 사용자는 CHECKPOINT_INTERVAL을(를) 설정하여 캐시를 검사해야 하는 빈도를 구성하거나 캐시를 사용하지 않도록 설정할 수 있습니다.
false
true 또는 false
CHECKPOINT_INTERVAL
이 매개 변수는 캐시된 노드 ID를 체크포인팅해야 하는 빈도를 지정합니다. 예를 들어, 이 값을 10(으)로 설정하면 캐시가 10번 반복될 때마다 검사점을 받습니다. CACHE_NODE_IDS이(가) true(으)로 설정되어 있고 검사점 디렉터리가 org.apache.spark.SparkContext에 구성된 경우에만 해당됩니다.
10
(>=1)
IMPURITY
이 매개 변수는 정보 이득을 계산하는 데 사용되는 기준을 지정합니다. 지원되는 값은 entropygini입니다.
gini
entropy, gini
MAX_DEPTH
이 매개 변수는 트리의 최대 깊이를 지정합니다. 예를 들어, 0의 깊이는 1개의 리프 노드를 의미하며, 1의 깊이는 1개의 내부 노드와 2개의 리프 노드를 의미합니다. 깊이는 [0, 30] 범위 내에 있어야 합니다.
5
[0, 30]
MIN_INFO_GAIN
이 매개변수는 분할이 트리 노드에서 유효한 것으로 간주되는 데 필요한 최소 정보 이득을 설정합니다.
0.0
(>=0.0)
MIN_WEIGHT_FRACTION_PER_NODE
이 매개 변수는 분할 후 각 하위 노드가 가져야 하는 가중 샘플 수의 최소 분율을 지정합니다. 하위 노드의 분수가 이 값보다 작은 경우 분할이 무시됩니다.
0.0
[0.0, 0.5]
MIN_INSTANCES_PER_NODE
이 매개 변수는 분할 후 각 하위 노드가 가져야 하는 최소 인스턴스 수를 설정합니다. 분할로 인해 이 값보다 적은 인스턴스가 발생하는 경우 분할이 부적합한 것으로 삭제됩니다.
1
(>=1)
MAX_MEMORY_IN_MB
이 매개 변수는 히스토그램 집계에 할당된 최대 메모리(MB)를 지정합니다. 메모리가 너무 작으면 반복당 하나의 노드만 분할되고 해당 집계는 이 크기를 초과할 수 있습니다.
256
모든 양의 정수 값
PREDICTION_COL
이 매개 변수는 예측을 저장하는 데 사용되는 열의 이름을 지정합니다.
"prediction"
모든 문자열
SEED
이 매개 변수는 모델에 사용되는 임의 초기값을 설정합니다.
None
모든 64비트 숫자
WEIGHT_COL
이 매개 변수는 가중치 열의 이름을 지정합니다. 이 매개 변수가 설정되지 않았거나 비어 있으면 모든 인스턴스 가중치는 1.0(으)로 처리됩니다.
설정되지 않음
모든 문자열

CREATE MODEL modelname OPTIONS(
  type = 'decision_tree_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Factorization Machines 회귀 factorization-machines-regression

Factorization Machines은(는) 일반 그라데이션 디센션 및 AdamW 솔버를 지원하는 회귀 학습 알고리즘입니다. 알고리즘은 S. Rendle(2010), "Factorization Machines"의 논문을 기반으로 합니다.

매개 변수

아래 표에는 Factorization Machines 회귀의 성능을 구성하고 최적화하기 위한 주요 매개 변수가 나와 있습니다.

매개변수
설명
기본 값
가능한 값
TOL
이 매개 변수는 알고리즘에 대한 수렴 허용 범위를 지정합니다. 값이 높을수록 수렴은 빨라지지만 정밀도는 낮아질 수 있습니다.
1E-6
(>= 0)
FACTOR_SIZE
이 매개 변수는 요소의 차원성을 정의합니다. 값이 높을수록 모델 복잡성이 증가합니다.
8
(>= 0)
FIT_INTERCEPT
이 매개변수는 모델에 절편 항이 포함되어야 하는지 여부를 나타냅니다.
true
true, false
FIT_LINEAR
이 매개 변수는 모델에 선형 항(1방향 항이라고도 함)을 포함할지 여부를 지정합니다.
true
true, false
INIT_STD
이 파라미터는 모형에 사용된 초기 계수들의 표준편차를 정의한다.
0.01
(>= 0)
MAX_ITER
이 매개 변수는 알고리즘이 실행될 최대 반복 횟수를 지정합니다.
10
(>= 0)
MINI_BATCH_FRACTION
이 매개 변수는 각 배치에 사용되는 데이터 부분을 결정하는 미니 배치 분율을 설정합니다. (0, 1] 범위에 있어야 합니다.
1.0
(0, 1]
REG_PARAM
이 매개변수는 오버피팅을 방지하기 위해 규칙화 매개변수를 설정합니다.
0.0
(>= 0)
SEED
이 매개 변수는 모델 초기화에 사용되는 임의 시드를 지정합니다.
None
모든 64비트 숫자
SOLVER
이 매개 변수는 최적화에 사용되는 해결자 알고리즘을 지정합니다.
"adamW"
gd(그라데이션 디센트), adamW
STEP_SIZE
이 매개 변수는 첫 번째 최적화 단계에 대한 초기 단계 크기(또는 학습 속도)를 지정합니다.
1.0
모든 양수 값
PREDICTION_COL
이 매개 변수는 예측이 저장되는 열의 이름을 지정합니다.
"prediction"
모든 문자열

CREATE MODEL modelname OPTIONS(
  type = 'factorization_machines_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Generalized Linear 회귀 generalized-linear-regression

결과가 보통(가우시안) 분포를 따른다고 가정하는 선형 회귀와 달리, Generalized Linear 모델(GLM)을 사용하면 데이터의 특성에 따라 결과가 Poisson 또는 이항 같은 다양한 유형의 분포를 따르도록 할 수 있습니다.

매개 변수

아래 표에는 Generalized Linear 회귀의 성능을 구성하고 최적화하기 위한 주요 매개 변수가 나와 있습니다.

매개변수
설명
기본 값
가능한 값
MAX_ITER
최대 반복 횟수를 설정합니다(irls 해 찾기를 사용할 때 적용 가능).
25
(>= 0)
REG_PARAM
정규화 매개 변수.
설정되지 않음
(>= 0)
TOL
수렴 허용 오차.
1E-6
(>= 0)
AGGREGATION_DEPTH
treeAggregate에 대해 제안된 깊이입니다.
2
(>= 2)
FAMILY
모델에 사용되는 오류 분포를 설명하는 패밀리 매개변수입니다. 지원되는 옵션은 gaussian, binomial, poisson, gammatweedie입니다.
"가우스"
gaussian, binomial, poisson, gamma, tweedie
FIT_INTERCEPT
절편 용어에 맞는지 여부.
true
true, false
LINK
선형 예측 변수와 분포 함수의 평균 간의 관계를 정의하는 링크 함수. 지원되는 옵션은 identity, log, inverse, logit, probit, cloglogsqrt입니다.
설정되지 않음
identity, log, inverse, logit, probit, cloglog, sqrt
LINK_POWER
이 매개 변수는 전원 링크 함수의 인덱스를 지정합니다. 매개 변수는 Tweedie 패밀리에만 적용됩니다. 설정하지 않으면 기본값이 1 - variancePower(R statmod 패키지에 맞게 조정됨)로 설정됩니다. 0, 1, -1 및 0.5의 특정 링크 파워는 각각 Log, Identity, Inverse 및 Sqrt 링크에 해당합니다.
1
모든 숫자 값
SOLVER
최적화에 사용되는 해 찾기 알고리즘. 지원되는 옵션: irls(반복적으로 재가중된 최소 제곱법).
"irls"
irls
VARIANCE_POWER
이 매개 변수는 Tweedie 분포의 분산 함수에서 파워를 지정하며 분산과 평균 간의 관계를 정의합니다. 지원되는 값은 0과 [1, inf)입니다. 분산력 0, 1, 2는 각각 가우시안, 포아송, 감마 패밀리에 해당한다.
0.0
0, [1, inf)
LINK_PREDICTION_COL
링크 예측(선형 예측 변수) 열 이름입니다.
설정되지 않음
모든 문자열
OFFSET_COL
오프셋 열 이름입니다. 설정하지 않으면 모든 인스턴스 오프셋이 0.0으로 처리됩니다. 오프셋 피쳐의 상수 계수는 1.0입니다.
설정되지 않음
모든 문자열
WEIGHT_COL
가중치 열 이름. 설정되지 않았거나 비어 있으면 모든 인스턴스 가중치는 1.0(으)로 처리됩니다. 이항 패밀리에서 가중치는 시도 횟수에 해당하며 정수가 아닌 가중치는 AIC 계산에서 반올림됩니다.
설정되지 않음
모든 문자열

CREATE MODEL modelname OPTIONS(
  type = 'generalized_linear_reg'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Gradient Boosted Tree 회귀 gradient-boosted-tree-regression

그래디언트 부스트 트리(GBT)는 여러 의사 결정 트리의 예측을 결합하여 예측 정확도와 모델 성능을 향상시키는 분류 및 회귀 분석에 효과적인 방법입니다.

매개 변수

아래 표에는 Gradient Boosted Tree 회귀의 성능을 구성하고 최적화하기 위한 주요 매개 변수가 나와 있습니다.

매개변수
설명
기본 값
가능한 값
MAX_BINS
연속 피쳐를 개별 간격으로 분할하는 데 사용되는 최대 빈 수로, 각 결정 트리 노드에서 피쳐가 분할되는 방식을 결정하는 데 도움이 됩니다. 저장소가 많을수록 세부기간이 높아집니다.
32
은(는) 적어도 2개이어야 하며 모든 카테고리 기능에 있는 카테고리 수보다 크거나 같아야 합니다.
CACHE_NODE_IDS
false이면 알고리즘이 트리를 실행자에게 전달하여 인스턴스와 노드를 일치시킵니다. true이면 알고리즘에서 각 인스턴스에 대한 노드 ID를 캐시합니다. 캐싱은 더 깊은 트리의 훈련 속도를 높일 수 있습니다.
false
true, false
CHECKPOINT_INTERVAL
캐시된 노드 ID를 체크포인팅하는 빈도를 지정합니다. 예를 들어, 10은(는) 캐시가 10번 반복될 때마다 검사점을 지정함을 의미합니다.
10
(>= 1)
MAX_DEPTH
트리의 최대 깊이입니다(음수가 아님). 예를 들어, 깊이 0은(는) 리프 노드 1개를 의미하며, 깊이 1은(는) 리프 노드 2개를 가지는 내부 노드 1개를 의미합니다.
5
(>= 0)
MIN_INFO_GAIN
분할이 트리 노드에서 고려되는 데 필요한 최소 정보 이득입니다.
0.0
(>= 0.0)
MIN_WEIGHT_FRACTION_PER_NODE
분할 후 각 소아가 보유해야 하는 가중치가 적용된 표본 수의 최소 비율입니다. 분할로 인해 하위 항목 중 하나의 총 중량 비율이 이 값보다 작으면 해당 값이 무시됩니다.
0.0
(>= 0.0, <= 0.5)
MIN_INSTANCES_PER_NODE
분할 후 각 하위 항목이 가져야 하는 최소 인스턴스 수입니다. 분할로 인해 이 값보다 적은 인스턴스가 생성되면 분할이 무시됩니다.
1
(>= 1)
MAX_MEMORY_IN_MB
히스토그램 집계에 할당된 최대 메모리(MB)입니다. 이 값이 너무 작으면 반복당 하나의 노드만 분할되고 해당 집계는 이 크기를 초과할 수 있습니다.
256
모든 양의 정수 값
PREDICTION_COL
예측 출력의 열 이름입니다.
"prediction"
모든 문자열
VALIDATION_INDICATOR_COL
각 행이 교육 또는 유효성 검사에 사용되는지 여부를 나타내는 열 이름입니다. false은(는) 교육용, true은(는) 유효성 검사용
설정되지 않음
모든 문자열
LEAF_COL
리프 인덱스의 열 이름입니다. 사전 순서에서 생성된 각 트리의 각 인스턴스에 대해 예측된 리프 인덱스입니다.
""
모든 문자열
FEATURE_SUBSET_STRATEGY
이 매개변수는 각 트리 노드에서 분할에 고려할 피쳐 수를 지정합니다.
"auto"
auto, all, onethird, sqrt, log2 또는 0과 1.0 사이의 소수
SEED
무작위 시드.
설정되지 않음
모든 64비트 숫자
WEIGHT_COL
열 이름(예: 가중치)입니다. 설정되지 않았거나 비어 있으면 모든 인스턴스 가중치는 1.0(으)로 처리됩니다.
설정되지 않음
모든 문자열
LOSS_TYPE
이 매개 변수는 Gradient Boosted Tree 모델이 최소화하는 손실 함수를 지정합니다.
"squared"
squared(L2) 및 absolute(L1). 참고: 값은 대소문자를 구분하지 않습니다.
STEP_SIZE
각 추정기의 기여도를 축소하는 데 사용되는 (0, 1] 범위의 단계 크기(학습 속도라고도 함)입니다.
0.1
(0, 1]
MAX_ITER
알고리즘에 대한 최대 반복 횟수입니다.
20
(>= 0)
SUBSAMPLING_RATE
(0, 1] 범위에서 각 결정 트리를 학습하는 데 사용되는 교육 데이터의 비율입니다.
1.0
(0, 1]

CREATE MODEL modelname OPTIONS(
  type = 'gradient_boosted_tree_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Isotonic 회귀 isotonic-regression

Isotonic Regression은(는) 데이터의 상대적 불일치 순서를 유지하면서 거리를 반복적으로 조정하는 데 사용되는 알고리즘입니다.

매개 변수

아래 표에서는 Isotonic Regression의 성능을 구성하고 최적화하기 위한 주요 매개 변수에 대해 설명합니다.

매개변수
설명
기본 값
가능한 값
ISOTONIC
출력 시퀀스가 true일 때 등장성(증가)이어야 하는지, false일 때 등장성(감소)이어야 하는지 여부를 지정합니다.
true
true, false
WEIGHT_COL
열 이름(예: 가중치)입니다. 설정되지 않았거나 비어 있으면 모든 인스턴스 가중치는 1.0(으)로 처리됩니다.
설정되지 않음
모든 문자열
PREDICTION_COL
예측 출력의 열 이름입니다.
"prediction"
모든 문자열
FEATURE_INDEX
featuresCol이(가) 벡터 열인 경우 적용할 수 있는 기능의 인덱스입니다. 설정하지 않으면 기본값은 0입니다. 그렇지 않으면 효과가 없습니다.
0
음이 아닌 정수

CREATE MODEL modelname OPTIONS(
  type = 'isotonic_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Linear 회귀 linear-regression

Linear Regression은(는) 종속 변수와 독립 기능 간의 관계를 모델링하기 위해 데이터에 선형 방정식에 맞는 감독된 기계 학습 알고리즘입니다.

매개 변수

아래 표에서는 Linear Regression의 성능을 구성하고 최적화하기 위한 주요 매개 변수에 대해 설명합니다.

매개변수
설명
기본 값
가능한 값
MAX_ITER
최대 반복 횟수입니다.
100
(>= 0)
REGPARAM
모델의 복잡성을 제어하는 데 사용되는 정규화 매개변수입니다.
0.0
(>= 0)
ELASTICNETPARAM
L1(Lasso)과 L2(Ridge) 페널티 사이의 균형을 제어하는 ElasticNet 혼합 매개 변수입니다. 값이 0이면 L2 페널티가 적용되고, 값이 1이면 L1 페널티가 적용됩니다.
0.0
(>= 0, <= 1)

CREATE MODEL modelname OPTIONS(
  type = 'linear_reg'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Random Forest Regression random-forest-regression

Random Forest Regression은(는) 훈련 중에 여러 결정 트리를 작성하고 회귀 작업에 대한 해당 트리의 평균 예측을 반환하는 앙상블 알고리즘으로, 과적합을 방지하는 데 도움이 됩니다.

매개 변수

아래 표에서는 Random Forest Regression의 성능을 구성하고 최적화하기 위한 주요 매개 변수에 대해 설명합니다.

매개변수
설명
기본 값
가능한 값
MAX_BINS
연속 피쳐를 분할하고 각 노드에서 피쳐가 분할되는 방식을 결정하는 데 사용되는 최대 빈 수입니다. 저장소가 많을수록 세부기간이 높아집니다.
32
모든 카테고리적 기능에 있는 카테고리 수와 같거나 2개 이상이어야 합니다.
CACHE_NODE_IDS
false이면 알고리즘이 트리를 실행자에게 전달하여 인스턴스와 노드를 일치시킵니다. true이면 알고리즘이 각 인스턴스에 대한 노드 ID를 캐시하여 더 깊은 트리의 훈련 속도를 높입니다.
false
true, false
CHECKPOINT_INTERVAL
캐시된 노드 ID를 체크포인팅하는 빈도를 지정합니다. 예를 들어, 10은(는) 캐시가 10번 반복될 때마다 검사점을 지정함을 의미합니다.
10
(>= 1)
IMPURITY
정보 이익 계산에 사용되는 기준(대소문자 구분 안 함).
"entropy"
entropy, gini
MAX_DEPTH
트리의 최대 깊이입니다(음수가 아님). 예를 들어, 깊이 0은(는) 1개의 리프 노드, 깊이 1은(는) 1개의 내부 노드 및 2개의 리프 노드를 의미합니다.
5
음이 아닌 정수
MIN_INFO_GAIN
분할이 트리 노드에서 고려되는 데 필요한 최소 정보 이득입니다.
0.0
(>= 0.0)
MIN_WEIGHT_FRACTION_PER_NODE
분할 후 각 소아가 보유해야 하는 가중치가 적용된 표본 수의 최소 비율입니다. 분할로 인해 하위 항목 중 하나에 있는 총 중량의 일부가 이 값보다 작아지면 무시됩니다.
0.0
(>= 0.0, <= 0.5)
MIN_INSTANCES_PER_NODE
분할 후 각 하위 항목이 가져야 하는 최소 인스턴스 수입니다. 분할로 인해 이 값보다 적은 인스턴스가 생성되면 분할이 무시됩니다.
1
(>= 1)
MAX_MEMORY_IN_MB
히스토그램 집계에 할당된 최대 메모리(MB)입니다. 이 값이 너무 작으면 반복당 하나의 노드만 분할되고 해당 집계는 이 크기를 초과할 수 있습니다.
256
(>= 1)
BOOTSTRAP
수목을 조성할 때 부트스트랩 표본을 사용할지 여부.
true, false
NUM_TREES
교육할 나무 수(최소 1개). 1이면 부트스트래핑이 사용되지 않습니다. 1보다 큰 경우 부트스트래핑이 적용됩니다.
20
(>= 1)
SUBSAMPLING_RATE
(0, 1] 범위에서 각 결정 트리를 학습하는 데 사용되는 교육 데이터의 비율입니다.
1.0
(>= 0.0, <= 1)
LEAF_COL
사전 순서에서 생성된 각 트리의 각 인스턴스에 대해 예측된 리프 인덱스인 리프 인덱스에 대한 열 이름입니다.
""
모든 문자열
PREDICTION_COL
예측 출력의 열 이름입니다.
"prediction"
모든 문자열
SEED
무작위 시드.
설정되지 않음
모든 64비트 숫자
WEIGHT_COL
열 이름(예: 가중치)입니다. 설정되지 않았거나 비어 있으면 모든 인스턴스 가중치는 1.0(으)로 처리됩니다.
설정되지 않음
모든 유효한 열 이름 또는 비워 둡니다.

CREATE MODEL modelname OPTIONS(
  type = 'random_forest_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Survival Regression survival-regression

Survival Regression은(는) Weibull distribution을(를) 기반으로 하는 Accelerated Failure Time (AFT) 모델이라고 하는 매개 변수 생존 회귀 모델에 맞는 데 사용됩니다. 향상된 성능을 위해 인스턴스를 블록으로 스택할 수 있습니다.

매개 변수

아래 표에서는 Survival Regression의 성능을 구성하고 최적화하기 위한 주요 매개 변수에 대해 설명합니다.

매개변수
설명
기본 값
가능한 값
MAX_ITER
알고리즘이 실행해야 하는 최대 반복 횟수입니다.
100
(>= 0)
TOL
수렴 허용 오차.
1E-6
(>= 0)
AGGREGATION_DEPTH
treeAggregate에 대해 제안된 깊이입니다. 기능 차원 또는 파티션 수가 큰 경우 이 매개 변수를 더 큰 값으로 설정할 수 있습니다.
2
(>= 2)
FIT_INTERCEPT
절편 용어에 맞는지 여부.
true, false
PREDICTION_COL
예측 출력의 열 이름입니다.
"prediction"
모든 문자열
CENSOR_COL
검열을 위한 열 이름입니다. 값 1은(는) 이벤트가 발생했음을 나타내며, 0은(는) 이벤트가 차단되었음을 나타냅니다.
"검열"
0, 1
MAX_BLOCK_SIZE_IN_MB
입력 데이터를 블록으로 스택하기 위한 최대 메모리(MB)입니다. 파티션의 나머지 데이터 크기가 더 작으면 이 값이 적절하게 조정됩니다. 값이 0이면 자동 조정이 가능합니다.
0.0
(>= 0)

CREATE MODEL modelname OPTIONS(
  type = 'survival_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

다음 단계

이 문서를 읽고 나면 이제 다양한 회귀 알고리즘을 구성하고 사용하는 방법을 알 수 있습니다. 다음으로 분류클러스터링에 대한 문서를 참조하여 다른 유형의 고급 통계 모델에 대해 알아보십시오.

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb