LASSO适合scikit-learn - 获得可能性

时间:2014-04-19 14:23:41

标签: scikit-learn

我正在使用scikit-learn包中的LASSO来优化惩罚线性回归问题的参数。我不仅对参数的最佳选择感兴趣,而且对数据相对于优化参数的可能性感兴趣。是否有一种简单的方法可以在拟合后获得完全可能性?

1 个答案:

答案 0 :(得分:1)

在最大似然框架中考虑lasso有点欺骗。然后,系数的先验分布是拉普拉斯分布exp(-np.prod(np.abs(coef))),其仅产生稀疏性作为"工件"在最佳状态。从这个分布中获得稀疏样本的概率是0(它发生了#34;几乎从不#34;)。

此免责声明,您可以写

import numpy as np
from sklearn.linear_model import Lasso
est = Lasso(alpha=10.)
est.fit(X, y)
coef = est.coef_
data_loss = 0.5 * ((X.dot(coef) - y) ** 2).sum()
n_samples, n_features = X.shape
penalty = n_samples * est.alpha * np.abs(coef).sum()
likelihood = np.exp(-(data_loss + penalty))