如何解决使用 sklearn
背景
我试图在一个 df
列和另一个列之间建立关系。因此,如果我们假设列分别命名为 x
,y
,我需要的是关系 f(x)=y
。
我尝试像这样使用线性回归:
model = Pipeline([('poly',PolynomialFeatures(degree=deg)),('linear',LinearRegression(fit_intercept=False))])
并使用 deg
循环迭代 for
,我发现最佳值是 deg=9
(即使对于 deg=3
结果很接近)其中>
MSE: 7.282878279669111 MAE: 1.704843791514593
问题
现在我正在尝试创建一个神经网络(这里我使用的是 MLPRegressor
),但不确定要选择哪些参数。我尝试手动更改参数,有时得到 mse~7.1
的好结果,有时得到 mse~20
之类的糟糕结果。从 relu
切换到 logistic
后,我得到了更好的结果,并稍微调整了每层中的层数和节点数。
我的问题是如何高效自动地搜索最佳超参数,包括层架构(层数和每层中的节点数)和多项式特征的次数。到目前为止,我拥有的代码是:
scaler = MinMaxScaler()
X_train_norm = scaler.fit_transform(X_train.values.reshape(-1,1))
X_test_norm = scaler.fit_transform(X_test.values.reshape(-1,1))
model = Pipeline([('poly',('mlpr',MLPRegressor(hidden_layer_sizes=(deg,6,8,1),activation='relu',solver='adam',max_iter=10000))])
我确实发现您可以使用随机森林
rf_random = RandomizedSearchCV(estimator=rf,param_distributions=random_grid,n_iter=100,cv=3,verbose=2,random_state=42,n_jobs=-1)
但我无法在神经网络的情况下实现这样的搜索。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。