Моделирование Монте-Карло для набора данных векторов

У меня есть набор (x, y, z, u, v, w) векторов из N объектов.

Что я пытаюсь сделать, так это расширить этот набор данных, клонируя эти объекты с помощью моделирования Монте-Карло.

Мне было интересно, разумно ли это. Если да, то как это сделать на Python, а если нет, то какова альтернатива.

+) Я привык иметь значения неопределенности для векторных компонентов и выполнять какое-то извлечение многомерного распределения, чтобы в основном получить «данные клонирования», то есть данные, которые представляют неопределенность. В данном случае у меня нет неопределенности, поэтому я пытаюсь получить синтетическое распределение.

Не могли бы вы уточнить немного больше? Что вы подразумеваете под расширением этих данных. Вам нужны точные клоны вашего набора векторов?

joostblack 22.12.2020 08:00

@joostblack Я привык иметь значения неопределенности для векторных компонентов и выполнять своего рода извлечение многомерного распределения, чтобы в основном получить «данные клонирования», то есть данные, которые представляют неопределенность. В данном случае у меня нет неопределенности, поэтому я пытаюсь получить синтетическое распределение.

hangbin jo 22.12.2020 08:14
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
106
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы иметь возможность создавать новые данные с помощью моделирования MC, вам нужно что-то для моделирования. Я предполагаю, что из вашего вопроса не так ясно, как должна происходить эта симуляция. Если вы имеете в виду, что вы должны создавать новые данные, которые являются другими перестановками существующих данных, я думаю, вы могли бы в некотором смысле назвать это MC. Этого можно добиться, выбирая по одному элементу из каждого вектора случайным образом. Пример кода (не проверенный и не оптимизированный, но концептуально рабочий):

import numpy as np
data = ...
n_new_data
new_data = np.full((n_new_data, len(data)), np.nan)
for i, vec in enumerate(data):
    for j in range(n_new_data):
        new_data[j, i] = vec[np.random.random_integers(len(vec)-1)]

Если у вас есть только data для работы с этим, это может быть разумно. Другой, более сложный, но более реалистичный вариант, если переменные не являются независимыми, заключается в расчете корреляции между переменными в каждой выборке и последующем создании новых данных в соответствии с этой корреляцией.

Другие вопросы по теме