Поделиться через


NormalizationCatalog.NormalizeLpNorm Метод

Определение

LpNormNormalizingEstimatorСоздайте объект, который нормализует (масштабирует) векторы во входном столбце до нормы единицы. Тип используемой нормы определяется norm. Если задать значение ensureZeroMeantrue, примените шаг предварительной обработки, чтобы среднее значение указанного столбца было нулевым вектором.

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

Параметры

catalog
TransformsCatalog

Каталог преобразования.

outputColumnName
String

Имя столбца, полученного из преобразования inputColumnName. Тип данных этого столбца будет совпадать с типом данных входного столбца.

inputColumnName
String

Имя столбца для нормализации. Если задано значение null, значение этого outputColumnName параметра будет использоваться в качестве источника. Этот оценщик работает над векторами известных размеров Single.

norm
LpNormNormalizingEstimatorBase.NormFunction

Тип нормы, используемой для нормализации каждого образца. Указанная норма результирующего вектора будет нормализована до одной.

ensureZeroMean
Boolean

Если trueзначение вычитается из каждого значения перед нормализацией и использованием необработанных входных данных в противном случае.

Возвращаемое значение

Примеры

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; }
        }
    }
}

Применяется к