빠른 포리스트 분위수 회귀
중요
Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.
2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.
- ML Studio(클래식)에서 Azure Machine Learning으로 기계 학습 프로젝트 이동에 대한 정보를 참조하세요.
- Azure Machine Learning에 대한 자세한 정보.
ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.
변위치 회귀 모델 만들기
범주: Machine Learning/모델 초기화/회귀
모듈 개요
이 문서에서는 Machine Learning Studio(클래식)에서 빠른 포리스트 분위수 회귀 모듈을 사용하여 지정된 수의 분위수에 대한 값을 예측할 수 있는 회귀 모델을 만드는 방법을 설명합니다.
단일 평균 예측 값을 구하는 대신 예측 값 분포에 대해 좀 더 자세하게 파악하려는 경우 변위치 회귀가 유용합니다. 이 방법은 다음과 같은 다양한 방식으로 적용할 수 있습니다.
가격 예측
학생 성적 예측 또는 자녀 발달 상태 평가를 위한 성장 차트 적용
변수 간에 약한 관계만 있는 경우 예측 관계 검색
이 회귀 알고리즘은 감독된 학습 방법입니다. 즉, 레이블 열을 포함하는 태그 지정된 데이터 세트가 필요합니다. 회귀 알고리즘이므로 레이블 열에는 숫자 값만 포함되어야 합니다.
분위수 회귀에 대한 자세한 정보
여러 다양한 유형의 회귀가 있습니다. 가장 기본적인 관점에서 회귀는 숫자 벡터로 표시되는 대상에 모델을 맞추는 것입니다. 그러나 통계학자들은 점점 더 발전된 회귀 방법을 개발해 오고 있습니다.
‘분위수’의 가장 간단한 정의는 데이터 세트를 같은 크기의 그룹으로 나누는 값이므로 분위수 값은 그룹 간 경계를 표시합니다. 통계적으로 분위수는 임의 변수의 CDF(누적 분포 함수) 역함수에서 일정한 간격으로 가져온 값입니다.
선형 회귀 모델에서는 단일 예측 값인 ‘평균’을 사용하여 숫자 변수 값을 예측하지만 대상 변수의 전체 분포나 범위를 예측해야 하는 경우도 있습니다. Bayesian 회귀 및 분위수 회귀와 같은 기술은 이 용도로 개발되었습니다.
분위수 회귀는 예측 값의 분포를 파악하는 데 도움이 됩니다. 이 모듈에서 사용된 것과 같은 트리 기반 변위치 회귀 모델의 경우 파라메트릭이 아닌 분포를 예측하는 데 사용할 수 있다는 추가적인 이점도 제공합니다.
추가 구현 세부 정보 및 리소스는 기술 참고 사항 섹션을 참조하세요.
Fast_Forest 분위수 회귀를 구성하는 방법
이 모듈을 사용하여 회귀 모델의 속성을 구성한 다음 학습 모듈 중 하나를 사용하여 학습합니다.
구성 단계는 고정된 매개 변수 집합을 제공하는지 또는 매개 변수 스윕을 설정하는지에 따라 크게 다릅니다.
고정 매개 변수를 사용하여 분위수 회귀 모델 만들기
모델을 구성하는 방법을 알고 있다고 가정하면 특정 값 집합을 인수로 제공할 수 있습니다. 모델을 학습하는 경우에는 모델 학습을 사용합니다.
Studio(클래식)에서 실험에 빠른 포리스트 분위수 회귀 모듈을 추가합니다.
트레이너 모드 만들기 옵션을 단일 매개 변수로 설정합니다.
트리 수의 경우 앙상블에 만들 수 있는 최대 트리 수를 입력합니다. 만드는 트리가 많을수록 정확도는 높아지지만 학습 시간이 더 오래 걸립니다.
리프 수의 경우 모든 트리에서 만들 수 있는 최대 리프 수 또는 터미널 노드를 입력합니다.
리프를 형성하는 데 필요한 최소 학습 인스턴스 수의 경우 트리에 터미널 노드(리프)를 만드는 데 필요한 최소 예제 수를 지정합니다.
이 값을 늘려 새 규칙을 작성하기 위한 임계값을 늘립니다. 예를 들어, 기본값이 1이면 단일 사례만으로도 새 규칙을 하나 작성할 수 있습니다. 값을 5로 늘리면 학습 데이터에 동일한 조건을 충족하는 5개 이상의 사례가 포함되어야 합니다.
Bagging 분수의 경우 각 분위수 그룹을 빌드할 때 사용할 샘플의 비율을 나타내는 0에서 1 사이의 숫자를 지정합니다. 샘플은 대체를 사용하여 임의로 선택됩니다.
기능 분수의 경우 특정 트리를 빌드할 때 사용할 총 기능의 비율을 나타내는 0에서 1 사이의 숫자를 입력합니다. 기능은 항상 임의로 선택됩니다.
분할 분수의 경우 트리의 각 분할에 사용할 기능의 비율을 나타내는 0에서 1 사이의 숫자를 입력합니다. 사용되는 기능은 항상 임의로 선택됩니다.
분위수 샘플 수의 경우 분위수를 추정할 때 평가할 사례 수를 입력합니다.
Quantiles를 예측하려면 모델을 학습시키고 예측을 만들 수 있는 쉼표로 구분된 분위수 목록을 입력합니다.
예를 들어 분위수를 예측하는 모델을 빌드하려면
0.25, 0.5, 0.75
를 입력합니다.필요에 따라 난수 시드의 값을 입력하여 모델에서 사용되는 난수 생성기를 시드합니다. 기본값은 0으로, 난수 초기값이 선택됩니다.
동일한 데이터에서 연속 실행하여 결과를 재현해야 하는 경우 값을 지정해야 합니다.
알 수 없는 범주 수준 허용 옵션을 선택하여 알 수 없는 값에 대한 그룹을 만듭니다.
선택을 취소하면 모델에서 학습 데이터에 포함된 값만 수락할 수 있습니다.
이 옵션을 선택하는 경우 모델은 알려진 값에 대해 정확도가 낮을 수 있지만 새(알 수 없는) 값에 대해 더 나은 예측을 제공할 수 있습니다.
학습 데이터 세트를 커넥트 단일 레이블 열을 선택하고 모델 학습을 연결합니다.
실험을 실행합니다.
매개 변수 스윕을 사용하여 분위수 회귀 모델 만들기
모델에 대한 최적 매개 변수를 잘 모르는 경우 매개 변수 스윕을 구성하고 값 범위를 인수로 제공할 수 있습니다. 모델을 학습할 때 모델 하이퍼 매개 변수 조정 모듈을 사용합니다.
Studio(클래식)에서 실험에 빠른 포리스트 분위수 회귀 모듈을 추가합니다.
트레이너 모드 만들기 옵션을 매개 변수 범위로 설정합니다.
최상의 매개 변수를 잘 모르는 경우 매개 변수 스윕을 사용하는 것이 좋습니다. 여러 값을 지정하고 모델 하이퍼 매개 변수 조정 모듈을 사용하여 모델을 학습하면 데이터에 대한 최적의 매개 변수 집합을 찾을 수 있습니다.
매개 변수 스윕을 선택한 후 튜닝할 수 있는 각 속성에 대해 단일 값 또는 여러 값을 설정할 수 있습니다. 예를 들어 트리 수를 수정하지만 각 트리를 빌드하는 방식을 제어하는 다른 값을 임의로 변경할 수 있습니다.
단일 값을 입력하는 경우 다른 값이 변경되더라도 해당 값은 스윕의 모든 반복에서 사용됩니다.
사용할 불연속 값의 쉼표로 구분된 목록을 입력합니다. 이러한 값은 다른 속성과 함께 사용됩니다.
범위 작성기를 사용하여 연속 값 범위를 정의합니다.
학습 프로세스 중에 모델 하이퍼 매개 변수 튜닝 모듈은 다양한 값 조합을 반복하여 최상의 모델을 빌드합니다.
트리당 최대 리프 수의 경우 각 트리에서 허용하도록 총 리프 수 또는 터미널 노드를 입력합니다.
생성된 트리 수의 경우 앙상블을 생성할 때 수행할 반복 횟수를 입력합니다. 더 많은 트리를 만들면 학습 시간이 늘어나면 더 나은 범위를 얻을 수 있습니다.
리프 노드당 최소 샘플 수의 경우 리프 노드를 만드는 데 필요한 사례 수를 나타냅니다.
이 값을 늘려 새 규칙을 작성하기 위한 임계값을 늘립니다. 예를 들어, 기본값이 1이면 단일 사례만으로도 새 규칙을 하나 작성할 수 있습니다. 값을 5로 늘리면 학습 데이터에 동일한 조건을 만족하는 사례가 다섯 개 이상 있어야 합니다.
분수를 배깅하기 위한 범위에서 각 분위수 그룹을 빌드할 때 사용할 샘플의 비율을 입력합니다. 샘플은 대체를 사용하여 임의로 선택됩니다.
각 분수는 0에서 1 사이의 숫자여야 합니다. 쉼표로 여러 분수를 구분합니다.
기능 분수에 대한 범위에서 각 분위수 그룹을 빌드할 때 사용할 총 기능의 비율을 입력합니다. 기능은 임의로 선택됩니다.
각 분수는 0에서 1 사이의 숫자여야 합니다. 쉼표로 여러 분수를 구분합니다.
분할 분수에 대한 범위에서 각 분위수 그룹에서 사용할 기능의 일부를 지정합니다. 사용되는 실제 기능은 임의로 선택됩니다.
각 분수는 0에서 1 사이의 숫자여야 합니다. 쉼표로 여러 분수를 구분합니다.
분위수를 추정하는 데 사용되는 샘플 개수에서 분위수를 추정할 때 평가해야 하는 샘플 수를 나타냅니다. 사용 가능한 샘플 수보다 큰 숫자를 입력하면 모든 샘플이 사용됩니다.
필수 분위수 값에 모델을 학습시킬 분위수의 쉼표로 구분된 목록을 입력합니다. 예를 들어 사분위수로 추정되는 모델을 빌드하려면 '0.25, 0.5, 0.75를 입력합니다.
난수 시드에 모델에 사용되는 난수 생성기를 시드할 값을 입력합니다. 중복 실행을 재현하려는 경우 초기값을 사용하면 유용합니다.
기본값은 0으로, 난수 초기값이 선택됩니다.
범주 기능에 대해 알 수 없는 값 허용 옵션을 선택하여 학습 또는 유효성 검사 세트에 알 수 없는 값에 대한 그룹을 만듭니다.
선택을 취소하면 모델에서 학습 데이터에 포함된 값만 수락할 수 있습니다.
이 옵션을 선택하면 모델이 알려진 값에 대해 덜 정확할 수 있지만 새(알 수 없는) 값에 대해 더 나은 예측을 제공할 수 있습니다.
학습 데이터 세트를 커넥트 레이블 열을 선택하고 모델 하이퍼 매개 변수 조정 모듈을 연결합니다.
실험을 실행합니다.
결과
학습 완료 후 다음이 수행됩니다.
- 최적화된 모델의 최종 하이퍼 매개 변수를 보려면 모델 하이퍼 매개 변수 조정 의 출력을 마우스 오른쪽 단추로 클릭하고 시각화를 선택합니다.
예
이 모듈을 사용하는 방법에 대한 예제는 Azure AI 갤러리를 참조하세요.
- 분위수 회귀: 자동 가격 데이터 세트를 사용하여 분위수 회귀 모델을 빌드하고 해석하는 방법을 보여 줍니다.
기술 정보
이 섹션에는 구현 정보, 팁, 질문과 대답이 포함되어 있습니다.
구현 세부 정보
Machine Learning 빠른 포리스트 분위수 회귀 모듈은 의사 결정 트리를 사용하여 임의 포리스트 분위수 회귀를 구현하는 것입니다. 임의 포리스트를 사용하면 의사 결정 트리에서 발생할 수 있는 초과 맞춤을 방지하는 데 도움이 될 수 있습니다. 의사 결정 트리는 입력에 포함된 기능 중 하나의 값을 기준으로 하여 모든 내부 노드에서 두 하위 노드 중 진행할 노드를 결정하는 이진 트리 형식 순서도입니다.
각 리프 노드에서는 값이 반환됩니다. 내부 노드에서 결정은 테스트 ''x≤v'를 기반으로 합니다. 여기서 x는 입력 샘플의 기능 값이고 v는 이 기능의 가능한 값 중 하나입니다. 회귀 트리를 통해 생성할 수 있는 함수는 모두 구간적 상수 함수입니다.
임의 포리스트에서는 배깅을 사용하여 학습 데이터의 임의 샘플 및 기능 하위 집합을 선택한 다음 의사 결정 트리를 데이터의 각 하위 집합에 맞추면 트리의 앙상블이 만들어집니다. 모든 트리 출력의 평균을 계산하는 임의 포리스트 알고리즘과는 달리 빠른 포리스트 변위치 회귀에서는 변위치 샘플 개수 매개 변수로 지정된 모든 예측 레이블을 트리에 유지하며 분포를 출력하므로, 사용자가 지정된 인스턴스의 변위치 값을 확인할 수 있습니다.
관련 연구
분위수 회귀에 대한 자세한 내용은 다음 책과 문서를 참조하세요.
변위치 회귀 포리스트 - Nicolai Meinshausen
http://jmlr.org/papers/volume7/meinshausen06a/meinshausen06a.pdf
임의 포리스트 - Leo Breiman
모듈 매개 변수
Name | Type | 범위 | 옵션 | Description | 기본값 |
---|---|---|---|---|---|
트레이너 모드 만들기 | CreateLearnerMode | 목록: 단일 매개 변수|매개 변수 범위 | 필수 | 단일 매개 변수입니다. | 고급 학습자 옵션을 만듭니다. |
트리 수 | 정수 | 모드: 단일 매개 변수 | 100 | 생성할 트리 수를 지정합니다. | |
리프 수 | 정수 | 모드: 단일 매개 변수 | 20 | 트리당 최대 리프 수를 지정합니다. 기본 수는 20개입니다. | |
리프를 만드는 데 필요한 최소 학습 인스턴스 수 | 정수 | 모드: 단일 매개 변수 | 10 | 리프를 만드는 데 필요한 최소 학습 인스턴스 수를 나타냅니다. | |
Bagging 분수 비율 | Float | 모드: 단일 매개 변수 | 0.7 | 각 트리에 사용할 학습 데이터의 분수를 지정합니다. | |
기능 분수 | Float | 모드: 단일 매개 변수 | 0.7 | 각 트리에 사용할 기능의 분수(임의로 선택)를 지정합니다. | |
분할 분수 | Float | 모드: 단일 매개 변수 | 0.7 | 각 분할에 사용할 기능의 분수(임의로 선택)를 지정합니다. | |
변위치 샘플 개수 | 정수 | 최대: 2147483647 | 모드: 단일 매개 변수 | 100 | 변위치를 예측하기 위해 각 노드에서 사용되는 인스턴스 수를 지정합니다. |
예측할 변위치 | String | 모드: 단일 매개 변수 | "0.25;0.5;0.75" | 예측할 변위치를 지정합니다. | |
난수 초기값 | 정수 | 선택 사항 | 모델에서 사용하는 난수 생성기의 초기값을 제공합니다. 기본값을 사용하려면 비워 둡니다. | ||
알 수 없는 범주 수준 허용 | 부울 | 필수 | true | true인 경우 각 범주 열에 대해 추가 수준을 만듭니다. 학습 데이터 집합에서 사용할 수 없는 테스트 데이터 집합의 모든 수준은 이 추가 수준에 매핑됩니다. | |
트리당 최대 리프 수 | ParameterRangeSettings | [16;128] | 모드: 매개 변수 범위 | 16; 32; 64 | 트리당 허용되는 리프의 최대 수의 범위를 지정합니다. |
생성되는 트리의 수 | ParameterRangeSettings | [1;256] | 모드: 매개 변수 범위 | 16; 32; 64 | 학습 중에 만들 수 있는 최대 트리 수의 범위를 지정합니다. |
리프 노드당 최소 샘플 수 | ParameterRangeSettings | [1;10] | 모드: 매개 변수 범위 | 1; 5; 10 | 리프를 구성하는 데 필요한 최대 사례 수의 범위를 지정합니다. |
Bagging 분수 범위 | ParameterRangeSettings | [0.25;1.0] | 모드: 매개 변수 범위 | 0.25; 0.5; 0.75 | 각 트리에 사용할 학습 데이터의 분수 범위를 지정합니다. |
기능 분수 범위 | ParameterRangeSettings | [0.25;1.0] | 모드: 매개 변수 범위 | 0.25; 0.5; 0.75 | 각 트리에 사용할 기능의 분수(임의로 선택) 범위를 지정합니다. |
분할 분수 범위 | ParameterRangeSettings | [0.25;1.0] | 모드: 매개 변수 범위 | 0.25; 0.5; 0.75 | 각 분할에 사용할 기능의 분수(임의로 선택) 범위를 지정합니다. |
변위치를 예측하는 데 사용되는 샘플 수입니다. | 정수 | 모드: 매개 변수 범위 | 100 | 변위치를 예측하는 데 사용되는 샘플 수입니다. | |
필요한 변위치 값 | String | 모드: 매개 변수 범위 | "0.25;0.5;0.75" | 매개 변수를 비우는 동안 사용되는 필수 변위치 값입니다. |
출력
Name | 유형 | 설명 |
---|---|---|
학습되지 않은 모델 | ILearner 인터페이스 | 일반 모델 학습 또는 모델 교차 유효성 검사 모듈에 연결할 수 있는 학습되지 않은 변위치 회귀 모델입니다. |