Поделиться через


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. Столбец меток не нужен. Этот алгоритм обучения выводит следующие столбцы:

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

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

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

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

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

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

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

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

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

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

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