CategoricalCatalog.OneHotHashEncoding Metoda

Definice

Přetížení

Name Description
OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32)

Vytvořte , OneHotHashEncodingEstimatorkterý převede jeden nebo více vstupních textových sloupců určených columns tolika sloupci s kódováním hash s jedním zakódovanými vektory.

OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32)

Vytvořte , OneHotHashEncodingEstimatorkterý převede textový sloupec určený inputColumnName na hash-based one-hot zakódovaný vektorový sloupec s názvem outputColumnName.

OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32)

Zdroj:
CategoricalCatalog.cs
Zdroj:
CategoricalCatalog.cs
Zdroj:
CategoricalCatalog.cs

Vytvořte , OneHotHashEncodingEstimatorkterý převede jeden nebo více vstupních textových sloupců určených columns tolika sloupci s kódováním hash s jedním zakódovanými vektory.

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

Parametry

catalog
TransformsCatalog.CategoricalTransforms

Katalog transformací

columns
InputOutputColumnPair[]

Dvojice vstupních a výstupních sloupců. Datový typ výstupních sloupců bude vektorem Single , zda outputKind je Bag, Indicatora Binary. Pokud outputKind ano Key, datový typ výstupních sloupců bude klíčem v případě skalárního vstupního sloupce nebo vektoru klíčů v případě vektorového vstupního sloupce.

outputKind
OneHotEncodingEstimator.OutputKind

Režim převodu.

numberOfBits
Int32

Počet bitů, do které se má zatřiďovat Musí být mezi 1 a 30 včetně.

seed
UInt32

Počáteční hodnota hash.

useOrderedHashing
Boolean

Určuje, zda má být pozice každého termínu zahrnuta do hodnoty hash.

maximumNumberOfInverts
Int32

Při zatřiďování konsektorujeme mapování mezi původními hodnotami a vytvořenými hodnotami hash. Textová reprezentace původních hodnot se uloží v názvech slotů metadat nového sloupce. Hashování, například, může mapovat mnoho počátečních hodnot na jednu. maximumNumberOfInverts určuje horní mez počtu jedinečných vstupních hodnot mapování na hodnotu hash, která by se měla zachovat. <vrátí>hodnotu 0</returns> , nezachovává žádné vstupní hodnoty. <returns-1></returns> uchovává všechna vstupní hodnoty mapování na každou hodnotu hash.

Návraty

Příklady

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; }
        }
    }
}

Poznámky

Pokud se do odhadce předá více sloupců, všechny sloupce se zpracují v jediném předávání dat. Proto je efektivnější určit jeden estimátor s mnoha sloupci, než je zadat mnoho odhadců každý s jedním sloupcem.

Platí pro

OneHotHashEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, UInt32, Boolean, Int32)

Zdroj:
CategoricalCatalog.cs
Zdroj:
CategoricalCatalog.cs
Zdroj:
CategoricalCatalog.cs

Vytvořte , OneHotHashEncodingEstimatorkterý převede textový sloupec určený inputColumnName na hash-based one-hot zakódovaný vektorový sloupec s názvem 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

Parametry

catalog
TransformsCatalog.CategoricalTransforms

Katalog transformací.

outputColumnName
String

Název sloupce, který je výsledkem transformace inputColumnName. Datový typ tohoto sloupce bude vektorem Single , pokud outputKind je Bag, Indicatora Binary. Pokud outputKind ano Key, datový typ tohoto sloupce bude klíčem v případě skalárního vstupního sloupce nebo vektoru klíčů v případě vektorového vstupního sloupce.

inputColumnName
String

Název sloupce, který se má transformovat. Pokud je nastavená null hodnota outputColumnName, použije se jako zdroj. Datový typ tohoto sloupce může být skalární nebo vektor číselného, textového, logického nebo DateTimeDateTimeOffset.

outputKind
OneHotEncodingEstimator.OutputKind

Režim převodu.

numberOfBits
Int32

Počet bitů, do které se má zatřiďovat Musí být mezi 1 a 30 včetně.

seed
UInt32

Počáteční hodnota hash.

useOrderedHashing
Boolean

Určuje, zda má být pozice každého termínu zahrnuta do hodnoty hash.

maximumNumberOfInverts
Int32

Při zatřiďování konsektorujeme mapování mezi původními hodnotami a vytvořenými hodnotami hash. Textová reprezentace původních hodnot se uloží v názvech slotů metadat nového sloupce. Hashování, například, může mapovat mnoho počátečních hodnot na jednu. maximumNumberOfInverts určuje horní mez počtu jedinečných vstupních hodnot mapování na hodnotu hash, která by se měla zachovat. <vrátí>hodnotu 0</returns> , nezachovává žádné vstupní hodnoty. <returns-1></returns> uchovává všechna vstupní hodnoty mapování na každou hodnotu hash.

Návraty

Příklady

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; }
        }
    }
}

Platí pro