2014-04-19 44 views
0

我使用scikit-learn軟件包中的LASSO來優化懲罰線性迴歸問題的參數。我不僅對參數的最佳選擇感興趣,而且對數據關於優化參數的可能性感興趣。裝修後是否有一種簡單的方法來獲得完全可能性?LASSO適合scikit-learn - 獲得可能性

+0

你所說的*優化參數的意思是*?關於什麼指標?預測分數? – eickenberg

回答

1

在最大可能框架下考慮lasso有點欺騙。先前的係數分佈是一個拉普拉斯分佈exp(-np.prod(np.abs(coef))),它只在最優時產生稀疏度作爲「僞像」。從這個分佈中獲得一個稀疏樣本的概率是0(它發生「幾乎從不」)。

本免責聲明的方式進行,你可以寫

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)) 
+0

對不起,延遲迴復。我需要一些時間來思考我的問題,然後才能對答案給出有用的反饋。我目前的問題是,阿爾法包含兩個參數:正態分佈的方差和先驗的擬合參數的「緊密度」。 – cel

+0

參數'alpha'只調節權重上的「之前」。你指的是哪種正態分佈?殘差的分佈?因爲根據這個「先驗」,權重不是正態分佈 – eickenberg

+0

據我的理解:後驗是N(y | mu = y_hat,sigma^2)* La(w_t,mu = 0,τ)。第一項屬於普通線性迴歸,其中y是觀測值的向量,y是所看到的數據和權重(正態分佈)的線性組合的向量。第二項是拉普拉斯之前。 Alpha與sigma^2/tau成正比。在優化權重時,西格瑪和頭不是那麼重要,組合術語α調節正則化的強度。我目前的問題是,我認爲我需要西格瑪和頭都計算完整的後驗。 – cel