다음을 통해 공유


KMeansTrainer 클래스

정의

IEstimator<TTransformer> KMeans 클러스터러를 학습하기 위한 것입니다.

public class KMeansTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.ClusteringPredictionTransformer<Microsoft.ML.Trainers.KMeansModelParameters>,Microsoft.ML.Trainers.KMeansModelParameters>
type KMeansTrainer = class
    inherit TrainerEstimatorBase<ClusteringPredictionTransformer<KMeansModelParameters>, KMeansModelParameters>
Public Class KMeansTrainer
Inherits TrainerEstimatorBase(Of ClusteringPredictionTransformer(Of KMeansModelParameters), KMeansModelParameters)
상속

설명

이 트레이너를 만들려면 KMeans 또는 Kmeans(옵션)를 사용합니다.

입력 및 출력 열

입력 기능 열 데이터는 이어야 Single합니다. 레이블 열이 필요하지 않습니다. 이 트레이너는 다음 열을 출력합니다.

출력 열 이름 열 유형 설명
Score Single 벡터 지정된 데이터 요소에서 모든 클러스터의 중심까지의 거리입니다.
PredictedLabel 형식 모델에서 예측한 가장 가까운 클러스터의 인덱스

트레이너 특성

기계 학습 작업 Clustering
정규화가 필요한가요?
캐싱이 필요한가요?
Microsoft.ML 외에도 필요한 NuGet 없음
ONNX로 내보낼 수 있습니다.

학습 알고리즘 세부 정보

K-평균 은 인기 있는 클러스터링 알고리즘입니다. K-평균을 사용하면 제곱 거리의 클러스터 내 합계를 최소화하기 위해 데이터가 지정된 수의 클러스터로 클러스터됩니다. 이 구현은 Yinyang K-means 메서드를 따릅니다. 초기 클러스터 센터로이드를 선택하기 위해 다음 세 가지 옵션 중 하나를 사용할 수 있습니다.

  • 임의 초기화입니다. 이로 인해 최적의 클러스터링이 잠재적으로 나쁜 근사치로 이어질 수 있습니다.
  • K-means++ 메서드입니다. Ding et al.에서 도입한 향상된 초기화 알고리즘으로, 최적의 K-평균 솔루션에 $O(log K)$ 경쟁력이 있는 솔루션을 찾을 수 있습니다.
  • K-평균입니다|| 메서드. 이 메서드는 여기서 Bahmani 등에서 도입되었으며, 좋은 초기화를 얻는 데 필요한 패스 수를 크게 줄이는 병렬 메서드를 사용합니다.

K-평균|| 는 기본 초기화 방법입니다. KMeansTrainer(옵션)를 사용하여 트레이너를 만들 때 옵션에서 다른 메서드를 지정할 수 있습니다.

점수 매기기 함수

출력 점수 열에는 지정된 입력 벡터 $\textbf{x}\in \mathbb{R}^n$의 $L_2$-norm 거리(즉, 유클리드 거리)의 제곱이 포함되어 있습니다. $c$-th 클러스터의 중심이 \\textbf{m}_c \in \mathbb{R}^n$이라고 가정합니다. 점수 열의 $c$-th 값은 $d_c = || \textbf{x} - \textbf{m}_c || _2^2$. 예측된 레이블은 $K$ 차원 벡터 $[d_, \dots, d_{0}{K-1}]$에서 가장 작은 값을 가진 인덱스입니다. 여기서 $K$는 클러스터 수입니다.

K-평균 및 K-평균++에 대한 자세한 내용은 다음을 참조하세요. K-평균K-평균++

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

필드

FeatureColumn

트레이너가 기대하는 기능 열입니다.

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

트레이너가 기대하는 레이블 열입니다. Can be null, which indicates that label is not used for training.

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

트레이너가 기대하는 체중 열입니다. 가중치가 학습에 사용되지 않음을 나타내는 일 null수 있습니다.

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

속성

Info

IEstimator<TTransformer> KMeans 클러스터러를 학습하기 위한 것입니다.

메서드

Fit(IDataView)

를 학습하고 반환합니다 ITransformer.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer> KMeans 클러스터러를 학습하기 위한 것입니다.

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

확장 메서드

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

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

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

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

적용 대상

추가 정보