NormalizationCatalog.NormalizeLpNorm Metodo

Definizione

Creare un LpNormNormalizingEstimatoroggetto , che normalizza i vettori (scale) nella colonna di input alla norma dell'unità. Il tipo di norma utilizzato è definito da norm. Se si imposta ensureZeroMean su true, verrà applicato un passaggio di pre-elaborazione per fare in modo che la media della colonna specificata sia un vettore zero.

public static Microsoft.ML.Transforms.LpNormNormalizingEstimator NormalizeLpNorm(this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName = default, Microsoft.ML.Transforms.LpNormNormalizingEstimatorBase.NormFunction norm = Microsoft.ML.Transforms.LpNormNormalizingEstimatorBase+NormFunction.L2, bool ensureZeroMean = false);
static member NormalizeLpNorm : Microsoft.ML.TransformsCatalog * string * string * Microsoft.ML.Transforms.LpNormNormalizingEstimatorBase.NormFunction * bool -> Microsoft.ML.Transforms.LpNormNormalizingEstimator
<Extension()>
Public Function NormalizeLpNorm (catalog As TransformsCatalog, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional norm As LpNormNormalizingEstimatorBase.NormFunction = Microsoft.ML.Transforms.LpNormNormalizingEstimatorBase+NormFunction.L2, Optional ensureZeroMean As Boolean = false) As LpNormNormalizingEstimator

Parametri

catalog
TransformsCatalog

Catalogo della trasformazione.

outputColumnName
String

Nome della colonna risultante dalla trasformazione di inputColumnName. Il tipo di dati di questa colonna sarà uguale al tipo di dati della colonna di input.

inputColumnName
String

Nome della colonna da normalizzare. Se impostato su null, il valore di outputColumnName verrà usato come origine. Questo strumento di stima opera su vettori di dimensioni note di Single.

norm
LpNormNormalizingEstimatorBase.NormFunction

Tipo di norma da usare per normalizzare ogni campione. La norma indicata del vettore risultante verrà normalizzata in uno.

ensureZeroMean
Boolean

Se true, sottrarre la media da ogni valore prima di normalizzare e usare l'input non elaborato in caso contrario.

Valori restituiti

Esempio

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

namespace Samples.Dynamic
{
    class NormalizeLpNorm
    {
        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[4] { 1, 1, 0, 0} },
                new DataPoint(){ Features = new float[4] { 2, 2, 0, 0} },
                new DataPoint(){ Features = new float[4] { 1, 0, 1, 0} },
                new DataPoint(){ Features = new float[4] { 0, 1, 0, 1} }
            };
            // Convert training data to IDataView, the general data type used in
            // ML.NET.
            var data = mlContext.Data.LoadFromEnumerable(samples);
            var approximation = mlContext.Transforms.NormalizeLpNorm("Features",
                norm: LpNormNormalizingEstimatorBase.NormFunction.L1,
                ensureZeroMean: true);

            // 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.2500,  0.2500, -0.2500, -0.2500
            //  0.2500,  0.2500, -0.2500, -0.2500
            //  0.2500, -0.2500,  0.2500, -0.2500
            // -0.2500,  0.2500, -0.2500,  0.2500
        }

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

Si applica a