KernelExpansionCatalog.ApproximatedKernelMap Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellen Sie eine ApproximatedKernelMappingEstimator Vektoren, die Eingabevektoren zu einem unterendimensionalen Featureraum ordnet, in dem innere Produkte eine Umschalt-Invariant-Kernelfunktion angibt.
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
Parameter
- catalog
- TransformsCatalog
Der Katalog der Transformation.
- outputColumnName
- String
Name der Spalte, die aus der Transformation von inputColumnName
.
Der Datentyp in dieser Spalte ist ein bekannter Vektor von Single.
- inputColumnName
- String
Name der Spalte, die transformiert werden soll.
null
Wenn festgelegt auf , wird der Wert des outputColumnName
Werts als Quelle verwendet.
Diese Schätzung wird auf dem bekannten Vektor des Single Datentyps ausgeführt.
- rank
- Int32
Die Dimension des Featurebereichs, um die Eingabe zuzuordnen.
- useCosAndSinBases
- Boolean
Wenn true
, verwenden Sie beide Cos- und Sin-Basisfunktionen, um zwei Features für jede zufällige Fourier-Häufigkeit zu erstellen. Andernfalls würden nur Cos-Basen verwendet. Beachten Sie, dass die Dimension des Ausgabefeaturebereichs auf "2*rank
" festgelegt true
ist.
- generator
- KernelBase
Das Argument, das angibt, welchen Kernel verwendet werden soll. Die beiden verfügbaren Implementierungen sind GaussianKernel und LaplacianKernel.
Der Samen des Zufallszahl-Generators zum Generieren der neuen Features (falls nicht angegeben, wird das globale Zufallszeichen verwendet).
Gibt zurück
Beispiele
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; }
}
}
}