Aracılığıyla paylaş


KernelExpansionCatalog.ApproximatedKernelMap Yöntem

Tanım

ApproximatedKernelMappingEstimator Giriş vektörlerini, iç ürünlerin yaklaşık olarak vardiyalı sabit bir çekirdek işlevine sahip olduğu düşük boyutlu bir özellik alanına eşleyen bir oluşturun.

public static Microsoft.ML.Transforms.ApproximatedKernelMappingEstimator ApproximatedKernelMap (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName = default, int rank = 1000, bool useCosAndSinBases = false, Microsoft.ML.Transforms.KernelBase generator = default, int? seed = default);
static member ApproximatedKernelMap : Microsoft.ML.TransformsCatalog * string * string * int * bool * Microsoft.ML.Transforms.KernelBase * Nullable<int> -> Microsoft.ML.Transforms.ApproximatedKernelMappingEstimator
<Extension()>
Public Function ApproximatedKernelMap (catalog As TransformsCatalog, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional rank As Integer = 1000, Optional useCosAndSinBases As Boolean = false, Optional generator As KernelBase = Nothing, Optional seed As Nullable(Of Integer) = Nothing) As ApproximatedKernelMappingEstimator

Parametreler

catalog
TransformsCatalog

Dönüşümün kataloğu.

outputColumnName
String

dönüştürmesinden kaynaklanan sütunun inputColumnNameadı. Bu sütundaki veri türü bilinen boyutlu bir vektör Singleolacaktır.

inputColumnName
String

Dönüştürülecek sütunun adı. olarak ayarlanırsa nulloutputColumnName değeri kaynak olarak kullanılır. Bu tahmin aracı, veri türünün bilinen boyutlu vektörünün Single üzerinde çalışır.

rank
Int32

Girişineşi özellik alanının boyutu.

useCosAndSinBases
Boolean

ise true, her rastgele Fourier sıklığı için iki özellik oluşturmak için hem cos hem de sin temeli işlevlerini kullanın. Aksi takdirde yalnızca cos tabanları kullanılır. olarak ayarlanırsa true, çıkış özellik alanının boyutunun 2*rank olacağını unutmayın.

generator
KernelBase

Hangi çekirdeğin kullanılacağını gösteren bağımsız değişken. Kullanılabilir iki uygulama ve LaplacianKernelşeklindedirGaussianKernel.

seed
Nullable<Int32>

Yeni özellikleri oluşturmak için rastgele sayı oluşturucunun tohumu (belirtilmemişse, genel rastgele kullanılır).

Döndürülenler

Örnekler

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.ML;
using Microsoft.ML.Data;
using Microsoft.ML.Transforms;

namespace Samples.Dynamic
{
    public static class ApproximatedKernelMap
    {
        // Transform feature vector to another non-linear space. See
        // https://people.eecs.berkeley.edu/~brecht/papers/07.rah.rec.nips.pdf.
        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();
            var samples = new List<DataPoint>()
            {
                new DataPoint(){ Features = new float[7] { 1, 1, 0, 0, 1, 0, 1} },
                new DataPoint(){ Features = new float[7] { 0, 0, 1, 0, 0, 1, 1} },
                new DataPoint(){ Features = new float[7] {-1, 1, 0,-1,-1, 0,-1} },
                new DataPoint(){ Features = new float[7] { 0,-1, 0, 1, 0,-1,-1} }
            };
            // Convert training data to IDataView, the general data type used in
            // ML.NET.
            var data = mlContext.Data.LoadFromEnumerable(samples);
            // ApproximatedKernel map takes data and maps it's to a random
            // low -dimensional space.
            var approximation = mlContext.Transforms.ApproximatedKernelMap(
                "Features", rank: 4, generator: new GaussianKernel(gamma: 0.7f),
                seed: 1);

            // Now we can transform the data and look at the output to confirm the
            // behavior of the estimator. This operation doesn't actually evaluate
            // data until we read the data below.
            var tansformer = approximation.Fit(data);
            var transformedData = tansformer.Transform(data);

            var column = transformedData.GetColumn<float[]>("Features").ToArray();
            foreach (var row in column)
                Console.WriteLine(string.Join(", ", row.Select(x => x.ToString(
                    "f4"))));

            // Expected output:
            // -0.0119, 0.5867, 0.4942,  0.7041
            //  0.4720, 0.5639, 0.4346,  0.2671
            // -0.2243, 0.7071, 0.7053, -0.1681
            //  0.0846, 0.5836, 0.6575,  0.0581
        }

        private class DataPoint
        {
            [VectorType(7)]
            public float[] Features { get; set; }
        }

    }
}

Şunlara uygulanır