【发布时间】:2019-09-07 15:59:51
【问题描述】:
每个人。
所以,我对 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 和其他值都会发生变化,所以我猜 Monte Carlo 有效。如果是这样,有没有办法在每次运行时获得相同的结果,但同时使用 MCCV?
此外,目标是还开发一个 ANN 模型(也与 Monte Carlo 一起),并最终比较 MLR 和 ANN,然后使用开发的最佳模型对未来时期进行预测。我在某个地方读到,预测时不能使用 MCCV,是这样吗?
非常感谢您的宝贵时间。
【问题讨论】:
标签: python-3.x linear-regression cross-validation montecarlo