KernelExpansionCatalog.ApproximatedKernelMap Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Utwórz obiekt ApproximatedKernelMappingEstimator , który mapuje wektory wejściowe na przestrzeń cech o niskim wymiarach, w której wewnętrzne produkty są przybliżone do niezmiennej funkcji jądra zmiany.
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
Parametry
- catalog
- TransformsCatalog
Wykaz przekształcenia.
- outputColumnName
- String
Nazwa kolumny wynikającej z przekształcenia elementu inputColumnName
.
Typ danych w tej kolumnie będzie znanym wektorem o rozmiarze Single.
- inputColumnName
- String
Nazwa kolumny do przekształcenia. W przypadku ustawienia wartości null
wartość parametru outputColumnName
będzie używana jako źródło.
Ten narzędzie do szacowania działa na znanym wektorze danych o znanym rozmiarze Single .
- rank
- Int32
Wymiar przestrzeni funkcji do mapowania danych wejściowych.
- useCosAndSinBases
- Boolean
Jeśli true
, użyj obu funkcji cos i sin basis, aby utworzyć dwie cechy dla każdej losowej częstotliwości Fourier. W przeciwnym razie będą używane tylko bazy cos. Należy pamiętać true
, że jeśli ustawiono wartość , wymiar przestrzeni funkcji wyjściowej będzie mieć wartość 2*rank
.
- generator
- KernelBase
Argument wskazujący, które jądro ma być używane. Dwie dostępne implementacje to GaussianKernel i LaplacianKernel.
Inicjator generatora liczb losowych do generowania nowych funkcji (jeśli nieokreślone, jest używany globalny losowy).
Zwraca
Przykłady
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; }
}
}
}