выборка данных

Случайным образом демонстрационный от данных, с или без замены

Синтаксис

y = datasample(data,k)
y = datasample(data,k,dim)
y = datasample(___,Name,Value)
y = datasample(s,___)
[y,idx] = datasample(___)

Описание

пример

y = datasample(data,k) возвращает наблюдения k, выбранные однородно наугад, с заменой, от данных в data.

пример

y = datasample(data,k,dim) возвращает выборку взятая с собой размерность dim data.

пример

y = datasample(___,Name,Value) возвращает выборку для любого из входных параметров в предыдущих синтаксисах, с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, 'Replace',false задает выборку без замены.

пример

y = datasample(s,___) использует поток случайных чисел s, чтобы сгенерировать случайные числа. Опция s может предшествовать любому из входных параметров в предыдущих синтаксисах.

пример

[y,idx] = datasample(___) также возвращает индексный вектор указание, какие значения datasample выбрал от data с помощью любого из входных параметров в предыдущих синтаксисах.

Примеры

свернуть все

Создайте поток случайных чисел для воспроизводимости.

s = RandStream('mlfg6331_64'); 

Чертите пять уникальных значений от целых чисел 1 к 10.

y = datasample(s,1:10,5,'Replace',false)
y = 1×5

     9     8     3     6     2

Создайте поток случайных чисел для воспроизводимости.

s = RandStream('mlfg6331_64');

Сгенерируйте 48 случайные символы от последовательности ACGT на заданные вероятности.

seq = datasample(s,'ACGT',48,'Weights',[0.15 0.35 0.35 0.15])
seq = 
'GGCGGCGCAAGGCGCCGGACCTGGCTGCACGCCGTTCCCTGCTACTCG'

Установите случайный seed для воспроизводимости результатов.

rng(10,'twister') 

Сгенерируйте матрицу с 10 строками и 1 000 столбцов.

X = randn(10,1000);

Создайте поток случайных чисел для воспроизводимости в datasample.

s = RandStream('mlfg6331_64');

Случайным образом выберите пять уникальных столбцов из X.

Y = datasample(s,X,5,2,'Replace',false)
Y = 10×5

    0.4317   -0.3327    0.9112   -2.3244    0.9559
    0.6977   -0.7422    0.4578   -1.3745   -0.8634
   -0.8543   -0.3105    0.9836   -0.6434   -0.4457
    0.1686    0.6609   -0.0553   -0.1202   -1.3699
   -1.7649   -1.1607   -0.3513   -1.5533    0.0597
   -0.3821    0.5696   -1.6264   -0.2104   -1.5486
   -1.6844    0.7148   -0.6876   -0.4447   -1.4615
   -0.4170    1.3696    1.1874   -0.9901    0.5875
   -0.2410    1.4703   -2.5003   -1.1321   -1.8451
    0.6212    1.4118   -0.4518    0.8697    0.8093

Передискретизируйте наблюдения от массива набора данных, чтобы создать начальную загрузку, реплицируют набор данных. Смотрите, что Начальная загрузка Передискретизирует для получения дополнительной информации о начальной загрузке.

Загрузите набор выборочных данных.

load hospital

Создайте набор данных, который имеет тот же размер как набор данных hospital и содержит случайные выборки, выбранные с заменой из набора данных hospital.

y = datasample(hospital,size(hospital,1));

Выберите выборки из данных на основе индексов выборки, выбранной из другого вектора.

Сгенерируйте два случайных вектора.

x1 = randn(100,1);
x2 = randn(100,1);

Выберите выборку элементов 10 от векторного x1 и возвратите индексы выборки в векторном idx.

[y1,idx] = datasample(x1,10);

Выберите выборку элементов 10 от векторного x2 с помощью индексов в векторном idx.

y2 = x2(idx);

Входные параметры

свернуть все

Входные данные, от которых можно выбрать, заданный как вектор, матрица, многомерный массив, таблица или массив набора данных. По умолчанию, выборки datasample от первой неодноэлементной размерности data. Например, если data является матрицей, то выборки datasample из строк. Измените это поведение с входным параметром dim.

Типы данных: single | double | logical | char | string | table

Количество выборок, заданных как положительное целое число.

Пример: datasample(data,100) возвращает 100 наблюдений, выбранных однородно и наугад от данных в data.

Типы данных: single | double

Размерность к выборке, заданной как положительное целое число. Например, если data является матрицей, и dim является 2, y содержит выбор столбцов в data. Если data является таблицей или массивом набора данных, и dim является 2, y содержит выбор переменных в data. Используйте dim, чтобы гарантировать выборку по определенному измерению независимо от того, является ли data вектором, матрицей или N - размерный массив.

