ExtensionsCatalog.ReplaceMissingValues Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
ReplaceMissingValues(TransformsCatalog, InputOutputColumnPair[], MissingValueReplacingEstimator+ReplacementMode, Boolean) |
Buat ColumnCopyingEstimator, yang menyalin data dari kolom yang ditentukan InputColumnName ke kolom baru: OutputColumnName dan mengganti nilai yang hilang di dalamnya sesuai dengan |
ReplaceMissingValues(TransformsCatalog, String, String, MissingValueReplacingEstimator+ReplacementMode, Boolean) |
Buat MissingValueReplacingEstimator, yang menyalin data dari kolom yang ditentukan |
ReplaceMissingValues(TransformsCatalog, InputOutputColumnPair[], MissingValueReplacingEstimator+ReplacementMode, Boolean)
Buat ColumnCopyingEstimator, yang menyalin data dari kolom yang ditentukan InputColumnName ke kolom baru: OutputColumnName dan mengganti nilai yang hilang di dalamnya sesuai dengan replacementMode
.
public static Microsoft.ML.Transforms.MissingValueReplacingEstimator ReplaceMissingValues (this Microsoft.ML.TransformsCatalog catalog, Microsoft.ML.InputOutputColumnPair[] columns, Microsoft.ML.Transforms.MissingValueReplacingEstimator.ReplacementMode replacementMode = Microsoft.ML.Transforms.MissingValueReplacingEstimator+ReplacementMode.DefaultValue, bool imputeBySlot = true);
static member ReplaceMissingValues : Microsoft.ML.TransformsCatalog * Microsoft.ML.InputOutputColumnPair[] * Microsoft.ML.Transforms.MissingValueReplacingEstimator.ReplacementMode * bool -> Microsoft.ML.Transforms.MissingValueReplacingEstimator
<Extension()>
Public Function ReplaceMissingValues (catalog As TransformsCatalog, columns As InputOutputColumnPair(), Optional replacementMode As MissingValueReplacingEstimator.ReplacementMode = Microsoft.ML.Transforms.MissingValueReplacingEstimator+ReplacementMode.DefaultValue, Optional imputeBySlot As Boolean = true) As MissingValueReplacingEstimator
Parameter
- catalog
- TransformsCatalog
Katalog transformasi.
- columns
- InputOutputColumnPair[]
Pasangan kolom input dan output. Estimator ini beroperasi melalui skalar atau vektor float atau ganda.
- replacementMode
- MissingValueReplacingEstimator.ReplacementMode
Jenis penggantian yang akan digunakan seperti yang ditentukan dalam MissingValueReplacingEstimator.ReplacementMode
- imputeBySlot
- Boolean
Jika true
, imputasi per slot penggantian dilakukan.
Jika tidak, nilai penggantian diimputasikan untuk seluruh kolom vektor. Pengaturan ini diabaikan untuk skalar dan vektor variabel, di mana imputasi selalu untuk seluruh kolom.
Mengembalikan
Contoh
using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;
using Microsoft.ML.Transforms;
namespace Samples.Dynamic
{
class ReplaceMissingValuesMultiColumn
{
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();
// Get a small dataset as an IEnumerable and convert it to an IDataView.
var samples = new List<DataPoint>()
{
new DataPoint(){ Features1 = new float[3] {1, 1, 0}, Features2 =
new float[2] {1, 1} },
new DataPoint(){ Features1 = new float[3] {0, float.NaN, 1},
Features2 = new float[2] {0, 1} },
new DataPoint(){ Features1 = new float[3] {-1, float.NaN, -3},
Features2 = new float[2] {-1, float.NaN} },
new DataPoint(){ Features1 = new float[3] {-1, 6, -3}, Features2 =
new float[2] {0, float.PositiveInfinity} },
};
var data = mlContext.Data.LoadFromEnumerable(samples);
// Here we use the default replacement mode, which replaces the value
// with the default value for its type.
var defaultPipeline = mlContext.Transforms.ReplaceMissingValues(new[] {
new InputOutputColumnPair("MissingReplaced1", "Features1"),
new InputOutputColumnPair("MissingReplaced2", "Features2")
},
MissingValueReplacingEstimator.ReplacementMode.DefaultValue);
// 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 defaultTransformer = defaultPipeline.Fit(data);
var defaultTransformedData = defaultTransformer.Transform(data);
// We can extract the newly created column as an IEnumerable of
// SampleDataTransformed, the class we define below.
var defaultRowEnumerable = mlContext.Data.CreateEnumerable<
SampleDataTransformed>(defaultTransformedData, reuseRowObject:
false);
// And finally, we can write out the rows of the dataset, looking at the
// columns of interest.
foreach (var row in defaultRowEnumerable)
Console.WriteLine("Features1: [" + string.Join(", ", row
.Features1) + "]\t MissingReplaced1: [" + string.Join(", ", row
.MissingReplaced1) + "]\t Features2: [" + string.Join(", ", row
.Features2) + "]\t MissingReplaced2: [" + string.Join(", ", row
.MissingReplaced2) + "]");
// Expected output:
// Features1: [1, 1, 0] MissingReplaced1: [1, 1, 0] Features2: [1, 1] MissingReplaced2: [1, 1]
// Features1: [0, NaN, 1] MissingReplaced1: [0, 0, 1] Features2: [0, 1] MissingReplaced2: [0, 1]
// Features1: [-1, NaN, -3] MissingReplaced1: [-1, 0, -3] Features2: [-1, NaN] MissingReplaced2: [-1, 0]
// Features1: [-1, 6, -3] MissingReplaced1: [-1, 6, -3] Features2: [0, ∞] MissingReplaced2: [0, ∞]
// Here we use the mean replacement mode, which replaces the value with
// the mean of the non values that were not missing.
var meanPipeline = mlContext.Transforms.ReplaceMissingValues(new[] {
new InputOutputColumnPair("MissingReplaced1", "Features1"),
new InputOutputColumnPair("MissingReplaced2", "Features2")
},
MissingValueReplacingEstimator.ReplacementMode.Mean);
// 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 meanTransformer = meanPipeline.Fit(data);
var meanTransformedData = meanTransformer.Transform(data);
// We can extract the newly created column as an IEnumerable of
// SampleDataTransformed, the class we define below.
var meanRowEnumerable = mlContext.Data.CreateEnumerable<
SampleDataTransformed>(meanTransformedData, reuseRowObject: false);
// And finally, we can write out the rows of the dataset, looking at the
// columns of interest.
foreach (var row in meanRowEnumerable)
Console.WriteLine("Features1: [" + string.Join(", ", row
.Features1) + "]\t MissingReplaced1: [" + string.Join(", ", row
.MissingReplaced1) + "]\t Features2: [" + string.Join(", ", row
.Features2) + "]\t MissingReplaced2: [" + string.Join(", ", row
.MissingReplaced2) + "]");
// Expected output:
// Features1: [1, 1, 0] MissingReplaced1: [1, 1, 0] Features2: [1, 1] MissingReplaced2: [1, 1]
// Features1: [0, NaN, 1] MissingReplaced1: [0, 3.5, 1] Features2: [0, 1] MissingReplaced2: [0, 1]
// Features1: [-1, NaN, -3] MissingReplaced1: [-1, 3.5, -3] Features2: [-1, NaN] MissingReplaced2: [-1, 1]
// Features1: [-1, 6, -3] MissingReplaced1: [-1, 6, -3] Features2: [0, ∞] MissingReplaced2: [0, ∞]
}
private class DataPoint
{
[VectorType(3)]
public float[] Features1 { get; set; }
[VectorType(2)]
public float[] Features2 { get; set; }
}
private sealed class SampleDataTransformed : DataPoint
{
[VectorType(3)]
public float[] MissingReplaced1 { get; set; }
[VectorType(2)]
public float[] MissingReplaced2 { get; set; }
}
}
}
Keterangan
Transformasi ini dapat beroperasi di beberapa kolom.
Berlaku untuk
ReplaceMissingValues(TransformsCatalog, String, String, MissingValueReplacingEstimator+ReplacementMode, Boolean)
Buat MissingValueReplacingEstimator, yang menyalin data dari kolom yang ditentukan inputColumnName
ke kolom baru: outputColumnName
dan mengganti nilai yang hilang di dalamnya sesuai dengan replacementMode
.
public static Microsoft.ML.Transforms.MissingValueReplacingEstimator ReplaceMissingValues (this Microsoft.ML.TransformsCatalog catalog, string outputColumnName, string inputColumnName = default, Microsoft.ML.Transforms.MissingValueReplacingEstimator.ReplacementMode replacementMode = Microsoft.ML.Transforms.MissingValueReplacingEstimator+ReplacementMode.DefaultValue, bool imputeBySlot = true);
static member ReplaceMissingValues : Microsoft.ML.TransformsCatalog * string * string * Microsoft.ML.Transforms.MissingValueReplacingEstimator.ReplacementMode * bool -> Microsoft.ML.Transforms.MissingValueReplacingEstimator
<Extension()>
Public Function ReplaceMissingValues (catalog As TransformsCatalog, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional replacementMode As MissingValueReplacingEstimator.ReplacementMode = Microsoft.ML.Transforms.MissingValueReplacingEstimator+ReplacementMode.DefaultValue, Optional imputeBySlot As Boolean = true) As MissingValueReplacingEstimator
Parameter
- catalog
- TransformsCatalog
Katalog transformasi.
- outputColumnName
- String
Nama kolom yang dihasilkan dari transformasi inputColumnName
.
Jenis data kolom ini akan sama dengan kolom input.
- inputColumnName
- String
Nama kolom untuk menyalin data. Estimator ini beroperasi melalui skalar atau vektor Single atau Double.
- replacementMode
- MissingValueReplacingEstimator.ReplacementMode
Jenis penggantian yang akan digunakan seperti yang ditentukan dalam MissingValueReplacingEstimator.ReplacementMode
- imputeBySlot
- Boolean
Jika true, imputasi per slot penggantian dilakukan. Jika tidak, nilai penggantian diimputasikan untuk seluruh kolom vektor. Pengaturan ini diabaikan untuk skalar dan vektor variabel, di mana imputasi selalu untuk seluruh kolom.
Mengembalikan
Contoh
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.ML;
using Microsoft.ML.Data;
using Microsoft.ML.Transforms;
namespace Samples.Dynamic
{
class ReplaceMissingValues
{
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();
// Get a small dataset as an IEnumerable and convert it to an IDataView.
var samples = new List<DataPoint>()
{
new DataPoint(){ Features = new float[3] {float.PositiveInfinity, 1,
0 } },
new DataPoint(){ Features = new float[3] {0, float.NaN, 1} },
new DataPoint(){ Features = new float[3] {-1, 2, -3} },
new DataPoint(){ Features = new float[3] {-1, float.NaN, -3} },
};
var data = mlContext.Data.LoadFromEnumerable(samples);
// Here we use the default replacement mode, which replaces the value
// with the default value for its type.
var defaultPipeline = mlContext.Transforms.ReplaceMissingValues(
"MissingReplaced", "Features", MissingValueReplacingEstimator
.ReplacementMode.DefaultValue);
// 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 defaultTransformer = defaultPipeline.Fit(data);
var defaultTransformedData = defaultTransformer.Transform(data);
// We can extract the newly created column as an IEnumerable of
// SampleDataTransformed, the class we define below.
var defaultRowEnumerable = mlContext.Data.CreateEnumerable<
SampleDataTransformed>(defaultTransformedData, reuseRowObject:
false);
// And finally, we can write out the rows of the dataset, looking at the
// columns of interest.
foreach (var row in defaultRowEnumerable)
Console.WriteLine("Features: [" + string.Join(", ", row.Features) +
"]\t MissingReplaced: [" + string.Join(", ", row
.MissingReplaced) + "]");
// Expected output:
// Features: [∞, 1, 0] MissingReplaced: [∞, 1, 0]
// Features: [0, NaN, 1] MissingReplaced: [0, 0, 1]
// Features: [-1, 2, -3] MissingReplaced: [-1, 2, -3]
// Features: [-1, NaN, -3] MissingReplaced: [-1, 0, -3]
// Here we use the mean replacement mode, which replaces the value with
// the mean of the non values that were not missing.
var meanPipeline = mlContext.Transforms.ReplaceMissingValues(
"MissingReplaced", "Features", MissingValueReplacingEstimator
.ReplacementMode.Mean);
// 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 meanTransformer = meanPipeline.Fit(data);
var meanTransformedData = meanTransformer.Transform(data);
// We can extract the newly created column as an IEnumerable of
// SampleDataTransformed, the class we define below.
var meanRowEnumerable = mlContext.Data.CreateEnumerable<
SampleDataTransformed>(meanTransformedData, reuseRowObject: false);
// And finally, we can write out the rows of the dataset, looking at the
// columns of interest.
foreach (var row in meanRowEnumerable)
Console.WriteLine("Features: [" + string.Join(", ", row.Features) +
"]\t MissingReplaced: [" + string.Join(", ", row
.MissingReplaced) + "]");
// Expected output:
// Features: [∞, 1, 0] MissingReplaced: [∞, 1, 0]
// Features: [0, NaN, 1] MissingReplaced: [0, 1.5, 1]
// Features: [-1, 2, -3] MissingReplaced: [-1, 2, -3]
// Features: [-1, NaN, -3] MissingReplaced: [-1, 1.5, -3]
}
private class DataPoint
{
[VectorType(3)]
public float[] Features { get; set; }
}
private sealed class SampleDataTransformed : DataPoint
{
[VectorType(3)]
public float[] MissingReplaced { get; set; }
}
}
}