Aracılığıyla paylaş


CategoricalCatalog.OneHotHashEncoding Yöntem

Tanım

Aşırı Yüklemeler

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

tarafından belirtilen columns bir veya daha fazla giriş metin sütunlarını karma tabanlı tek sık kodlanmış vektörlerden oluşan çok sayıda sütuna dönüştüren bir OneHotHashEncodingEstimatoroluşturun.

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

tarafından inputColumnName belirtilen bir metin sütununu adlı outputColumnNamekarma tabanlı tek sık kodlanmış vektör sütununa dönüştüren bir OneHotHashEncodingEstimatoroluşturun.

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

tarafından belirtilen columns bir veya daha fazla giriş metin sütunlarını karma tabanlı tek sık kodlanmış vektörlerden oluşan çok sayıda sütuna dönüştüren bir OneHotHashEncodingEstimatoroluşturun.

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

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

Dönüştürme modu.

numberOfBits
Int32

Karma değere dönüştürülecek bit sayısı. 1 ile 30 (dahil) arasında olmalıdır.

seed
UInt32

Karma tohum.

useOrderedHashing
Boolean

Her terimin konumunun karmaya eklenip eklenmeyeceği.

maximumNumberOfInverts
Int32

Karma oluşturma sırasında, özgün değerler ve üretilen karma değerler arasındaki eşlemeleri sabitleriz. Özgün değerlerin metin gösterimi, yeni sütunun meta verilerinin yuva adlarında depolanır. Bu şekilde karma oluşturma, birçok başlangıç değerini bir değerle eşleyebilir. maximumNumberOfInverts , saklanması gereken bir karmayla eşlenen benzersiz giriş değerlerinin sayısının üst sınırlarını belirtir. 0 hiçbir giriş değerini korumaz. -1 , her karmayla eşlem yapılan tüm giriş değerlerini korur.

Döndürülenler

Örnekler

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

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

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

tarafından inputColumnName belirtilen bir metin sütununu adlı outputColumnNamekarma tabanlı tek sık kodlanmış vektör sütununa dönüştüren bir OneHotHashEncodingEstimatoroluşturun.

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

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

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 DateTime veya DateTimeOffsetvektör olabilir.

outputKind
OneHotEncodingEstimator.OutputKind

Dönüştürme modu.

numberOfBits
Int32

Karma değere dönüştürülecek bit sayısı. 1 ile 30 (dahil) arasında olmalıdır.

seed
UInt32

Karma tohum.

useOrderedHashing
Boolean

Her terimin konumunun karmaya eklenip eklenmeyeceği.

maximumNumberOfInverts
Int32

Karma oluşturma sırasında, özgün değerler ve üretilen karma değerler arasındaki eşlemeleri sabitleriz. Özgün değerlerin metin gösterimi, yeni sütunun meta verilerinin yuva adlarında depolanır. Bu şekilde karma oluşturma, birçok başlangıç değerini bir değerle eşleyebilir. maximumNumberOfInverts , saklanması gereken bir karmayla eşlenen benzersiz giriş değerlerinin sayısının üst sınırlarını belirtir. 0 hiçbir giriş değerini korumaz. -1 , her karmayla eşlem yapılan tüm giriş değerlerini korur.

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

Şunlara uygulanır