NormalizationCatalog.NormalizeLpNorm Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Create a LpNormNormalizingEstimator, which normalizes (scales) vectors in the input column to the unit norm.
The type of norm that is used is defined by norm
. Setting ensureZeroMean
to true
,
will apply a pre-processing step to make the specified column's mean be a zero vector.
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
Parameters
- catalog
- TransformsCatalog
The transform's catalog.
- outputColumnName
- String
Name of the column resulting from the transformation of inputColumnName
.
This column's data type will be the same as the input column's data type.
- inputColumnName
- String
Name of the column to normalize. If set to null
, the value of the
outputColumnName
will be used as source.
This estimator operates over known-sized vectors of Single.
Type of norm to use to normalize each sample. The indicated norm of the resulting vector will be normalized to one.
- ensureZeroMean
- Boolean
If true
, subtract mean from each value before normalizing and use the raw input otherwise.
Returns
Examples
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; }
}
}
}