这是一个关于回归正则化的初学者问题。大多数关于 Elastic Net 和 Lasso Regression 的在线信息都复制了 Wikipedia 中的信息或 Zou 和 Hastie 的 2005 年原始论文(Regularization and variable selection via the elastic net)。
简单理论的资源? 是否有一个简单易懂的解释来说明它的作用、何时以及为什么需要再保证化,以及如何使用它 - 对于那些谁没有统计倾向?我知道如果您能理解原始论文是理想的来源,但有没有更简单的问题和解决方案?
如何在 sklearn 中使用?参数计算?许多 examples on sklearn只需将 alpha 和 rho 参数直接包含到预测模型中,对于 example :
from sklearn.linear_model import ElasticNet
alpha = 0.1
enet = ElasticNet(alpha=alpha, rho=0.7)
y_pred_enet = enet.fit(X_train, y_train).predict(X_test)
但是,他们没有解释这些是如何计算的。你如何计算套索或网络的参数?
最佳答案
缺少文档。我创建了一个新的 issue改进它。正如 Andreas 所说,最好的资源可能是 ESL II以 PDF 格式在线免费提供。
要自动调整 alpha 的值,确实可以使用 ElasticNetCV与使用 GridSearchCV 相比,这将节省冗余计算在 ElasticNet
类中用于调整 alpha
。作为补充,您可以使用常规 GridSearchCV
来查找 rho
的最佳值。请参阅 ElasticNetCV 的文档字符串更多细节。
对于 Lasso 与 ElasticNet,ElasticNet 将倾向于选择更多变量,从而导致模型更大(训练成本也更高),但总体上也更准确。特别是 Lasso 对特征之间的相关性非常敏感,可能会从 2 个非常相关的信息特征中随机选择一个,而 ElasticNet 更有可能选择这两个特征,这应该会导致更稳定的模型(就泛化能力而言,新样本)。
关于python - 弹性网是如何使用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12283184/