CategoricalCatalog.OneHotEncoding Yöntem

Tanım

Aşırı Yüklemeler

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

içinde belirtilen columns bir veya daha fazla giriş metin sütunlarını tek sık kodlanmış vektörlerin en fazla sütununa dönüştüren bir OneHotEncodingEstimatoroluşturun.

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

tarafından belirtilen inputColumnName giriş sütununu adlı outputColumnNametek sık kodlanmış vektörlerden oluşan bir sütuna dönüştüren bir OneHotEncodingEstimatoroluşturun.

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

içinde belirtilen columns bir veya daha fazla giriş metin sütunlarını tek sık kodlanmış vektörlerin en fazla sütununa dönüştüren bir OneHotEncodingEstimatoroluşturun.

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

Parametreler

catalog
TransformsCatalog.CategoricalTransforms

Dönüştürme kataloğu.

columns
InputOutputColumnPair[]

Giriş ve çıkış sütunları çiftleri. Çıkış sütunlarının veri türü , Indicatorve Binaryise outputKindBagbir vektör Single olacaktır. ise outputKindKey, çıkış sütunlarının veri türü skaler giriş sütunu söz konusu olduğunda bir anahtar veya vektör giriş sütunu söz konusu olduğunda bir anahtar vektör olacaktır.

outputKind
OneHotEncodingEstimator.OutputKind

Çıkış türü: Çanta (çok kümeli vektör), Ind (gösterge vektör), Anahtar (dizin) veya İkili kodlanmış gösterge vektör.

maximumNumberOfKeys
Int32

Otomatik eğitim sırasında sütun başına tutulacak en fazla terim sayısı.

keyOrdinality
ValueToKeyMappingEstimator.KeyOrdinality

Öğelerin vektörleştirildiğinde nasıl sıralanması gerektiği. Seçilirse ByOccurrence , karşılaşılan sırayla olacaktır. öğeleri ByValuevarsayılan karşılaştırmalarına göre sıralanırsa, örneğin, metin sıralama büyük/küçük harfe duyarlı olur (örneğin, 'A' sonra 'Z' ve sonra 'a').

keyData
IDataView

Kodlama için bir sıralama belirtir. Belirtilirse, bu tek sütunlu bir veri görünümü olmalıdır ve anahtar-değerler bu sütundan alınır. Belirtilmezse sıralama, sığdırma sırasında giriş verilerinden belirlenir.

Döndürülenler

Örnekler

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

Açıklamalar

Tahmin aracına birden çok sütun geçirilirse, tüm sütunlar veriler üzerinden tek bir geçişte işlenir. Bu nedenle, birden çok sütuna sahip bir tahmin aracı belirtmek, her biri tek sütunlu birçok tahmin aracı belirtmekten daha verimlidir.

Şunlara uygulanır

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

tarafından belirtilen inputColumnName giriş sütununu adlı outputColumnNametek sık kodlanmış vektörlerden oluşan bir sütuna dönüştüren bir OneHotEncodingEstimatoroluşturun.

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

Parametreler

catalog
TransformsCatalog.CategoricalTransforms

Dönüştürme kataloğu.

outputColumnName
String

dönüştürmesinden kaynaklanan sütunun inputColumnNameadı. Bu sütunun veri türü , Indicatorve Binaryise outputKindBagbir vektör Single olacaktır. ise outputKindKey, bu sütunun veri türü bir skaler giriş sütunu veya vektör giriş sütunu söz konusu olduğunda anahtar vektörleri için bir anahtar olacaktır.

inputColumnName
String

Tek etkin vektörlere dönüştürülecek sütunun adı. olarak ayarlanırsa nulloutputColumnName değeri kaynak olarak kullanılır. Bu sütunun veri türü skaler veya sayısal, metin, boole veya DateTimeOffsetvektör olabilir. DateTime

outputKind
OneHotEncodingEstimator.OutputKind

Çıkış türü: Çanta (çok kümeli vektör), Gösterge (gösterge vektör), Anahtar (dizin) veya İkili kodlanmış gösterge vektör.

maximumNumberOfKeys
Int32

Otomatik eğitim sırasında sütun başına tutulacak en fazla terim sayısı.

keyOrdinality
ValueToKeyMappingEstimator.KeyOrdinality

Öğelerin vektörleştirildiğinde nasıl sıralanması gerektiği. Seçilirse ByOccurrence , karşılaşılan sırayla olacaktır. öğeleri ByValuevarsayılan karşılaştırmalarına göre sıralanırsa, örneğin, metin sıralama büyük/küçük harfe duyarlı olur (örneğin, 'A' sonra 'Z' ve sonra 'a').

keyData
IDataView

Kodlama için bir sıralama belirtir. Belirtilirse, bu tek sütunlu bir veri görünümü olmalıdır ve anahtar-değerler bu sütundan alınır. Belirtilmezse sıralama, sığdırma sırasında giriş verilerinden belirlenir.

Döndürülenler

Örnekler

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

Şunlara uygulanır