タグ

ブックマーク / qiita.com/kenmatsu4 (10)

  • 【PyStan】Graphical LassoをStanでやってみる。 - Qiita

    こんにちは、久しぶりにブログを書く@kenmatsu4です。 Stan Advent Calendarの23日目の記事を書きました。 今回のブログでは、Graphical Lassoという、L1正則化をかけた精度行列(分散共分散行列の逆行列)を推定する手法をStanを用いてやってみようというものです。コードの全文はGitHubにアップロードしています。 1. テスト用データの生成 まず、多変量正規分布に従う乱数を生成します。 今回は下記のような平均、分散をもつ6次元のデータを300個生成します。 そして無理やり$x_6$と$x_4$、さらに$x_6$と$x_5$に相関を持たせ、$x_4$と$x_5$が間接相関を持つようにします。これはもともと$x_4$と$x_5$がなかったものの、$x_6$の影響を受けて$x_6$の変動と連動して$x_4$と$x_5$の値も動くので来相関がない変数同士が

    【PyStan】Graphical LassoをStanでやってみる。 - Qiita
  • Variational Autoencoder徹底解説 - Qiita

    とします。これはReconstruction Errorと呼ばれます。入力したデータになるべく近くなるように誤差逆伝播法で重みの更新を行うことで学習することができます。 1-2. Variational Autoencoder(VAE) VAEはこの潜在変数$z$に確率分布、通常$z \sim N(0, 1)$を仮定したところが大きな違いです。通常のオートエンコーダーだと、何かしら潜在変数$z$にデータを押し込めているものの、その構造がどうなっているかはよくわかりません。VAEは、潜在変数$z$を確率分布という構造に押し込めることを可能にします。 イメージは下記です。 まだよくわかりませんね。実際にプログラムを動かしたものを見ると少しイメージが湧くかと思います。 まずは入力と出力を対比させてみます。(これは$z$の次元を20に設定して学習したものです。)ちょっとぼやっとしていますが、元の形

    Variational Autoencoder徹底解説 - Qiita
    Aobei
    Aobei 2021/07/28
  • EMアルゴリズム徹底解説 - Qiita

    ステップ2 $r_{nk}$を固定して$J$を$\mu_k$で偏微分して最小化します。 式変形をすると、 クラスタ$k$の最適なCentroidは上記のように、クラスター$k$に所属しているデータの平均であることがわかりました。 上記より最初のデモンストレーションで行っていたアルゴリズムは損失関数$J$の最適化によって導出されたものを適用していたことがわかります。 2−3. 実装 上記で示した2ステップを計算して、イテレーションを回すだけのシンプルなプログラムです。最後に更新前のmuと更新後のmuの差を取り、それがある程度小さくなったら収束したと判断し、イテレーションを止めるようにしています。 下記はアルゴリズム部分の抜粋です。プログラムの全文はコチラにあります。 for _iter in range(100): # Step 1 =============================

    EMアルゴリズム徹底解説 - Qiita
  • Pythonによるパーティクルフィルタの実装と状態空間モデルへの適用 - Qiita

    パーティクルフィルタ/粒子フィルタ(Particle filter)、逐次モンテカルロ法(Sequential Monte Carlo: SMC)など様々な呼び方がありますが、この記事ではパーティクルフィルタという呼び方を使います。このパーティクルフィルタをPythonで実装して状態空間モデルの潜在変数を推定することを試したいと思います。 状態空間モデルにはさらに細かくいくつものモデルが分かれていますが、今回はシンプルなモデルであるローカルモデル(1階差分トレンドモデル)を対象として扱います。この状態空間モデルのトレンドの種類に他に何があるかを知りたい場合はココをご参考としてください。 $x_t$は時刻tにおける潜在状態を表し、$y_t$は観測値を表します。 利用するデータは「予測に生かす統計モデリングの基」のサンプルデータ(http://daweb.ism.ac.jp/yosoku/)

    Pythonによるパーティクルフィルタの実装と状態空間モデルへの適用 - Qiita
    Aobei
    Aobei 2017/06/12
    逐次モンテカルロ、particle filter
  • ROC曲線とは何か、アニメーションで理解する。 - Qiita

    統計学、パターン認識等で、ROC(Receiver Operating Characteristic;受信者動作特性)曲線という概念が出てきます。また、データ分析・予測のコンペティションサイトKaggleでも、提出されたアルゴリズムの識別性能評価にこのROC曲線に基づくAUC(Area Under the Curve)というものを使っています。(例えばココ) このROC曲線、ちょっとわかりにくいので、まとめてみました。また、アニメーションでグラフを動かしてイメージを付けるということもやってみます。 1. ROC曲線に至る前説 まず、例として健康に関するとある検査数値データがあったとします。 この検査数値は健康な人は平均25, 標準偏差2の正規分布に従い分布しています。(下記図の緑の曲線) 病気の人は平均30、標準偏差4の正規分布に従い分布しています。(下記の図の青の曲線) グラフにすると下

    ROC曲線とは何か、アニメーションで理解する。 - Qiita
    Aobei
    Aobei 2016/05/06
  • 【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita

    ハミルトニアンモンテカルロ法(HMC)の動作原理をアニメーションを用いて理解してみようという記事です。 先日の記事、「【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。」の続編にあたります。 豊田先生の書籍「基礎からのベイズ統計学」の例題を使わせていただき、サンプリング対象の分布は今回ガンマ分布とします。記事ではアニメーションに使った部分の理論的な解説しかしませんので、HMCの詳細な解説はこちらの書籍をご参照いただければと思います。 はじめに 推定する対象は$\theta$を変数としたガンマ分布です。ベイズ推定で推定したいパラメーターを$\theta$で表すので、$\theta$の分布として表されます。1 ガンマ分布はこちらです。 $$ f(\theta|\alpha, \lambda) = {\lambda^{\alpha} \over

    【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita
    Aobei
    Aobei 2016/03/14
  • 【統計学】尤度って何?をグラフィカルに説明してみる。 - Qiita

    %matplotlib inline import matplotlib.pyplot as plt import matplotlib.cm as cm import numpy as np import seaborn as sns import numpy.random as rd m = 10 s = 3 min_x = m-4*s max_x = m+4*s x = np.linspace(min_x, max_x, 201) y = (1/np.sqrt(2*np.pi*s**2))*np.exp(-0.5*(x-m)**2/s**2) plt.figure(figsize=(8,5)) plt.xlim(min_x, max_x) plt.ylim(0,max(y)*1.1) plt.plot(x,y) plt.show() この図は、平均$\mu$、標準偏差$\sigma$

    【統計学】尤度って何?をグラフィカルに説明してみる。 - Qiita
    Aobei
    Aobei 2015/12/25
  • 【統計学】stanでロジスティック回帰の実行を割と詳しく解説してみる(w/ Titanic dataset) - Qiita

    StanをつかってTitanicデータをロジスティック回帰してみて、さらに分類の性能評価を少し行ってみるという記事です。 この記事で使う確率的プログラミング言語「Stan」では分布のパラメーターの推定に、ハミルトニアンモンテカルロ法(HMC法)とNUTSという手法が用いられています。厳密には乱数の発生原理が異なるのですが、もう少しシンプルな手法にマルコフ連鎖モンテカルロ法 メトロポリス・ヘイスティングス法(MH法)があります。この動作原理について、私@kenmatsu4が書いた スライド, 基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法 【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。 の2点がありますので、よければ参考としてください。やっていることのイメージを付ける意図であればMH法とHMC法は大きく違わない

    【統計学】stanでロジスティック回帰の実行を割と詳しく解説してみる(w/ Titanic dataset) - Qiita
    Aobei
    Aobei 2015/12/13
  • 【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。 - Qiita

    Pythonでマルコフ連鎖モンテカルロ法を実装して解説してみる記事です 『計算統計 II マルコフ連鎖モンテカルロ法とその周辺』のp16に この節の内容を実感するために一番良い方法は、どんな計算機言語でもいいから、 ここで述べたことを白紙から実装してみることである。 という事で、素直にやってみました。せっかくなのでコードと仕組みの解説をしようと思います。 先に結果のアニメーションとプロットを表示しておきます (Burn-in期間:1-30 [この期間のデータは色を薄くしてプロットしています。], 棄却含め150回のサンプリングまで) 10,000回繰り返してサンプリングした結果をプロット。(うち、Burn-in: 2,000回) はじめに まず最初に必要なライブラリのインポートを行います。 import numpy as np import numpy.random as rd impor

    【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。 - Qiita
    Aobei
    Aobei 2015/11/28
  • 【数学】固有値・固有ベクトルとは何かを可視化してみる - Qiita

    線形代数に固有値という概念が出てきます。最初はイメージしにくいのでは、と思うのですが重要な概念かつ、統計学でも頻繁に利用されるので、これもこの可視化シリーズとしてアニメーショングラフを書いて説明することを試みたいと思います。 このようなグラフの意味を読み解いていきます。 1.固有値・固有ベクトルとは? まず、固有値・固有ベクトルとはなんぞや。数式で表すと下記のことです。 ${\bf x}\neq {\bf 0}$の${\bf x}$で、行列Aをかけると、長さが$\lambda$倍になるような${\bf x}$の事を固有ベクトル, $\lambda$を固有値と言います。 知らない人は???で、これだけではよくわからないですね。 早速、グラフィカルな説明も交えて説明していきたいと思います。 2.行列Aによる線形変換 固有値・固有ベクトルの説明の前に、行列による線形変換について取り上げます。 例

    【数学】固有値・固有ベクトルとは何かを可視化してみる - Qiita
    Aobei
    Aobei 2015/05/24
  • 1