CategoricalCatalog.OneHotEncoding Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| OneHotEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView) |
Erstellen Sie einen OneHotEncodingEstimator, der eine oder mehrere Eingabetextspalten konvertiert, die in |
| OneHotEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView) |
Erstellen Sie eine OneHotEncodingEstimator, die die Eingabespalte konvertiert, die durch |
OneHotEncoding(TransformsCatalog+CategoricalTransforms, InputOutputColumnPair[], OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView)
- Quelle:
- CategoricalCatalog.cs
- Quelle:
- CategoricalCatalog.cs
- Quelle:
- CategoricalCatalog.cs
Erstellen Sie einen OneHotEncodingEstimator, der eine oder mehrere Eingabetextspalten konvertiert, die in columns so vielen Spalten mit einem einzigen codierten Vektor angegeben sind.
public static Microsoft.ML.Transforms.OneHotEncodingEstimator OneHotEncoding(this Microsoft.ML.TransformsCatalog.CategoricalTransforms catalog, Microsoft.ML.InputOutputColumnPair[] columns, Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind outputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, int maximumNumberOfKeys = 1000000, Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality keyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Microsoft.ML.IDataView keyData = default);
static member OneHotEncoding : Microsoft.ML.TransformsCatalog.CategoricalTransforms * Microsoft.ML.InputOutputColumnPair[] * Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind * int * Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality * Microsoft.ML.IDataView -> Microsoft.ML.Transforms.OneHotEncodingEstimator
<Extension()>
Public Function OneHotEncoding (catalog As TransformsCatalog.CategoricalTransforms, columns As InputOutputColumnPair(), Optional outputKind As OneHotEncodingEstimator.OutputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, Optional maximumNumberOfKeys As Integer = 1000000, Optional keyOrdinality As ValueToKeyMappingEstimator.KeyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Optional keyData As IDataView = Nothing) As OneHotEncodingEstimator
Parameter
Der Transformationskatalog.
- columns
- InputOutputColumnPair[]
Die Paare von Eingabe- und Ausgabespalten. Der Datentyp der Ausgabespalten ist ein Vektor von Single if outputKind is Bag, Indicatorund Binary.
Wenn outputKind dies der Fall ist Key, ist der Datentyp der Ausgabespalten ein Schlüssel im Fall einer skalaren Eingabespalte oder eines Schlüsselvektors im Fall einer Vektoreingabespalte.
- outputKind
- OneHotEncodingEstimator.OutputKind
Ausgabetyp: Bag (Multi-Set-Vektor), Ind (Indikatorvektor), Schlüssel (Index) oder Binärer codierter Indikatorvektor.
- maximumNumberOfKeys
- Int32
Maximale Anzahl von Ausdrücken, die bei der automatischen Schulung pro Spalte beibehalten werden sollen.
- keyOrdinality
- ValueToKeyMappingEstimator.KeyOrdinality
Wie Elemente beim Vektorisieren sortiert werden sollen. Wenn ByOccurrence sie ausgewählt werden, sind sie in der Reihenfolge aufgetreten. Wenn ByValueElemente nach ihrem Standardvergleich sortiert werden, wird z. B. bei der Textsortierung die Groß-/Kleinschreibung beachtet (z. B. "A" und dann "Z" und dann "a").
- keyData
- IDataView
Gibt eine Reihenfolge für die Codierung an. Wenn angegeben, sollte dies eine einzelne Spaltendatenansicht sein, und die Schlüsselwerte werden aus dieser Spalte entnommen. Wenn nicht angegeben, wird die Sortierung bei Bedarf aus den Eingabedaten bestimmt.
Gibt zurück
Beispiele
using System;
using Microsoft.ML;
namespace Samples.Dynamic.Transforms.Categorical
{
public static class OneHotEncodingMultiColumn
{
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();
// Create a small dataset as an IEnumerable.
var samples = new[]
{
new DataPoint {Education = "0-5yrs", ZipCode = "98005"},
new DataPoint {Education = "0-5yrs", ZipCode = "98052"},
new DataPoint {Education = "6-11yrs", ZipCode = "98005"},
new DataPoint {Education = "6-11yrs", ZipCode = "98052"},
new DataPoint {Education = "11-15yrs", ZipCode = "98005"}
};
// Convert training data to IDataView.
IDataView data = mlContext.Data.LoadFromEnumerable(samples);
// Multi column example: A pipeline for one hot encoding two columns
// 'Education' and 'ZipCode'.
var multiColumnKeyPipeline =
mlContext.Transforms.Categorical.OneHotEncoding(
new[]
{
new InputOutputColumnPair("Education"),
new InputOutputColumnPair("ZipCode")
});
// Fit and Transform data.
IDataView transformedData =
multiColumnKeyPipeline.Fit(data).Transform(data);
var convertedData =
mlContext.Data.CreateEnumerable<TransformedData>(transformedData,
true);
Console.WriteLine(
"One Hot Encoding of two columns 'Education' and 'ZipCode'.");
// One Hot Encoding of two columns 'Education' and 'ZipCode'.
foreach (TransformedData item in convertedData)
Console.WriteLine("{0}\t\t\t{1}", string.Join(" ", item.Education),
string.Join(" ", item.ZipCode));
// 1 0 0 1 0
// 1 0 0 0 1
// 0 1 0 1 0
// 0 1 0 0 1
// 0 0 1 1 0
}
private class DataPoint
{
public string Education { get; set; }
public string ZipCode { get; set; }
}
private class TransformedData
{
public float[] Education { get; set; }
public float[] ZipCode { get; set; }
}
}
}
Hinweise
Wenn mehrere Spalten an die Schätzung übergeben werden, werden alle Spalten in einem einzigen Durchlauf über die Daten verarbeitet. Daher ist es effizienter, einen Schätzer mit vielen Spalten anzugeben, als viele Schätzzeichen mit einer einzelnen Spalte anzugeben.
Gilt für:
OneHotEncoding(TransformsCatalog+CategoricalTransforms, String, String, OneHotEncodingEstimator+OutputKind, Int32, ValueToKeyMappingEstimator+KeyOrdinality, IDataView)
- Quelle:
- CategoricalCatalog.cs
- Quelle:
- CategoricalCatalog.cs
- Quelle:
- CategoricalCatalog.cs
Erstellen Sie eine OneHotEncodingEstimator, die die Eingabespalte konvertiert, die durch inputColumnName eine Spalte mit 1-hot-codierten Vektoren mit dem Namen angegeben outputColumnNamewird.
public static Microsoft.ML.Transforms.OneHotEncodingEstimator OneHotEncoding(this Microsoft.ML.TransformsCatalog.CategoricalTransforms catalog, string outputColumnName, string inputColumnName = default, Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind outputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, int maximumNumberOfKeys = 1000000, Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality keyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Microsoft.ML.IDataView keyData = default);
static member OneHotEncoding : Microsoft.ML.TransformsCatalog.CategoricalTransforms * string * string * Microsoft.ML.Transforms.OneHotEncodingEstimator.OutputKind * int * Microsoft.ML.Transforms.ValueToKeyMappingEstimator.KeyOrdinality * Microsoft.ML.IDataView -> Microsoft.ML.Transforms.OneHotEncodingEstimator
<Extension()>
Public Function OneHotEncoding (catalog As TransformsCatalog.CategoricalTransforms, outputColumnName As String, Optional inputColumnName As String = Nothing, Optional outputKind As OneHotEncodingEstimator.OutputKind = Microsoft.ML.Transforms.OneHotEncodingEstimator+OutputKind.Indicator, Optional maximumNumberOfKeys As Integer = 1000000, Optional keyOrdinality As ValueToKeyMappingEstimator.KeyOrdinality = Microsoft.ML.Transforms.ValueToKeyMappingEstimator+KeyOrdinality.ByOccurrence, Optional keyData As IDataView = Nothing) As OneHotEncodingEstimator
Parameter
Der Transformationskatalog.
- outputColumnName
- String
Name der Spalte, die sich aus der Transformation von inputColumnName.
Der Datentyp dieser Spalte ist ein Vektor von Single if outputKind is Bag, Indicatorund Binary.
Wenn outputKind dies der Fall ist Key, ist der Datentyp dieser Spalte ein Schlüssel im Falle einer skalaren Eingabespalte oder eines Schlüsselvektors im Falle einer Vektoreingabespalte.
- inputColumnName
- String
Der Name der Spalte, die in Vektoren konvertiert werden soll. Bei Festlegung auf null, wird der Wert des Werts outputColumnName als Quelle verwendet. Der Datentyp dieser Spalte kann skalar oder Vektor numerischer, Text, DateTime boolescher Oder DateTimeOffset,
- outputKind
- OneHotEncodingEstimator.OutputKind
Ausgabetyp: Bag (Multi-Set-Vektor), Indikator (Indikatorvektor), Schlüssel (Index) oder Binärer codierter Indikatorvektor.
- maximumNumberOfKeys
- Int32
Maximale Anzahl von Ausdrücken, die bei der automatischen Schulung pro Spalte beibehalten werden sollen.
- keyOrdinality
- ValueToKeyMappingEstimator.KeyOrdinality
Wie Elemente beim Vektorisieren sortiert werden sollen. Wenn ByOccurrence sie ausgewählt werden, sind sie in der Reihenfolge aufgetreten. Wenn ByValueElemente nach ihrem Standardvergleich sortiert werden, wird z. B. bei der Textsortierung die Groß-/Kleinschreibung beachtet (z. B. "A" und dann "Z" und dann "a").
- keyData
- IDataView
Gibt eine Reihenfolge für die Codierung an. Wenn angegeben, sollte dies eine einzelne Spaltendatenansicht sein, und die Schlüsselwerte werden aus dieser Spalte entnommen. Wenn nicht angegeben, wird die Sortierung bei Bedarf aus den Eingabedaten bestimmt.
Gibt zurück
Beispiele
using System;
using Microsoft.ML;
using Microsoft.ML.Data;
using Microsoft.ML.Transforms;
namespace Samples.Dynamic.Transforms.Categorical
{
public static class OneHotEncoding
{
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();
// Create a small dataset as an IEnumerable.
var samples = new[]
{
new DataPoint {Education = "0-5yrs"},
new DataPoint {Education = "0-5yrs"},
new DataPoint {Education = "6-11yrs"},
new DataPoint {Education = "6-11yrs"},
new DataPoint {Education = "11-15yrs"}
};
// Convert training data to IDataView.
IDataView data = mlContext.Data.LoadFromEnumerable(samples);
// A pipeline for one hot encoding the Education column.
var pipeline = mlContext.Transforms.Categorical.OneHotEncoding(
"EducationOneHotEncoded", "Education");
// Fit and transform the data.
IDataView oneHotEncodedData = pipeline.Fit(data).Transform(data);
PrintDataColumn(oneHotEncodedData, "EducationOneHotEncoded");
// We have 3 slots because there are three categories in the
// 'Education' column.
// 1 0 0
// 1 0 0
// 0 1 0
// 0 1 0
// 0 0 1
// A pipeline for one hot encoding the Education column (using keying).
var keyPipeline = mlContext.Transforms.Categorical.OneHotEncoding(
"EducationOneHotEncoded", "Education",
OneHotEncodingEstimator.OutputKind.Key);
// Fit and Transform data.
oneHotEncodedData = keyPipeline.Fit(data).Transform(data);
var keyEncodedColumn =
oneHotEncodedData.GetColumn<uint>("EducationOneHotEncoded");
Console.WriteLine(
"One Hot Encoding of single column 'Education', with key type " +
"output.");
// One Hot Encoding of single column 'Education', with key type output.
foreach (uint element in keyEncodedColumn)
Console.WriteLine(element);
// 1
// 1
// 2
// 2
// 3
}
private static void PrintDataColumn(IDataView transformedData,
string columnName)
{
var countSelectColumn = transformedData.GetColumn<float[]>(
transformedData.Schema[columnName]);
foreach (var row in countSelectColumn)
{
for (var i = 0; i < row.Length; i++)
Console.Write($"{row[i]}\t");
Console.WriteLine();
}
}
private class DataPoint
{
public string Education { get; set; }
}
}
}