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