web-dev-qa-db-ja.com

Pythonでロジスティックラッソを実行する方法は?

Scikit-learnパッケージは関数Lasso()LassoCV()を提供しますが、線形関数の代わりにロジスティック関数を適合させるオプションはありません... Pythonでロジスティック投げ縄を実行する方法は?

6
Fringant

ラッソは、L1ペナルティで最小二乗問題を最適化します。定義上、Lassoでロジスティック関数を最適化することはできません。

L1ペナルティを使用してロジスティック関数を最適化する場合は、L1ペナルティを使用してLogisticRegression推定量を使用できます。

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
log = LogisticRegression(penalty='l1', solver='liblinear')
log.fit(X, y)

L1ペナルティを処理するのはLIBLINEARおよびSAGA(v0.19で追加)ソルバーのみであることに注意してください。

15
TomDLT

Pythonでglmentを使用できます。 Glmnetはウォームスタートとアクティブセットコンバージェンスを使用するため、非常に効率的です。これらの手法により、他の投げ縄実装よりもglmentが高速になります。あなたはそれをダウンロードすることができます https://web.stanford.edu/~hastie/glmnet_python/

1
Penning Yu