CategoricalCatalog.OneHotHashEncoding Método
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.
Sobrecargas
| Nome | Description |
|---|---|
| OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32) |
Crie uma OneHotHashEncodingEstimator, que converte uma ou mais colunas de texto de entrada especificadas por |
| OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32) |
Crie um OneHotHashEncodingEstimator, que converte uma coluna de texto especificada por |
OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32)
- Origem:
- CategoricalCatalog.cs
- Origem:
- CategoricalCatalog.cs
- Origem:
- CategoricalCatalog.cs
Crie uma OneHotHashEncodingEstimator, que converte uma ou mais colunas de texto de entrada especificadas por columns meio de tantas colunas de vetores codificados de um ponto de acesso único baseados em hash.
public static Microsoft.ML.Transforms.OneHotHashEncodingEstimator OneHotHashEncoding(this Microsoft.ML.TransformsCatalog.CategoricalTransforms catalog, Microsoft.ML.InputOutputColumnPair[] columns, Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind outputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, int numberOfBits = 16, uint seed = 314489979, bool useOrderedHashing = true, int maximumNumberOfInverts = 0);
static member OneHotHashEncoding : Microsoft.ML.TransformsCatalog.CategoricalTransforms * Microsoft.ML.InputOutputColumnPair[] * Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind * int * uint32 * bool * int -> Microsoft.ML.Transforms.OneHotHashEncodingEstimator
<Extension()>
Public Function OneHotHashEncoding (catalog As TransformsCatalog.CategoricalTransforms, columns As InputOutputColumnPair(), Optional outputKind As OneHotEncodingEstimator.OutputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, Optional numberOfBits As Integer = 16, Optional seed As UInteger = 314489979, Optional useOrderedHashing As Boolean = true, Optional maximumNumberOfInverts As Integer = 0) As OneHotHashEncodingEstimator
Parâmetros
O catálogo de transformação
- columns
- InputOutputColumnPair[]
Os pares de colunas de entrada e saída. O tipo de dados das colunas de saída será um vetor de Single se outputKind for Bag, Indicatore Binary.
Se outputKind for Key, o tipo de dados das colunas de saída será uma chave no caso de coluna de entrada escalar ou um vetor de chaves no caso de uma coluna de entrada de vetor.
- outputKind
- OneHotEncodingEstimator.OutputKind
O modo de conversão.
- numberOfBits
- Int32
Número de bits a serem colocados em hash. Deve estar entre 1 e 30, inclusive.
- seed
- UInt32
Semente de hash.
- useOrderedHashing
- Boolean
Se a posição de cada termo deve ser incluída no hash.
- maximumNumberOfInverts
- Int32
Durante o hash, constucamos mapeamentos entre valores originais e os valores de hash produzidos.
A representação de texto dos valores originais é armazenada nos nomes de slot dos metadados da nova coluna. O hash, como tal, pode mapear muitos valores iniciais para um.
maximumNumberOfInverts especifica o limite superior do número de mapeamento de valores de entrada distintos para um hash que deve ser mantido.
<retorna>0</returns> não retém nenhum valor de entrada.
<returns-1></returns> retém todo o mapeamento de valores de entrada para cada hash.
Retornos
Exemplos
using System;
using Microsoft.ML;
namespace Samples.Dynamic.Transforms.Categorical
{
public static class OneHotHashEncodingMultiColumn
{
public static void Example()
{
// Create a new ML context for ML.NET operations. It can be used for
// exception tracking and logging as well as the source of randomness.
var mlContext = new MLContext();
// Get a small dataset as an IEnumerable.
var samples = new[]
{
new DataPoint {Education = "0-5yrs", ZipCode = "98005"},
new DataPoint {Education = "0-5yrs", ZipCode = "98052"},
new DataPoint {Education = "6-11yrs", ZipCode = "98005"},
new DataPoint {Education = "6-11yrs", ZipCode = "98052"},
new DataPoint {Education = "11-15yrs", ZipCode = "98005"}
};
// Convert training data to IDataView.
IDataView data = mlContext.Data.LoadFromEnumerable(samples);
// Multi column example: A pipeline for one hot has encoding two
// columns 'Education' and 'ZipCode'.
var multiColumnKeyPipeline =
mlContext.Transforms.Categorical.OneHotHashEncoding(
new[]
{
new InputOutputColumnPair("Education"),
new InputOutputColumnPair("ZipCode")
},
numberOfBits: 3);
// Fit and Transform the data.
IDataView transformedData =
multiColumnKeyPipeline.Fit(data).Transform(data);
var convertedData =
mlContext.Data.CreateEnumerable<TransformedData>(transformedData,
true);
Console.WriteLine(
"One Hot Hash Encoding of two columns 'Education' and 'ZipCode'.");
// One Hot Hash Encoding of two columns 'Education' and 'ZipCode'.
foreach (TransformedData item in convertedData)
Console.WriteLine("{0}\t\t\t{1}", string.Join(" ", item.Education),
string.Join(" ", item.ZipCode));
// We have 8 slots, because we used numberOfBits = 3.
// 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
// 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0
// 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
// 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
// 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
}
private class DataPoint
{
public string Education { get; set; }
public string ZipCode { get; set; }
}
private class TransformedData
{
public float[] Education { get; set; }
public float[] ZipCode { get; set; }
}
}
}
Comentários
Se várias colunas forem passadas para o avaliador, todas as colunas serão processadas em uma única passagem sobre os dados. Portanto, é mais eficiente especificar um avaliador com muitas colunas do que especificar muitos estimadores cada um com uma única coluna.
Aplica-se a
OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32)
- Origem:
- CategoricalCatalog.cs
- Origem:
- CategoricalCatalog.cs
- Origem:
- CategoricalCatalog.cs
Crie um OneHotHashEncodingEstimator, que converte uma coluna de texto especificada por inputColumnName uma coluna de vetor codificada de um ponto de acesso único baseada em hash chamada outputColumnName.
public static Microsoft.ML.Transforms.OneHotHashEncodingEstimator OneHotHashEncoding(this Microsoft.ML.TransformsCatalog.CategoricalTransforms catalog, string outputColumnName, string inputColumnName = default, Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind outputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, int numberOfBits = 16, uint seed = 314489979, bool useOrderedHashing = true, int maximumNumberOfInverts = 0);
static member OneHotHashEncoding : Microsoft.ML.TransformsCatalog.CategoricalTransforms * string * string * Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind * int * uint32 * bool * int -> Microsoft.ML.Transforms.OneHotHashEncodingEstimator
<Extension()>
Public Function OneHotHashEncoding (catalog As TransformsCatalog.CategoricalTransforms, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional outputKind As OneHotEncodingEstimator.OutputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, Optional numberOfBits As Integer = 16, Optional seed As UInteger = 314489979, Optional useOrderedHashing As Boolean = true, Optional maximumNumberOfInverts As Integer = 0) As OneHotHashEncodingEstimator
Parâmetros
O catálogo de transformação.
- outputColumnName
- String
Nome da coluna resultante da transformação de inputColumnName.
O tipo de dados desta coluna será um vetor de Single se outputKind for Bag, Indicatore Binary.
Se outputKind for Key, o tipo de dados dessa coluna será uma chave no caso de uma coluna de entrada escalar ou um vetor de chaves no caso de uma coluna de entrada de vetor.
- inputColumnName
- String
Nome da coluna a ser transformada. Se definido como null, o valor do será usado como origem outputColumnName .
O tipo de dados dessa coluna pode ser escalar ou vetor de numérico, texto, booliano DateTime ou DateTimeOffset.
- outputKind
- OneHotEncodingEstimator.OutputKind
O modo de conversão.
- numberOfBits
- Int32
Número de bits a serem colocados em hash. Deve estar entre 1 e 30, inclusive.
- seed
- UInt32
Semente de hash.
- useOrderedHashing
- Boolean
Se a posição de cada termo deve ser incluída no hash.
- maximumNumberOfInverts
- Int32
Durante o hash, constucamos mapeamentos entre valores originais e os valores de hash produzidos.
A representação de texto dos valores originais é armazenada nos nomes de slot dos metadados da nova coluna. O hash, como tal, pode mapear muitos valores iniciais para um.
maximumNumberOfInverts especifica o limite superior do número de mapeamento de valores de entrada distintos para um hash que deve ser mantido.
<retorna>0</returns> não retém nenhum valor de entrada.
<returns-1></returns> retém todo o mapeamento de valores de entrada para cada hash.
Retornos
Exemplos
using System;
using Microsoft.ML;
using Microsoft.ML.Data;
using Microsoft.ML.Transforms;
namespace Samples.Dynamic.Transforms.Categorical
{
public static class OneHotHashEncoding
{
public static void Example()
{
// Create a new ML context for ML.NET operations. It can be used for
// exception tracking and logging as well as the source of randomness.
var mlContext = new MLContext();
// Create a small dataset as an IEnumerable.
var samples = new[]
{
new DataPoint {Education = "0-5yrs"},
new DataPoint {Education = "0-5yrs"},
new DataPoint {Education = "6-11yrs"},
new DataPoint {Education = "6-11yrs"},
new DataPoint {Education = "11-15yrs"}
};
// Convert training data to an IDataView.
IDataView data = mlContext.Data.LoadFromEnumerable(samples);
// A pipeline for one hot hash encoding the 'Education' column.
var pipeline = mlContext.Transforms.Categorical.OneHotHashEncoding(
"EducationOneHotHashEncoded", "Education", numberOfBits: 3);
// Fit and transform the data.
IDataView hashEncodedData = pipeline.Fit(data).Transform(data);
PrintDataColumn(hashEncodedData, "EducationOneHotHashEncoded");
// We have 8 slots, because we used numberOfBits = 3.
// 0 0 0 1 0 0 0 0
// 0 0 0 1 0 0 0 0
// 0 0 0 0 1 0 0 0
// 0 0 0 0 1 0 0 0
// 0 0 0 0 0 0 0 1
// A pipeline for one hot hash encoding the 'Education' column
// (using keying strategy).
var keyPipeline = mlContext.Transforms.Categorical.OneHotHashEncoding(
"EducationOneHotHashEncoded", "Education",
OneHotEncodingEstimator.OutputKind.Key, 3);
// Fit and transform the data.
IDataView hashKeyEncodedData = keyPipeline.Fit(data).Transform(data);
// Get the data of the newly created column for inspecting.
var keyEncodedColumn =
hashKeyEncodedData.GetColumn<uint>("EducationOneHotHashEncoded");
Console.WriteLine(
"One Hot Hash Encoding of single column 'Education', with key " +
"type output.");
// One Hot Hash Encoding of single column 'Education', with key type output.
foreach (uint element in keyEncodedColumn)
Console.WriteLine(element);
// 4
// 4
// 5
// 5
// 8
}
private static void PrintDataColumn(IDataView transformedData,
string columnName)
{
var countSelectColumn = transformedData.GetColumn<float[]>(
transformedData.Schema[columnName]);
foreach (var row in countSelectColumn)
{
for (var i = 0; i < row.Length; i++)
Console.Write($"{row[i]}\t");
Console.WriteLine();
}
}
private class DataPoint
{
public string Education { get; set; }
}
}
}