Как применить перекрестную проверку Монте-Карло к множественной линейной регрессии в Python? - PullRequest
0 голосов
/ 17 апреля 2019

каждый.

Итак, я относительно новичок в Python и пытаюсь предсказать числовую переменную на основе 10 различных числовых входных данных.В частности, я пытаюсь применить множественную линейную регрессию, но хотел бы добавить перекрестную проверку Монте-Карло на этапе проверки поезда.Итак, я написал код, который выглядит следующим образом:

#I have imported libraries
#imported the dataset
#then created X and Y df. 
#then split the data into training and testing, with validation parameters as follows:

from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, random_state=np.random.randint(1000), test_size=0.3)

# I have used np.random.randint(1000) as a Monte Carlo cross validation.

The code used for regression is:

#Linear Regression Model
regressor = linear_model.LinearRegression()
regressor.fit(X_train, Y_train)
y_predLR = regressor.predict(X_test)
lin_mse = mean_squared_error(y_predLR, Y_test)
lin_rmse = np.sqrt(lin_mse)

Мой вопрос: это правильный способ применения перекрестной проверки Монте-Карло?

После этого я применил MLR, и при каждом запуске кода R-квадрат, MSE и другие значения менялись, поэтому я предполагаю, что Монте-Карло работал.Если да, есть ли способ получить одинаковые результаты при каждом запуске, но в то же время использовать MCCV?

Кроме того, цель состоит в том, чтобы также разработать модель ANN (также с Монте-Карло) и, в конечном итоге, сравнить MLR и ANN, а затем сделать прогнозы на будущий период с использованием наилучшей разработанной модели.Я где-то читал, что MCCV нельзя использовать при прогнозировании, верно?

Большое спасибо за ваше время.

1 Ответ

0 голосов
/ 17 апреля 2019

Чтобы применить MCCV, вы должны запустить процесс случайного генерирования (без замены) обучающего набора и тестового набора несколько раз.

Итак, грубо говоря, вам нужно вставить свой код (создание обучающих / тестовых наборов, обучение и прогнозирование) в цикл for.

Обратите внимание, что разделы генерируются независимо для каждого прогона, поэтому одна и та же точка данных может появляться несколько раз в наборе обучения (теста), что, по сути, является существенной разницей с k-кратным перекрестная проверка.

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