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