DataOperationsCatalog.BootstrapSample 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.
Nehmen Sie ein ungefähres Bootstrap-Beispiel für input
.
public Microsoft.ML.IDataView BootstrapSample (Microsoft.ML.IDataView input, int? seed = default, bool complement = false);
member this.BootstrapSample : Microsoft.ML.IDataView * Nullable<int> * bool -> Microsoft.ML.IDataView
Public Function BootstrapSample (input As IDataView, Optional seed As Nullable(Of Integer) = Nothing, Optional complement As Boolean = false) As IDataView
Parameter
- input
- IDataView
Die Eingabedaten.
Der zufällige Samen. Wenn nicht angegeben, wird stattdessen der zufällige Zustand von der MLContext.
- complement
- Boolean
Gibt an, ob dies das Out-of-Bag-Beispiel ist, also alle Zeilen, die von der Transformation nicht ausgewählt werden. Kann verwendet werden, um ein ergänzendes Paar von Proben mithilfe desselben Samens zu erstellen.
Gibt zurück
Beispiele
using System;
using Microsoft.ML;
namespace Samples.Dynamic
{
public static class BootstrapSample
{
public static void Example()
{
// Create a new context for ML.NET operations. It can be used for
// exception tracking and logging, as a catalog of available operations
// and as the source of randomness.
var mlContext = new MLContext();
// Get a small dataset as an IEnumerable.
var rawData = new[] {
new DataPoint() { Label = true, Feature = 1.017325f},
new DataPoint() { Label = false, Feature = 0.6326591f},
new DataPoint() { Label = false, Feature = 0.0326252f},
new DataPoint() { Label = false, Feature = 0.8426974f},
new DataPoint() { Label = true, Feature = 0.9947656f},
new DataPoint() { Label = true, Feature = 1.017325f},
};
var data = mlContext.Data.LoadFromEnumerable(rawData);
// Now take a bootstrap sample of this dataset to create a new dataset.
// The bootstrap is a resampling technique that creates a training set
// of the same size by picking with replacement from the original
// dataset. With the bootstrap, we expect that the resampled dataset
// will have about 63% of the rows of the original dataset
// (i.e. 1-e^-1), with some rows represented more than once.
// BootstrapSample is a streaming implementation of the boostrap that
// enables sampling from a dataset too large to hold in memory. To
// enable streaming, BootstrapSample approximates the bootstrap by
// sampling each row according to a Poisson(1) distribution. Note that
// this streaming approximation treats each row independently, thus the
// resampled dataset is not guaranteed to be the same length as the
// input dataset. Let's take a look at the behavior of the
// BootstrapSample by examining a few draws:
for (int i = 0; i < 3; i++)
{
var resample = mlContext.Data.BootstrapSample(data, seed: i);
var enumerable = mlContext.Data
.CreateEnumerable<DataPoint>(resample, reuseRowObject: false);
Console.WriteLine($"Label\tFeature");
foreach (var row in enumerable)
{
Console.WriteLine($"{row.Label}\t{row.Feature}");
}
Console.WriteLine();
}
// Expected output:
// Label Feature
// True 1.017325
// False 0.6326591
// False 0.6326591
// False 0.6326591
// False 0.0326252
// False 0.0326252
// True 0.8426974
// True 0.8426974
// Label Feature
// True 1.017325
// True 1.017325
// False 0.6326591
// False 0.6326591
// False 0.0326252
// False 0.0326252
// False 0.0326252
// True 0.9947656
// Label Feature
// False 0.6326591
// False 0.0326252
// True 0.8426974
// True 0.8426974
// True 0.8426974
}
private class DataPoint
{
public bool Label { get; set; }
public float Feature { get; set; }
}
}
}
Hinweise
Dieser Sampler ist eine Streamingversion des Bootstrap-Resamplings. Anstatt das gesamte Dataset in Arbeitsspeicher und Resampling zu nehmen, werden Datenströme über das Dataset übertragen und eine Poisson(1)-Verteilung verwendet, BootstrapSample(IDataView, Nullable<Int32>, Boolean) um die Anzahl der Male auszuwählen, in denen eine bestimmte Zeile dem Beispiel hinzugefügt wird. Der complement
Parameter ermöglicht die Erstellung eines Bootstap-Beispiels und ergänzendes Out-of-Bag-Beispiel mithilfe derselben seed
.