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(Options).

Входные и выходные столбцы

Входные данные столбцов функций должны быть Single. Столбец меток не нужен. Этот тренер выводит следующие столбцы:

Имя выходного столбца Тип столбца Description
Score вектор Single Расстояния заданной точки данных к центроидам всех кластеров.
PredictedLabel тип ключа Индекс ближайшего кластера, прогнозируемый моделью.

Характеристики тренера

Задача машинного обучения Кластеризация
Требуется ли нормализация? Yes
Требуется ли кэширование? Yes
Обязательный NuGet в дополнение к Microsoft.ML Нет
Экспортируемый в ONNX Yes

Сведения об алгоритме обучения

K-средний — это популярный алгоритм кластеризации. При использовании K-средних данных данные кластеризованы в указанное число кластеров, чтобы свести к минимуму сумму квадратного расстояния в кластере. Эта реализация следует методу Yinyang K-means. Для выбора начальных центроидов кластера можно использовать один из трех вариантов:

  • Случайное инициализация. Это может привести к потенциально плохим приближениям оптимальной кластеризации.
  • Метод K-средний++ . Это улучшенный алгоритм инициализации , представленный здесь Ding et al., который гарантирует поиск решения, которое $O(log K)$ конкурентоспособно к оптимальному решению K-средних.
  • K-средний|| метод. Этот метод был представлен здесь Бахмани et al., и использует параллельный метод, который резко сокращает количество проходов, необходимых для получения хорошей инициализации.

K-средний|| — это метод инициализации по умолчанию. Другие методы можно указать в разделе "Параметры " при создании тренера с помощью KMeansTrainer(Options).

Функция оценки

Столбец "Оценка выходных данных" содержит квадрат расстояния $L_2$-норм (т. е. Евклидеан расстояние) заданного входного вектора $\textbf{x}\in \mathbb{R}^n$ к центроиду каждого кластера. Предположим, что центрион из кластера $c$-th — $\textbf{m}_c \in \mathbb{R}^n$. Значение $c$-th в столбце Score будет $d_c = || \textbf{x} - \textbf{m}_c ||_2^2$. Прогнозируемая метка — это индекс с наименьшим значением в векторе $K$[d_{0},\dots, d_{K-1}]$, где $K$ — это количество кластеров.

Дополнительные сведения о K-средних и K-средних++ см. в статье K-средний K-средний язык++

Ознакомьтесь с разделом "См. также" ссылки на примеры использования.

Поля

Имя Описание
FeatureColumn

Столбец признаков, который ожидает тренер.

(Унаследовано от TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Столбец метки, который ожидает тренер. Может быть null, что указывает, что метка не используется для обучения.

(Унаследовано от 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> того, где оценка, для которой мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова.

Применяется к

См. также раздел