Генерировать двухвариантные данные для линейной регрессии и k-NN

#python #normal-distribution

#python #нормальное распределение

Вопрос:

Я читаю генерацию данных для линейной регрессии и k-ближайшего соседа в книге «Элементы статистического обучения». Ниже приведены два сценария, упомянутых в тексте

Помните, что это ошибки в самих обучающих данных, и мы не сказали, откуда взялись сконструированные данные. Рассмотрим два возможных сценария:

** Сценарий 1: Обучающие данные в каждом классе были сгенерированы из двунаправленных распределений Гаусса с некоррелированными компонентами и различными средними значениями.

Сценарий 2: Обучающие данные в каждом классе получены из смеси 10 гауссовых распределений с низкой дисперсией, при этом отдельные средства распределяются как гауссовские.**

введите описание изображения здесь

Мой вопрос в том, как я могу написать программу на python или на C для генерации данных для следующего

  1. Сценарий 1, упомянутый выше.
  2. Сценарий 2, упомянутый выше.
  3. Как имитировать данные, некоторые из которых находятся между двумя вышеупомянутыми, но ближе к сценарию 2.

Спасибо за ваше время и помощь. Эта информация поможет мне попытаться понять линейную регрессию и k-NN.

Ответ №1:

Для сценария 1: Возможность генерации с использованием следующего кода. Изучаем, как сгенерировать код для сценария 2.

 mean_blue = [-1, 3]
cov = [[2, 0], [0, 2]]

x_blue_1, x_blue_2 = np.random.multivariate_normal(mean_blue, cov, 50).T

mean_red = [2, 0]
cov = [[2, 0], [0, 2]]

x_red_1, x_red_2 = np.random.multivariate_normal(mean_red, cov, 50).T

plt.scatter(x_blue_1, x_blue_2)
plt.scatter(x_red_1, x_red_2)