Типы данных: single | double

Поток случайных чисел, заданный как глобальный поток или RandStream. Например, s = RandStream('mlfg6331_64') создает поток случайных чисел, который использует мультипликативный изолированный алгоритм генератора Фибоначчи. Для получения дополнительной информации смотрите Создание и Управление Потоком Случайных чисел (MATLAB).

Функция rng обеспечивает простой способ управлять глобальным потоком. Например, rng(seed) отбирает генератор случайных чисел с помощью неотрицательного целочисленного seed. Для получения дополнительной информации смотрите Управление Global Stream (MATLAB).

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: выборки 'Replace',false,'Weights',ones(datasize,1) без замены и с вероятностью, пропорциональной элементам Weights, где datasize является размером выбираемой размерности.

Индикатор для выборки с заменой, заданной как пара, разделенная запятой, состоящая из 'Replace' и или true или false.

Выборка с заменой, если 'Replace' является true, или без замены, если 'Replace' является false. Если 'Replace' является false, то k не должен быть больше, чем размер выбираемой размерности. Например, если   data = [1 3 Inf; 2 4 5] и   y = datasample(data,k,'Replace',false), то k не может быть больше, чем 2.

Типы данных: логический

Выборка весов, заданных как пара, разделенная запятой, состоящая из 'Weights' и вектор неотрицательных числовых значений. Вектор имеет размер datasize, где datasize является размером выбираемой размерности. Вектор должен иметь по крайней мере одно положительное значение и не может содержать значения NaN. Выборки функции datasample с вероятностью, пропорциональной элементам 'Weights'.

Пример: 'Weights',[0.1 0.5 0.35 0.46]

Типы данных: single | double

Выходные аргументы

свернуть все

Выборка, возвращенная как вектор, матрица, многомерный массив, таблица или массив набора данных.

  • Если data является вектором, то y является вектором, содержащим элементы k, выбранные из data.

  • Если data является матрицей и dim = 1, то y является матрицей, содержащей строки k, выбранные из data. Или, если dim = 2, то y является матрицей, содержащей столбцы k, выбранные из data.

  • Если data является N - размерный массив и dim = 1, то y является N - размерный массив выборок, взятых с собой первая неодноэлементная размерность data. Или, если вы задаете значение для аргумента пары "имя-значение" dim, выборок datasample по измерению dim.

  • Если data является таблицей и dim = 1, то y является таблицей, содержащей строки k, выбранные из data. Или, если dim = 2, то y является таблицей, содержащей переменные k, выбранные из data.

  • Если data является массивом набора данных и dim = 1, то y является массивом набора данных, содержащим строки k, выбранные из data. Или, если dim = 2, то y является массивом набора данных, содержащим переменные k, выбранные из data.

Если вход data содержит недостающие наблюдения, которые представлены как значения NaN, выборки datasample от целого входа, включая значения NaN. Например,   y = datasample([NaN 6 14],2) может возвратить y = NaN 14.

Когда выборка взята с заменой (значение по умолчанию), y может содержать повторенные наблюдения от data. Установите аргумент пары "имя-значение" Replace false к выборке без замены.

Индексы, возвращенные как вектор, указывающий, какие элементы datasample принимают решение из data создать y. Например:

  • Если data является вектором, то   y = data(idx).

  • Если data является матрицей и dim = 1, то   y = data(idx,:).

  • Если data является матрицей и dim = 2, то   y = data(:,idx).

Советы

  • Чтобы выбрать случайные целые числа с заменой из области значений, используйте randi.

  • Чтобы выбрать случайные целые числа без замены, используйте randperm или datasample.

  • К случайным образом демонстрационному от данных, с или без замены, datasample использования.

Алгоритмы

datasample использует randperm, rand или randi, чтобы сгенерировать случайные значения. Поэтому datasample изменяет состояние глобального генератора случайных чисел MATLAB®. Управляйте генератором случайных чисел с помощью rng.

Для выбора взвешенных выборок без замены datasample использует алгоритм Вонга и Истон [1].

Альтернативная функциональность

Можно использовать randi или randperm, чтобы сгенерировать индексы для случайной выборки с или без замены, соответственно. Однако datasample может быть более удобен для использования, потому что это выбирает непосредственно от ваших данных. datasample также позволяет взвешенную выборку.

Ссылки

[1] Вонг, C. K. и Член конгресса Истон. Эффективный метод для Взвешенной Выборки Без Замены. SIAM Journal Вычисления 9 (1), стр 111–113, 1980.

Расширенные возможности

Смотрите также

| | | | |

Представленный в R2011b