Note
Access to this page requires authorization. You can try signing in or .
Access to this page requires authorization. You can try .
ConversionsCatalog.MapKeyToBinaryVector Method
Definition
- Namespace:
- Microsoft.ML
- Assembly:
- Microsoft.ML.Transforms.dll
- Package:
- Microsoft.ML v4.0.1
- Package:
- Microsoft.ML v1.0.0
- Package:
- Microsoft.ML v1.1.0
- Package:
- Microsoft.ML v1.2.0
- Package:
- Microsoft.ML v1.3.1
- Package:
- Microsoft.ML v1.4.0
- Package:
- Microsoft.ML v1.5.5
- Package:
- Microsoft.ML v1.6.0
- Package:
- Microsoft.ML v1.7.0
- Package:
- Microsoft.ML v2.0.1
- Package:
- Microsoft.ML v3.0.1
- Package:
- Microsoft.ML v5.0.0-preview.1.25125.4
- Source:
- ConversionsCatalog.cs
- Source:
- ConversionsCatalog.cs
- Source:
- ConversionsCatalog.cs
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 KeyToBinaryVectorMappingEstimator, which converts key types to their corresponding binary representation of the original value.
public static Microsoft.ML.Transforms.KeyToBinaryVectorMappingEstimator MapKeyToBinaryVector(this Microsoft.ML.TransformsCatalog.ConversionTransforms catalog, string outputColumnName, string inputColumnName = default);
static member MapKeyToBinaryVector : Microsoft.ML.TransformsCatalog.ConversionTransforms * string * string -> Microsoft.ML.Transforms.KeyToBinaryVectorMappingEstimator
<Extension()>
Public Function MapKeyToBinaryVector (catalog As TransformsCatalog.ConversionTransforms, outputColumnName As String, Optional inputColumnName As String = Nothing) As KeyToBinaryVectorMappingEstimator
Parameters
The categorical transform's catalog.
- outputColumnName
- String
Name of the column resulting from the transformation of inputColumnName.
The data type is a known-size vector of Single representing the input value.
- inputColumnName
- String
Name of column to transform. If set to null, the value of the outputColumnName will be used as source.
The data type is a key or a known-size vector of keys.
Returns
Examples
using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;
namespace Samples.Dynamic
{
class MapKeyToBinaryVector
{
/// This example demonstrates the use of MapKeyToVector by mapping keys to
/// floats[] of 0 and 1, representing the number in binary format.
/// Because the ML.NET KeyType maps the missing value to zero, counting
/// starts at 1, so the uint values converted to KeyTypes will appear
/// skewed by one.
/// See https://github.com/dotnet/machinelearning/blob/main/docs/code/IDataViewTypeSystem.md#key-types
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.
var rawData = new[] {
new DataPoint() { Timeframe = 9 },
new DataPoint() { Timeframe = 8 },
new DataPoint() { Timeframe = 8 },
new DataPoint() { Timeframe = 9 },
new DataPoint() { Timeframe = 2 },
new DataPoint() { Timeframe = 3 }
};
var data = mlContext.Data.LoadFromEnumerable(rawData);
// Constructs the ML.net pipeline
var pipeline = mlContext.Transforms.Conversion.MapKeyToBinaryVector(
"TimeframeVector", "Timeframe");
// Fits the pipeline to the data.
IDataView transformedData = pipeline.Fit(data).Transform(data);
// Getting the resulting data as an IEnumerable.
// This will contain the newly created columns.
IEnumerable<TransformedData> features = mlContext.Data.CreateEnumerable<
TransformedData>(transformedData, reuseRowObject: false);
Console.WriteLine($" Timeframe TimeframeVector");
foreach (var featureRow in features)
Console.WriteLine($"{featureRow.Timeframe}\t\t\t" +
$"{string.Join(',', featureRow.TimeframeVector)}");
// Timeframe TimeframeVector
// 10 0,1,0,0,1 //binary representation of 9, the original value
// 9 0,1,0,0,0 //binary representation of 8, the original value
// 9 0,1,0,0,0
// 10 0,1,0,0,1
// 3 0,0,0,1,0
// 4 0,0,0,1,1
}
private class DataPoint
{
[KeyType(10)]
public uint Timeframe { get; set; }
}
private class TransformedData : DataPoint
{
public float[] TimeframeVector { get; set; }
}
}
}
