DataOperationsCatalog.BootstrapSample Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vezměte přibližnou ukázku input
metody bootstrap .
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
Parametry
- input
- IDataView
Vstupní data.
Náhodné semeno. Pokud není zadáno, bude náhodný stav odvozen z objektu MLContext.
- complement
- Boolean
Jestli se jedná o ukázku typu out-of-bag, to znamená všechny řádky, které nejsou vybrány transformací. Lze použít k vytvoření doplňkové dvojice vzorků pomocí stejného semene.
Návraty
Příklady
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; }
}
}
}
Poznámky
Tento sampler je streamovaná verze převzorkování bootstrap. Místo převzorkování celé datové sady do paměti a převzorkování BootstrapSample(IDataView, Nullable<Int32>, Boolean) datových proudů přes datovou sadu a pomocí distribuce Poisson(1) vyberete, kolikrát se daný řádek přidá do vzorku. Parametr complement
umožňuje vytvoření vzorku bootstap a doplňkového vzorku mimo tašku pomocí stejného seed
.