NormalizationCatalog.NormalizeMeanVariance Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
NormalizeMeanVariance(TransformsCatalog, InputOutputColumnPair[], Int64, Boolean, Boolean) |
Creare un NormalizingEstimatoroggetto , che normalizza in base alla media calcolata e alla varianza dei dati. |
NormalizeMeanVariance(TransformsCatalog, String, String, Int64, Boolean, Boolean) |
Creare un NormalizingEstimatoroggetto , che normalizza in base alla media calcolata e alla varianza dei dati. |
NormalizeMeanVariance(TransformsCatalog, InputOutputColumnPair[], Int64, Boolean, Boolean)
Creare un NormalizingEstimatoroggetto , che normalizza in base alla media calcolata e alla varianza dei dati.
public static Microsoft.ML.Transforms.NormalizingEstimator NormalizeMeanVariance (this Microsoft.ML.TransformsCatalog catalog, Microsoft.ML.InputOutputColumnPair[] columns, long maximumExampleCount = 1000000000, bool fixZero = true, bool useCdf = false);
static member NormalizeMeanVariance : Microsoft.ML.TransformsCatalog * Microsoft.ML.InputOutputColumnPair[] * int64 * bool * bool -> Microsoft.ML.Transforms.NormalizingEstimator
<Extension()>
Public Function NormalizeMeanVariance (catalog As TransformsCatalog, columns As InputOutputColumnPair(), Optional maximumExampleCount As Long = 1000000000, Optional fixZero As Boolean = true, Optional useCdf As Boolean = false) As NormalizingEstimator
Parametri
- catalog
- TransformsCatalog
Catalogo di trasformazione
- columns
- InputOutputColumnPair[]
Coppie di colonne di input e di output. Le colonne di input devono essere di tipo SingleDouble di dati o un vettore di dimensioni note di tali tipi. Il tipo di dati per la colonna di output sarà uguale alla colonna di input associata.
- maximumExampleCount
- Int64
Numero massimo di esempi usati per eseguire il training del normalizzatore.
- fixZero
- Boolean
Indica se eseguire il mapping di zero a zero, mantenendo la spaziatura.
- useCdf
- Boolean
Indica se usare CDF come output.
Restituisce
Si applica a
NormalizeMeanVariance(TransformsCatalog, String, String, Int64, Boolean, Boolean)
Creare un NormalizingEstimatoroggetto , che normalizza in base alla media calcolata e alla varianza dei dati.
public static Microsoft.ML.Transforms.NormalizingEstimator NormalizeMeanVariance (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName = default, long maximumExampleCount = 1000000000, bool fixZero = true, bool useCdf = false);
static member NormalizeMeanVariance : Microsoft.ML.TransformsCatalog * string * string * int64 * bool * bool -> Microsoft.ML.Transforms.NormalizingEstimator
<Extension()>
Public Function NormalizeMeanVariance (catalog As TransformsCatalog, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional maximumExampleCount As Long = 1000000000, Optional fixZero As Boolean = true, Optional useCdf As Boolean = false) As NormalizingEstimator
Parametri
- catalog
- TransformsCatalog
Catalogo di trasformazione
- outputColumnName
- String
Nome della colonna risultante dalla trasformazione di inputColumnName
.
Il tipo di dati in questa colonna corrisponde alla colonna di input.
- inputColumnName
- String
Nome della colonna da trasformare. Se impostato su null
, il valore di outputColumnName
verrà usato come origine.
Il tipo di dati in questa colonna deve essere Singleo Double un vettore di dimensioni note di tali tipi.
- maximumExampleCount
- Int64
Numero massimo di esempi usati per eseguire il training del normalizzatore.
- fixZero
- Boolean
Indica se eseguire il mapping di zero a zero, mantenendo la spaziatura.
- useCdf
- Boolean
Indica se usare CDF come output.
Restituisce
Esempio
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Microsoft.ML;
using Microsoft.ML.Data;
using static Microsoft.ML.Transforms.NormalizingTransformer;
namespace Samples.Dynamic
{
public class NormalizeMeanVariance
{
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, 3, 0} },
new DataPoint(){ Features = new float[4] { 2, 2, 2, 0} },
new DataPoint(){ Features = new float[4] { 0, 0, 1, 0} },
new DataPoint(){ Features = new float[4] {-1,-1,-1, 1} }
};
// Convert training data to IDataView, the general data type used in
// ML.NET.
var data = mlContext.Data.LoadFromEnumerable(samples);
// NormalizeMeanVariance normalizes the data based on the computed mean
// and variance of the data. Uses Cumulative distribution function as
// output.
var normalize = mlContext.Transforms.NormalizeMeanVariance("Features",
useCdf: true);
// NormalizeMeanVariance normalizes the data based on the computed mean
// and variance of the data.
var normalizeNoCdf = mlContext.Transforms.NormalizeMeanVariance(
"Features", useCdf: false);
// 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 normalizeTransform = normalize.Fit(data);
var transformedData = normalizeTransform.Transform(data);
var normalizeNoCdfTransform = normalizeNoCdf.Fit(data);
var noCdfData = normalizeNoCdfTransform.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.6726, 0.6726, 0.8816, 0.2819
// 0.9101, 0.9101, 0.6939, 0.2819
// 0.3274, 0.3274, 0.4329, 0.2819
// 0.0899, 0.0899, 0.0641, 0.9584
var columnFixZero = noCdfData.GetColumn<float[]>("Features").ToArray();
foreach (var row in columnFixZero)
Console.WriteLine(string.Join(", ", row.Select(x => x.ToString(
"f4"))));
// Expected output:
// 0.8165, 0.8165, 1.5492, 0.0000
// 1.6330, 1.6330, 1.0328, 0.0000
// 0.0000, 0.0000, 0.5164, 0.0000
// -0.8165,-0.8165,-0.5164, 2.0000
// Let's get transformation parameters. Since we work with only one
// column we need to pass 0 as parameter for
// GetNormalizerModelParameters. If we have multiple columns
// transformations we need to pass index of InputOutputColumnPair.
var transformParams = normalizeTransform
.GetNormalizerModelParameters(0) as CdfNormalizerModelParameters<
ImmutableArray<float>>;
Console.WriteLine($"The 1-index value in resulting array would " +
$"be produce by:");
Console.WriteLine(" y = 0.5* (1 + ERF((x- " + transformParams.Mean[1] +
") / (" + transformParams.StandardDeviation[1] + " * sqrt(2)))");
// ERF is https://en.wikipedia.org/wiki/Error_function.
// Expected output:
// The 1-index value in resulting array would be produce by:
// y = 0.5 * (1 + ERF((x - 0.5) / (1.118034 * sqrt(2)))
var noCdfParams = normalizeNoCdfTransform
.GetNormalizerModelParameters(0) as
AffineNormalizerModelParameters<ImmutableArray<float>>;
var offset = noCdfParams.Offset.Length == 0 ? 0 : noCdfParams.Offset[1];
var scale = noCdfParams.Scale[1];
Console.WriteLine($"Values for slot 1 would be transformed by " +
$"applying y = (x - ({offset})) * {scale}");
// Expected output:
// The 1-index value in resulting array would be produce by: y = (x - (0)) * 0.8164966
}
private class DataPoint
{
[VectorType(4)]
public float[] Features { get; set; }
}
}
}