NormalizationCatalog.NormalizeMeanVariance Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
NormalizeMeanVariance(TransformsCatalog, InputOutputColumnPair[], Int64, Boolean, Boolean) |
Crie um NormalizingEstimator, que normaliza com base na média computada e na variação dos dados. |
NormalizeMeanVariance(TransformsCatalog, String, String, Int64, Boolean, Boolean) |
Crie um NormalizingEstimator, que normaliza com base na média computada e na variação dos dados. |
NormalizeMeanVariance(TransformsCatalog, InputOutputColumnPair[], Int64, Boolean, Boolean)
Crie um NormalizingEstimator, que normaliza com base na média computada e na variação dos dados.
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
Parâmetros
- catalog
- TransformsCatalog
O catálogo de transformações
- columns
- InputOutputColumnPair[]
Os pares de colunas de entrada e saída. As colunas de entrada devem ser do tipo SingleDouble de dados ou de um vetor de tamanho conhecido desses tipos. O tipo de dados da coluna de saída será o mesmo que a coluna de entrada associada.
- maximumExampleCount
- Int64
Número máximo de exemplos usados para treinar o normalizador.
- fixZero
- Boolean
Se você deve mapear de zero a zero, preservando a moderação.
- useCdf
- Boolean
Se o CDF deve ser usado como saída.
Retornos
Aplica-se a
NormalizeMeanVariance(TransformsCatalog, String, String, Int64, Boolean, Boolean)
Crie um NormalizingEstimator, que normaliza com base na média computada e na variação dos dados.
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
Parâmetros
- catalog
- TransformsCatalog
O catálogo de transformações
- outputColumnName
- String
Nome da coluna resultante da transformação de inputColumnName
.
O tipo de dados nesta coluna é o mesmo que a coluna de entrada.
- inputColumnName
- String
Nome da coluna a ser transformada. Se definido como null
, o valor do outputColumnName
será usado como origem.
O tipo de dados nesta coluna deve ser Single, Double ou um vetor de tamanho conhecido desses tipos.
- maximumExampleCount
- Int64
Número máximo de exemplos usados para treinar o normalizador.
- fixZero
- Boolean
Se você deve mapear de zero a zero, preservando a moderação.
- useCdf
- Boolean
Se o CDF deve ser usado como saída.
Retornos
Exemplos
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; }
}
}
}