Aracılığıyla paylaş


DataOperationsCatalog.ShuffleRows Yöntem

Tanım

satırlarını inputkarıştırma.

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

Parametreler

input
IDataView

Giriş verileri.

seed
Nullable<Int32>

Rastgele tohum. Belirtilmemişse, bunun yerine rastgele durum'dan MLContexttüretilir.

shufflePoolSize
Int32

Havuzda tutulacak satır sayısı. Bunu 1 olarak ayarlamak havuz karıştırmayı kapatır ve ShuffleRows(IDataView, Nullable<Int32>, Int32, Boolean) yalnızca rastgele bir sırada okuyarak input karıştırma gerçekleştirir.

shuffleSource
Boolean

ise false, dönüştürme rastgele bir sırada okumayı input denemez ve karıştırmak için yalnızca havuz oluşturmayı kullanır. özelliğinin olması durumunda bu parametrenin CanShuffleinputfalsehiçbir etkisi olmaz.

Döndürülenler

Örnekler

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
                };

            }
        }
    }
}

Açıklamalar

ShuffleRows(IDataView, Nullable<Int32>, Int32, Boolean) akış yaklaşımını kullanarak herhangi bir girişin IDataView satırlarını karıştıracaktır. Veri kümesinin tamamını bellekte yüklememek için, çıkış yapılacak satırları rastgele seçmek için bir satır havuzu shufflePoolSize kullanılır. Havuz, içindeki inputilk shufflePoolSize satırlardan oluşturulur. Satırlar havuzdan rastgele olarak döndürülür ve tüm satırlar teslim edilene kadar sonraki satırla input değiştirilir ve bu da satırlarla aynı boyutta input ancak rastgele bir sırada yeni IDataView bir sonuç verir. CanShuffle özelliği input true ise, iki rastgele kaynak sunan rastgele bir sırada havuza da okunur.

Şunlara uygulanır