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