다음을 통해 공유


OneVersusAllTrainer 클래스

정의

지정된 이 IEstimator<TTransformer> 진 분류자를 사용하는 일대다 다중 클래스 분류자를 학습하기 위한 것입니다.

public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
상속

설명

이 트레이너를 만들려면 OneVersusAll을 사용합니다.

입력 및 출력 열

입력 레이블 열 데이터는 형식이어야 하며 기능 열은 알려진 크기의 벡터 Single여야 합니다.

이 트레이너는 다음 열을 출력합니다.

출력 열 이름 열 유형 설명
Score Single 벡터 모든 클래스의 점수. 값이 높을수록 연결된 클래스에 해당할 가능성이 높습니다. i번째 요소의 값이 가장 크다면 예측된 레이블 인덱스는 i가 됩니다. i는 0부터 시작하는 인덱스입니다.
PredictedLabel 형식 예측된 레이블의 인덱스입니다. 값이 i라면 실제 레이블은 키 값 입력 레이블 형식에서 i번째 범주입니다.

트레이너 특성

기계 학습 작업 다중 클래스 분류
정규화가 필요한가요? 기본 이진 분류자에 따라 다름
캐싱이 필요한가요?
Microsoft.ML 외에도 필요한 NuGet 없음
ONNX로 내보낼 수 있습니다.

학습 알고리즘 세부 정보

OVA(일대다) 전략에서는 이진 분류 알고리즘을 사용하여 각 클래스에 대해 하나의 분류자를 학습시킵니다. 이 알고리즘은 해당 클래스를 다른 모든 클래스와 구분합니다. 그런 다음 이러한 이진 분류자를 실행하고 신뢰도 점수가 가장 높은 예측을 선택하여 예측을 수행합니다. 이 알고리즘은 ML.NET 이진 분류자 중에서 사용할 수 있습니다. 일부 이진 분류자는 이미 다중 클래스 문제에 대한 구현을 가지고 있으므로 사용자는 컨텍스트에 따라 하나를 선택할 수 있습니다. 래핑 LightGbmBinaryTrainer과 같은 이진 분류자의 OVA 버전은 다중 클래스 분류자를 직접 개발하는 것과 다를 LightGbmMulticlassTrainer수 있습니다. 분류자가 캐싱이 필요하지 않음을 나타내는 경우에도 OneVersusAll은 데이터 집합을 통해 여러 번 전달하므로 항상 캐싱을 요청합니다. 이 트레이너는 분류자가 데이터 파이프라인의 이점을 얻을 수 있음을 나타내는 경우 데이터 파이프라인에서 정규화를 요청합니다.

이를 통해 멀티클래스 문제를 해결하는 등 자연스럽게 멀티클래스 옵션이 없는 트레이너를 FastTreeBinaryTrainer 활용할 수 있습니다. 또는 트레이너가 멀티 클래스 옵션을 가지고 있지만 일반적으로 메모리 제약 조건으로 인해 직접 사용하는 것이 실용적이지 않은 경우에도 ML.NET "더 간단한"문제를 해결할 수 있습니다. 예를 들어 다중 클래스 로지스틱 회귀는 다중 클래스 문제를 해결하는 보다 원칙적인 방법이지만, 트레이너는 일대다 분류 모델에 필요한 것처럼 일대일이 아닌 모든 클래스에 대해 L-BFGS 기록 형태로 훨씬 더 많은 중간 상태를 동시에 저장해야 합니다.

사용 예제에 대한 링크는 참고 섹션을 확인하세요.

속성

Info

지정된 이 IEstimator<TTransformer> 진 분류자를 사용하는 일대다 다중 클래스 분류자를 학습하기 위한 것입니다.

(다음에서 상속됨 MetaMulticlassTrainer<TTransformer,TModel>)

메서드

Fit(IDataView)

모델을 학습합니다 MulticlassPredictionTransformer<TModel> .

GetOutputSchema(SchemaShape)

출력 열을 가져옵니다.

(다음에서 상속됨 MetaMulticlassTrainer<TTransformer,TModel>)

확장 메서드

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

추정기 체인에 '캐싱 검사점'을 추가합니다. 이렇게 하면 다운스트림 추정기가 캐시된 데이터에 대해 학습됩니다. 여러 데이터 전달을 수행하는 트레이너 앞에 캐싱 검사점이 있는 것이 좋습니다.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

추정기가 지정된 경우 호출된 대리 Fit(IDataView) 자를 호출할 래핑 개체를 반환합니다. 예측 도구가 적합한 항목에 대한 정보를 반환하는 것이 중요한 경우가 많습니다. 따라서 Fit(IDataView) 메서드는 일반 ITransformer개체가 아닌 구체적으로 형식화된 개체를 반환합니다. 그러나 동시에 IEstimator<TTransformer> 개체가 많은 파이프라인으로 형성되는 경우가 많으므로 변환기를 가져올 추정기가 이 체인의 어딘가에 묻혀 있는 위치를 통해 EstimatorChain<TLastTransformer> 추정기 체인을 빌드해야 할 수 있습니다. 이 시나리오에서는 이 메서드를 통해 fit이 호출되면 호출될 대리자를 연결할 수 있습니다.

적용 대상

추가 정보