python - 弹性网是如何使用的?

标签 python statistics machine-learning regression scikit-learn

这是一个关于回归正则化的初学者问题。大多数关于 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/

相关文章:

python - 如何使用python将阿拉伯字符映射到英文字符串

python - 图例标记透明度 - Matplotlib

python - 在管理中将整数选择值显示为字符(不是整数)

mysql - SQL - 如何找到查询的最佳性能数字

algorithm - 确定一组数据是来自线性函数还是对数函数?

python - 基于自定义系数的多元线性回归

python - 线性回归 : Cost function working independently, 但不在 scipy.optimize 函数内

python - 如何模拟异步代码调用的函数?

machine-learning - 文本分类中的词干提取 - 降低准确性?

statistics - Clojure 中的惯用模式函数