CategoricalCatalog.OneHotEncoding Metoda

Definice

Přetížení

Name Description
OneHotEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView)

Vytvořte , OneHotEncodingEstimatorkterý převede jeden nebo více vstupních textových sloupců zadaných columns do tolika sloupců s jedním zakódovanými vektory.

OneHotEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView)

Vytvořte , OneHotEncodingEstimatorkterý převede vstupní sloupec určený inputColumnName do sloupce s jedním zakódovanými vektory s názvem outputColumnName.

OneHotEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView)

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

Vytvořte , OneHotEncodingEstimatorkterý převede jeden nebo více vstupních textových sloupců zadaných columns do tolika sloupců s jedním zakódovanými vektory.

public static Microsoft.ML.Transforms.OneHotEncodingEstimator OneHotEncoding(this Microsoft.ML.TransformsCatalog.CategoricalTransforms catalog, Microsoft.ML.InputOutputColumnPair[] columns, Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind outputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, int maximumNumberOfKeys = 1000000, Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality keyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Microsoft.ML.IDataView keyData = default);
static member OneHotEncoding : Microsoft.ML.TransformsCatalog.CategoricalTransforms * Microsoft.ML.InputOutputColumnPair[] * Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind * int * Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality * Microsoft.ML.IDataView -> Microsoft.ML.Transforms.OneHotEncodingEstimator
<Extension()>
Public Function OneHotEncoding (catalog As TransformsCatalog.CategoricalTransforms, columns As InputOutputColumnPair(), Optional outputKind As OneHotEncodingEstimator.OutputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, Optional maximumNumberOfKeys As Integer = 1000000, Optional keyOrdinality As ValueToKeyMappingEstimator.KeyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Optional keyData As IDataView = Nothing) As OneHotEncodingEstimator

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

Druh výstupu: Bag (multi-set vector), Ind (indikátor vektor), Key (index) nebo Binary encoded indicator vector.

maximumNumberOfKeys
Int32

Maximální počet termínů, které se mají zachovat na sloupec při automatickém trénování

keyOrdinality
ValueToKeyMappingEstimator.KeyOrdinality

Způsob řazení položek při vektorizaci Pokud ByOccurrence zvolíte, budou v pořadí, ve které došlo. Pokud ByValuese položky seřadí podle výchozího porovnání, například řazení textu bude rozlišovat malá a velká písmena (například A, pak Z a pak a).

keyData
IDataView

Určuje pořadí kódování. Pokud je zadáno, mělo by se jednat o zobrazení dat v jednom sloupci a hodnoty klíče se z tohoto sloupce převezmou. Pokud není zadáno, pořadí se určí ze vstupních dat při montáži.

Návraty

Příklady

using System;
using Microsoft.ML;

namespace Samples.Dynamic.Transforms.Categorical
{
    public static class OneHotEncodingMultiColumn
    {
        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", 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 encoding two columns
            // 'Education' and 'ZipCode'.
            var multiColumnKeyPipeline =
                mlContext.Transforms.Categorical.OneHotEncoding(
                    new[]
                    {
                        new InputOutputColumnPair("Education"),
                        new InputOutputColumnPair("ZipCode")
                    });

            // Fit and Transform data.
            IDataView transformedData =
                multiColumnKeyPipeline.Fit(data).Transform(data);

            var convertedData =
                mlContext.Data.CreateEnumerable<TransformedData>(transformedData,
                    true);

            Console.WriteLine(
                "One Hot Encoding of two columns 'Education' and 'ZipCode'.");

            // One Hot 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));

            // 1 0 0                   1 0
            // 1 0 0                   0 1
            // 0 1 0                   1 0
            // 0 1 0                   0 1
            // 0 0 1                   1 0
        }

        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

OneHotEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView)

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

Vytvořte , OneHotEncodingEstimatorkterý převede vstupní sloupec určený inputColumnName do sloupce s jedním zakódovanými vektory s názvem outputColumnName.

public static Microsoft.ML.Transforms.OneHotEncodingEstimator OneHotEncoding(this Microsoft.ML.TransformsCatalog.CategoricalTransforms catalog, string outputColumnName, string inputColumnName = default, Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind outputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, int maximumNumberOfKeys = 1000000, Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality keyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Microsoft.ML.IDataView keyData = default);
static member OneHotEncoding : Microsoft.ML.TransformsCatalog.CategoricalTransforms * string * string * Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind * int * Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality * Microsoft.ML.IDataView -> Microsoft.ML.Transforms.OneHotEncodingEstimator
<Extension()>
Public Function OneHotEncoding (catalog As TransformsCatalog.CategoricalTransforms, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional outputKind As OneHotEncodingEstimator.OutputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, Optional maximumNumberOfKeys As Integer = 1000000, Optional keyOrdinality As ValueToKeyMappingEstimator.KeyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Optional keyData As IDataView = Nothing) As OneHotEncodingEstimator

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á převést na vektory 1-hot. 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

Druh výstupu: Bag (multi-set vector), Indicator (indikátor vektor), Key (index) nebo Binary encoded indicator vector.

maximumNumberOfKeys
Int32

Maximální počet termínů, které se mají zachovat na sloupec při automatickém trénování

keyOrdinality
ValueToKeyMappingEstimator.KeyOrdinality

Způsob řazení položek při vektorizaci Pokud ByOccurrence zvolíte, budou v pořadí, ve které došlo. Pokud ByValuese položky seřadí podle výchozího porovnání, například řazení textu bude rozlišovat malá a velká písmena (například A, pak Z a pak a).

keyData
IDataView

Určuje pořadí kódování. Pokud je zadáno, mělo by se jednat o zobrazení dat v jednom sloupci a hodnoty klíče se z tohoto sloupce převezmou. Pokud není zadáno, pořadí se určí ze vstupních dat při montáži.

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 OneHotEncoding
    {
        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 IDataView.
            IDataView data = mlContext.Data.LoadFromEnumerable(samples);

            // A pipeline for one hot encoding the Education column.
            var pipeline = mlContext.Transforms.Categorical.OneHotEncoding(
                "EducationOneHotEncoded", "Education");

            // Fit and transform the data.
            IDataView oneHotEncodedData = pipeline.Fit(data).Transform(data);

            PrintDataColumn(oneHotEncodedData, "EducationOneHotEncoded");

            // We have 3 slots because there are three categories in the
            // 'Education' column.

            // 1 0 0
            // 1 0 0
            // 0 1 0
            // 0 1 0
            // 0 0 1

            // A pipeline for one hot encoding the Education column (using keying).
            var keyPipeline = mlContext.Transforms.Categorical.OneHotEncoding(
                "EducationOneHotEncoded", "Education",
                OneHotEncodingEstimator.OutputKind.Key);

            // Fit and Transform data.
            oneHotEncodedData = keyPipeline.Fit(data).Transform(data);

            var keyEncodedColumn =
                oneHotEncodedData.GetColumn<uint>("EducationOneHotEncoded");

            Console.WriteLine(
                "One Hot Encoding of single column 'Education', with key type " +
                "output.");

            // One Hot Encoding of single column 'Education', with key type output.

            foreach (uint element in keyEncodedColumn)
                Console.WriteLine(element);

            // 1
            // 1
            // 2
            // 2
            // 3
        }

        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