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 2Y содержит выбор столбцов в data. Если data таблица или массив набора данных и dim 2Y содержит выбор переменных в data. Используйте dim гарантировать выборку по определенному измерению независимо от ли data вектор, матрица или N - размерный массив.

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

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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 использование randpermrand, или randi сгенерировать случайные значения. Поэтому datasample изменяет состояние глобального генератора случайных чисел MATLAB®. Управляйте генератором случайных чисел с помощью rng.

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

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

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

Ссылки

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

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

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

| | | | |

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