/AMPR

A Julia implementation of AMP-based Approximate stability selection

Primary LanguageJulia

AMPR

Tomoyuki Obuchi and Yoshiyuki Kabashima, Semi-analytic resampling in lasso, Journal of Machine Learning Research 20 (2019), no. 70, 1–33.で提案された近似メッセージパッシングに基づく、近似的stability selection法のJulia実装である

disclaimer

  • えーい、と適当に書いたものなので、ひょっとしたらバグってるかもしれない。その時はissueで報告してほしい
  • また、パッケージとしては本当に大変いい加減である

quick start

stability selectionをデフォルトパラメータで実行するためには

ampr_result = ampr(A, y, λ)

ampr_resultFit型のものが返ってくる。1次モーメントとか、stabilityを保持しており、ampr_result.x1_hatとかで取り出すことが可能。内訳はAMPR.Fitのdocstring参照。

ダンピング係数dumping、反復回数t_max、収束基準tol、stability selectionのパラメータpw, wを指定したければ

ampr(
        A, y, λ, 
        dumping=0.8, t_max=50, tol=1.0e-6, pw=0.5, w=2.0
    )

という具合。

実行例

実行例のファイルを置いておく。ただしこれはそのまま実行するというより、なんとなく眺めて使い方の雰囲気を知るというようなものではないかと思う。

  • do_experiment_synthetic.jl
    • 合成データでの実験
    • ナイーブなSSも実行して、精度を実験と比較している。
  • do_experiment_real.jl
    • 実データでの実験
      • path_to_AMPR/real_data/A.csv, path_to_AMPR/real_data/y.csvが存在する場合の例
      • 実行結果はpath_to_AMPR/img/以下に出力する。
    • ナイーブなSSも実行して、精度を実験と比較している

dependency

  • Distributions.jl
  • GLMNet.jl, CSV.jl
    • 実験で使っている
  • Plots, LaTeXStrings, Colors
    • 実験結果の可視化に利用している

see also