在测试我的线性回归模型时,我发现更改random_state
参数会train_test_split
改变模型的准确性。
详细地说,我的火车测试拆分如下:
boston_data = load_boston()
X = pd.DataFrame(boston_data.data, columns=boston_data.feature_names)
y = pd.DataFrame(boston_data.target, columns=['MEDV'])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
我的模型如下:
steps = [
('regr', Lasso())
]
pipeline = Pipeline(steps)
parameters = {
'regr__alpha': np.logspace(-4, -0.5, 40)
}
grid = GridSearchCV(pipeline, param_grid=parameters, cv=10, n_jobs=-1)
grid.fit(X_train, y_train)
grid.score(X_test, y_test)
现在,例如,对于当前场景(其中random_state
= 42),测试分数为 0.725。但是,如果我将其更改为 43,则测试分数会下降到 0.7。
我知道这random_state
表示测试和训练集中将包含哪些数据集。话虽如此,我想知道,是否有办法获得稳定的结果?
谢谢!