FastTreeRankingTrainer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Para IEstimator<TTransformer> treinar um modelo de classificação de árvore de decisão usando FastTree.
public sealed class FastTreeRankingTrainer : Microsoft.ML.Trainers.FastTree.BoostingFastTreeTrainerBase<Microsoft.ML.Trainers.FastTree.FastTreeRankingTrainer.Options,Microsoft.ML.Data.RankingPredictionTransformer<Microsoft.ML.Trainers.FastTree.FastTreeRankingModelParameters>,Microsoft.ML.Trainers.FastTree.FastTreeRankingModelParameters>
type FastTreeRankingTrainer = class
inherit BoostingFastTreeTrainerBase<FastTreeRankingTrainer.Options, RankingPredictionTransformer<FastTreeRankingModelParameters>, FastTreeRankingModelParameters>
Public NotInheritable Class FastTreeRankingTrainer
Inherits BoostingFastTreeTrainerBase(Of FastTreeRankingTrainer.Options, RankingPredictionTransformer(Of FastTreeRankingModelParameters), FastTreeRankingModelParameters)
- Herança
Comentários
Para criar esse treinador, use FastTree ou FastTree(Options).
Colunas de entrada e saída
O tipo de dados de rótulo de entrada deve ser do tipo chave ou Single. O valor do rótulo determina a relevância, em que valores mais altos indicam maior relevância. Se o rótulo for um tipo chave, o índice de chave será o valor de relevância, em que o menor índice é o menos relevante. Se o rótulo for um Single, valores maiores indicarão maior relevância. A coluna de recurso deve ser um vetor de tamanho conhecido e a coluna do grupo de linhas de Single entrada deve ser do tipo chave .
Este treinador gera as seguintes colunas:
Nome da Coluna de Saída | Tipo de coluna | Descrição |
---|---|---|
Score |
Single | A pontuação não associada calculada pelo modelo para determinar a previsão. |
Características do Treinador
Ferramenta de machine learning | Classificação |
A normalização é necessária? | No |
O cache é necessário? | No |
NuGet necessário além de Microsoft.ML | Microsoft.ML.FastTree |
Exportável para ONNX | No |
Detalhes do algoritmo de treinamento
FastTree é uma implementação eficiente do algoritmo de aumento de gradiente MART . O aumento de gradiente é uma técnica de aprendizado de máquina para problemas de regressão. Ele cria cada árvore de regressão por etapas usando uma função de perda predefinida para medir o erro em cada etapa e corrigi-lo na próxima. Portanto, o modelo de previsão é na verdade um conjunto de modelos de previsão mais fracos. Nos problemas de regressão, o aumento cria uma série dessas árvores por etapas e seleciona a árvore ideal usando uma função de perda diferenciável arbitrária.
O MART aprende um conjunto de árvores de regressão, que é uma árvore de decisão com valores escalares nas folhas. Uma árvore de decisão (ou de regressão) é um fluxograma semelhante a uma árvore binária, na qual em cada nó interior é decidido para qual dos dois nós filho o processo deve continuar com base em um dos valores de recurso da entrada. Em cada nó folha, um valor é retornado. Nos nós interiores, a decisão se baseia no teste x <= v, onde x é o valor do recurso no exemplo de entrada e v é um dos valores possíveis desse recurso. As funções que podem ser produzidas por uma árvore de regressão são constante funções de partes.
O conjunto de árvores é produzido por computação, em cada etapa, uma árvore de regressão que aproxima o gradiente da função de perda e o adiciona à árvore anterior com coeficientes que minimizam a perda da nova árvore. A saída do ensemble produzido por MART em uma determinada instância é a soma das saídas da árvore.
- No caso de um problema de classificação binária, a saída é convertida em uma probabilidade usando alguma forma de calibragem.
- No caso de um problema de regressão, a saída é o valor previsto da função.
- No caso de um problema de classificação, as instâncias são ordenadas pelo valor de saída do conjunto.
Para obter mais informações, consulte:
- Wikipédia: Aumento de gradiente (aumento de árvore de gradiente).
- Aproximação de função greedy: um computador de gradient boosting.
Verifique a seção Consulte Também para obter links para exemplos de uso.
Campos
FeatureColumn |
A coluna de recursos que o treinador espera. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
GroupIdColumn |
A coluna groupID opcional que os treinadores de classificação esperam. (Herdado de TrainerEstimatorBaseWithGroupId<TTransformer,TModel>) |
LabelColumn |
A coluna de rótulo que o treinador espera. Pode ser |
WeightColumn |
A coluna de peso que o treinador espera. Pode ser |
Propriedades
Info |
Para IEstimator<TTransformer> treinar um modelo de classificação de árvore de decisão usando FastTree. (Herdado de FastTreeTrainerBase<TOptions,TTransformer,TModel>) |
Métodos
Fit(IDataView, IDataView) |
Treina um FastTreeRankingTrainer uso de dados de treinamento e validação, retorna um RankingPredictionTransformer<TModel>. |
Fit(IDataView) |
Treina e retorna um ITransformer. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Para IEstimator<TTransformer> treinar um modelo de classificação de árvore de decisão usando FastTree. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
Métodos de Extensão
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Acrescente um "ponto de verificação de cache" à cadeia de estimativas. Isso garantirá que os estimadores downstream serão treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que fazem várias passagens de dados. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado um estimador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um estimador retorne informações sobre o que estava em forma, e é por isso que o Fit(IDataView) método retorna um objeto especificamente tipado, em vez de apenas um geral ITransformer. No entanto, ao mesmo tempo, IEstimator<TTransformer> muitas vezes são formados em pipelines com muitos objetos, portanto, talvez seja necessário construir uma cadeia de estimadores por meio EstimatorChain<TLastTransformer> de onde o estimador para o qual queremos que o transformador seja enterrado em algum lugar nesta cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado quando fit for chamado. |