DataOperationsCatalog.ShuffleRows 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í.
Shuffle řádky .input
public Microsoft.ML.IDataView ShuffleRows (Microsoft.ML.IDataView input, int? seed = default, int shufflePoolSize = 1000, bool shuffleSource = true);
member this.ShuffleRows : Microsoft.ML.IDataView * Nullable<int> * int * bool -> Microsoft.ML.IDataView
Public Function ShuffleRows (input As IDataView, Optional seed As Nullable(Of Integer) = Nothing, Optional shufflePoolSize As Integer = 1000, Optional shuffleSource As Boolean = true) As IDataView
Parametry
- input
- IDataView
Vstupní data.
Náhodné počáteční. Pokud není zadáno, náhodný stav bude místo toho odvozen z MLContext.
- shufflePoolSize
- Int32
Početřádkůch Nastavení na 1 vypne shuffling fondu a ShuffleRows(IDataView, Nullable<Int32>, Int32, Boolean) provede jen náhodné přehazování input
.
- shuffleSource
- Boolean
Pokud false
se transformace nepokusí číst input
v náhodném pořadí a použije ke shuffingu pouze sdružování. Tento parametr nemá žádný vliv, pokud CanShuffle je vlastnost .false
input
Návraty
Příklady
using System;
using System.Collections.Generic;
using Microsoft.ML;
namespace Samples.Dynamic
{
public static class ShuffleRows
{
// Sample class showing how to shuffle rows in
// IDataView.
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 enumerableOfData = GetSampleTemperatureData(5);
var data = mlContext.Data.LoadFromEnumerable(enumerableOfData);
// Before we apply a filter, examine all the records in the dataset.
Console.WriteLine($"Date\tTemperature");
foreach (var row in enumerableOfData)
{
Console.WriteLine($"{row.Date.ToString("d")}" +
$"\t{row.Temperature}");
}
Console.WriteLine();
// Expected output:
// Date Temperature
// 1/2/2012 36
// 1/3/2012 36
// 1/4/2012 34
// 1/5/2012 35
// 1/6/2012 35
// Shuffle the dataset.
var shuffledData = mlContext.Data.ShuffleRows(data, seed: 123);
// Look at the shuffled data and observe that the rows are in a
// randomized order.
var enumerable = mlContext.Data
.CreateEnumerable<SampleTemperatureData>(shuffledData,
reuseRowObject: true);
Console.WriteLine($"Date\tTemperature");
foreach (var row in enumerable)
{
Console.WriteLine($"{row.Date.ToString("d")}" +
$"\t{row.Temperature}");
}
// Expected output:
// Date Temperature
// 1/4/2012 34
// 1/2/2012 36
// 1/5/2012 35
// 1/3/2012 36
// 1/6/2012 35
}
private class SampleTemperatureData
{
public DateTime Date { get; set; }
public float Temperature { get; set; }
}
/// <summary>
/// Get a fake temperature dataset.
/// </summary>
/// <param name="exampleCount">The number of examples to return.</param>
/// <returns>An enumerable of <see cref="SampleTemperatureData"/>.</returns>
private static IEnumerable<SampleTemperatureData> GetSampleTemperatureData(
int exampleCount)
{
var rng = new Random(1234321);
var date = new DateTime(2012, 1, 1);
float temperature = 39.0f;
for (int i = 0; i < exampleCount; i++)
{
date = date.AddDays(1);
temperature += rng.Next(-5, 5);
yield return new SampleTemperatureData
{
Date = date,
Temperature =
temperature
};
}
}
}
}
Poznámky
ShuffleRows(IDataView, Nullable<Int32>, Int32, Boolean) zamíchá řádky jakéhokoli vstupu IDataView pomocí přístupu ke streamování. Pokud nechcete načíst celou datovou sadu v paměti, shufflePoolSize
bude fond řádků použit k náhodnému výběru řádků pro výstup. Fond je vytvořen z prvních shufflePoolSize
řádků v input
. Řádky se pak náhodně vrátí z fondu a nahradí se dalším řádkem input
, dokud nebudou všechny řádky výnosné, což vede k nové IDataView stejné velikosti jako input
řádky v randomizovaném pořadí.
CanShuffle Pokud je vlastnost input
true, bude také načtena do fondu v náhodném pořadí a nabízí dva zdroje náhodnosti.