Генерация случайных данных на основе существующих данных - PullRequest
2 голосов
/ 18 марта 2020

есть ли способ в python генерировать случайные данные на основе распределения существующих данных за последние сутки?

Вот статистические параметры моего набора данных:

Data
count   209.000000
mean    1.280144
std     0.374602
min     0.880000
25%     1.060000
50%     1.150000
75%     1.400000
max     4.140000

как это не нормальное распределение, это невозможно сделать с помощью np.random.normal. Любые идеи?

Distribution

Спасибо.

Редактировать: Выполнение KDE:

from sklearn.neighbors import KernelDensity
# Gaussian KDE
kde = KernelDensity(kernel='gaussian', bandwidth=0.525566).fit(data['y'].to_numpy().reshape(-1, 1))
sns.distplot(kde.sample(2400))

KDE

1 Ответ

1 голос
/ 18 марта 2020

В общем случае данные реального мира не совсем соответствуют «хорошему» распределению, как нормальное распределение или распределение Вейбулла.

Как и в случае машинного обучения, выборка из распределения точек данных, как правило, состоит из двух этапов:

  • Соответствие модели данных для данных .

  • Затем предсказывают новую точку данных на основе этой модели с помощью случайности.

Там Есть несколько способов оценить распределение данных и выборки из этой оценки:

  • Оценка плотности ядра.
  • Модели гауссовой смеси.
  • Гистограммы.
  • Модели регрессии.
  • Другие модели машинного обучения.

Кроме того, такие методы, как оценка максимального правдоподобия , позволяют соответствовать известному распределению (например, нормальному распределению) для данных, но предполагаемое распределение обычно грубее, чем при оценке плотности ядра или других моделях машинного обучения.

См. также мой раздел " Случайные числа из Распределение данных Poi NTS ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...