タグ

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

  • EMアルゴリズム徹底解説 - Qiita

    ブログは、混合ガウス分布を題材に、EMアルゴリズムという機械学習界隈では有名なアルゴリズムを丁寧に解説することを目的として書いています。 また、この記事は、「数学とコンピュータ Advent Calendar 2017」の24日目の記事です。 そして長いです。 1. はじめに 観測した確率変数 $X$ をよく表現する、モデル $p(x|\theta)$ のパラメータを求めることが確率分布の推定ではよく行われます。つまり最尤法ですね。より複雑な分布になるとその分布の構造に潜在変数(Latent Variable) $Z$ があると仮定してモデル化を行うと、シンプルな組み合わせで $X$ の分布を表現できることがあります。今回扱う混合ガウス分布もその一つです。 のちに説明しますが、データセットの種別を完全データ集合と不完全データ集合に分けた場合、不完全データ集合に属するようなデータセットはデ

    EMアルゴリズム徹底解説 - Qiita
  • Variational Autoencoder徹底解説 - Qiita

    今回はディープラーニングのモデルの一つ、Variational Autoencoder(VAE)をご紹介する記事です。ディープラーニングフレームワークとしてはChainerを使って試しています。 VAEを使うとこんな感じの画像が作れるようになります。VAEはディープラーニングによる生成モデルの1つで、訓練データを元にその特徴を捉えて訓練データセットに似たデータを生成することができます。下記はVAEによって生成されたデータをアニメーションにしたものです。詳しくは文をご覧ください。 記事で紹介している内容のPythonコードはコチラにあります。 1. Variational Autoencoderとは? まず、VAEとはどんなものであるかを説明したいと思いますが、その前に通常のオートエンコーダーについて触れたいと思います。 1-1. 通常のオートエンコーダー オートエンコーダーとは、 教師

    Variational Autoencoder徹底解説 - Qiita
  • イェンセン(Jensen)の不等式の直感的理解 - Qiita

    確率変数に関するイェンセン(Jensen)の不等式を、例を用いて直感的に理解してみようという記事です。 $x$を確率変数、$p(x)$をxの確率密度関数とすると、その期待値$E[x]$は が成り立つことを、 イェンセン(Jensen)の不等式と呼びます。この証明は既に色々なところで解説(例えばこちら)されていますのでここでは省略します。 この不等式 $f(E[x]) \ge E[f(x)]$ を直感的に理解するために、乱数を用いた例をグラフで表現してみます。 まず、xが正規分布に従う確率変数だとして、そこから発生する乱数を作ってみます。また、そのxを $f(x)=-x^2+10$ という上に凸な関数で変換します。 下記のグラフの上部にあるヒストグラムが正規分布に従うxの分布で、右側にあるヒストグラムが$x^2$が従う分布です。 つまり、イェンセンの不等式は下記の赤い丸(期待値をとってから、

    イェンセン(Jensen)の不等式の直感的理解 - Qiita
  • ROC曲線とは何か、アニメーションで理解する。 - Qiita

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

    ROC曲線とは何か、アニメーションで理解する。 - Qiita
  •  Rの密度比推定パッケージdensratioをPythonから利用する - Qiita

    今回は2つのテーマが合わさった記事になっていまして、ひとつはPythonからRのパッケージを呼び出して利用する方法、もうひとつが密度比推定のRパッケージdensratioを使って異常検知をしてみる、という記事です。 Rはとても多くの統計手法のパッケージが公開されており(8000を超えてるとか)、PythonにはないものもRには存在したりするので、非常に魅力的です。しかし、Pythonに慣れている人は、データの前処理やグラフ描画は慣れ親しんだPythonで行いたいと考えてしまうのではないでしょうか?(自分のことです )そんな人のために、PythonからRのパッケージを使う方法をご紹介します。 Pythonソースコードの全文はGitHubのココに置いてありますので、適宜ご利用ください。 環境 試した環境は下記です。MacとAnacondaで試しています。Anacondaを導入していれば特に準備

     Rの密度比推定パッケージdensratioをPythonから利用する - Qiita
  • 私的Python 便利帳 (随時更新) - Qiita

    # リストの要素毎に数を数える from collections import defaultdict cnt_dict = defaultdict(int) data = x = np.random.randint(low=0, high=5, size=500) for d in data: cnt_dict[d] += 1 print cnt_dict

    私的Python 便利帳 (随時更新) - Qiita
  • 【機械学習】OOB (Out-Of-Bag) とその比率 - Qiita

    ランダムフォレストに関する解説を読んでいるとよく遭遇するOOB(Out-Of-Bag)、その詳細に迫ります。 ブートストラップサンプリング $N$ 個の訓練標 $\{\boldsymbol{x}_i, y_i \} _{i=1}^N$ から重複を許してランダムに同じだけの数$N$個を選ぶことで、訓練標集合を作る方法をブートストラップサンプリングと呼びます。ランダムフォレストではこのブートストラップサンプリングで作った$M$個の訓練標で多数の決定木を作ることから「フォレスト」という名称がついています。 このとき、$N$個から重複ありで$N$個選ぶので、中には選ばれなかったデータがあります。これをOOB(Out-Of-Bag)と呼びます。ランダムフォレストのエラーの評価に使われたりします(ココなど) $i$番目のデータ$ ( \boldsymbol{x}_i, y_i )$に着目すると、

    【機械学習】OOB (Out-Of-Bag) とその比率 - Qiita
  • 【ディープラーニング】ChainerでAutoencoderを試して結果を可視化してみる。 - Qiita

    ChainerでAutoencoderを試してみる記事です。前回の記事、「【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。」の続きとなります。ディープラーニングの事前学習にも使われる技術ですね。 記事で使用したコードはコチラから取得できます。 1.最初に AutoencoderとはAuto(自己) encode(符号化)er(器)で、データを2層のニューラルネットに通して、自分自身のデータと一致する出力がされるようパラメーターを学習させるものです。データだけあれば良いので、分類的には教師なし学習になります。 学習フェーズ こんなことをして何が嬉しいのかというと、 入力に合わせたパラメーター$w_{ji}$を設定できる。(入力データの特徴を抽出できる) その入力に合わせたパラメーターを使うことでディープなニューラルネットでの学習を可能にする(ランダム値

    【ディープラーニング】ChainerでAutoencoderを試して結果を可視化してみる。 - Qiita
  • 今までの投稿記事のまとめ(統計学/機械学習/数学 etc) - Qiita

    久々の投稿です、@kenmatsu4 です 久々なのですが、新規投稿ではなく今までの記事まとめです 昨年末くらいにまとめを書くといっていながら半年が経過してしまいましたが、ようやっと公開します。 統計学、機械学習、プログラミング、数学、その他にカテゴリ分けしてみました。

    今までの投稿記事のまとめ(統計学/機械学習/数学 etc) - Qiita
  • 【統計学】マルコフ連鎖モンテカルロ法(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
  • Pythonを使った回帰分析の概念の解説 その1 - Qiita

    最近、機械学習人工知能等が流行っておりその基盤となる統計学についての知識が重要となっていると思います。そこで、統計学の中でもその効果がわかりやすい回帰分析の原理についてPythonで計算したりグラフを書いたりしながら概念的に理解できることを目的として説明を試みたいと思います。 統計の専門家ではないので、もしご指摘・コメントありましたらぜひご連絡ください。数学的に厳密でない点もあると思いますが、ご容赦ください... データセット まずはデータセットを入手します。 carsデータ このページではPythonを用いて説明を進めますが、使用するデータは統計解析ソフトRのなかにあるデータセットのcarsデータを用います。ここからcsvデータをダウンロードして利用してください。(ただし、このデータのDescriptionによると1920年代のデータのようなので、あくまでサンプルとしてのデータになりま

    Pythonを使った回帰分析の概念の解説 その1 - Qiita
  • MacでPythonからアニメーションGIFを生成する環境設定 - Qiita

    アニメーションGIFをPythonで作るために必要なライブラリ、ImageMagickとPythonMagickのインストールが一苦労だったので、やり方をここにメモします。 こんなのとか、 こんなのとか、 こんなのが生成できます。 0.環境 OSX 10.10.3 Macbook (Retina, 12-inch, Early 2015) Annaconda 3.10.0 1.Image Magickのインストール sudo dscl . -append /Groups/wheel GroupMembership <ユーザー名> sudo chmod -R g+w /usr/local/include/ sudo chmod -R g+w /usr/local/share/man/man5 sudo chmod -R g+w /usr/local/lib/ brew link libpng

    MacでPythonからアニメーションGIFを生成する環境設定 - Qiita
  • 機械学習プロフェッショナルシリーズ輪読会スライドまとめ - Qiita

    機械学習プロフェッショナルシリーズ輪読会の発表スライドをまとめたページです。 随時更新します。 機械学習プロフェッショナルシリーズ輪読会 Conpass URL: http://ml-professional.connpass.com 1冊目:「深層学習」 2冊目:「異常検知と変化検知」 #1「深層学習」編 http://bookclub.kodansha.co.jp/product?isbn=9784061529021 正誤表 chapter 1: はじめに @a_macabee http://www.slideshare.net/beeEaMa/chapter-01-49404580 Chapter 2:順伝播型ニューラルネットワーク @a_macabee http://www.slideshare.net/beeEaMa/chapter-02-49488411 Chapter 3:確

    機械学習プロフェッショナルシリーズ輪読会スライドまとめ - Qiita
  • @kenmatsu4のマイページ - Qiita

    Kaggle Master (https://www.kaggle.com/kenmatsu4) データ解析的なことや、統計学的なこと、機械学習などについて書いています。 【今まで書いた記事一覧】http://qiita.com/kenmatsu4/items/623514c61166e34283bb Follow

    @kenmatsu4のマイページ - Qiita
  • 確率的勾配降下法とは何か、をPythonで動かして解説する - Qiita

    勾配降下法は何に使う? 勾配降下法は統計学や機械学習で多く使われています。特に機械学習というのは基的に何かしらの関数を最小化(最大化)する問題を数値解析的に解くことに帰結する場合が多いです。(e.g. 最小二乗法 → 誤差の二乗和を最小化(参考)、ニューラルネットワークのパラメータ決定 etc...) なので、基的にはひたすら微分して0となるところを探す問題ですね、微分して0。で、その微分して0となる値は何か、をプログラムで解く場合に重要になるのがこの勾配降下法です。幾つか勾配法にも種類がありますがここでは最急降下法、確率的勾配降下法の2つを扱います。まずはイメージをつかむために1次元のグラフで確認していきたいと思います。 1次元の場合 1次元の場合は、確率的という概念はなく、ただの勾配降下法になります。 (どういうことか、はのちほど) 1次元の例は、正規分布をマイナスにしたものを使っ

    確率的勾配降下法とは何か、をPythonで動かして解説する - Qiita
  • 【Python】matplotlibによるグラフ描画時のColormapのカスタマイズ - Qiita

    AdventarのPython Advent Calendar 2015 21日目の記事です。 Pythonでグラフを描く時、Matplotlibを使うと思います。また最近はSeabornというグラフを綺麗にしてくれるライブラリがあり、自分はそれを愛用しています。ただ、色をもっと自由に選びたい、設定したいという時に+αでColormapのカスタマイズをすると便利です。今回はこれを紹介します。 準備 まずはいつもの一式インポートです。大体Anacondaにあるものですが、足りないものは pip install <入れたいライブラリ名>で入れることができます。 import numpy as np import pandas as pd from sklearn import datasets import matplotlib.pyplot as plt import matplotlib.

    【Python】matplotlibによるグラフ描画時のColormapのカスタマイズ - Qiita
  • 【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita

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

    【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita
  • 【機械学習】「異常検知と変化検知」 Chapter 1の図をPythonで描いてみる。 - Qiita

    ウワサの赤い機械学習プロフェッショナルシリーズ「異常検知と変化検知」(http://ide-research.net/book/support.html#kodansha) 第1章のグラフをPythonで書いてみる、という記事です。 こんな感じで、アニメーションで標精度とROC曲線を描いたりしています。 コードの全体はこちら 解説は簡易的なものしかここでは記載していませんので、詳細を知りたい方は是非をご購入ください! 図1.1 時系列データの様々な異常の例 全く同じデータではなく、似たようなデータをPythonで生成、もしくはデータを探してplotしました。 (特に心電図データ1は探すのが一苦労でした・・・ ) これを描画するコード全体はこちら 図1.2 ラベル付きデータについての異常判定の説明 図1.2から異常度、指示関数をつなげて描画して関連性を可視化してみました。 2つの正規

    【機械学習】「異常検知と変化検知」 Chapter 1の図をPythonで描いてみる。 - Qiita
  • 【機械学習】iPython NotebookでSparkを起動させてMLlibを試す - Qiita

    SparkをiPython Notebook(Jupyter)で動作させ、MLlibを動かしてみるテストです。クラスタリング(KMeans)、分類:Classification(SVM, ロジスティック回帰, Random Forest)をirisデータで試しました。 環境 OS: Mac OSX Yosemite 10.10.3 Spark: spark-1.5.0-bin-hadoop2.6 Python: 2.7.10 |Anaconda 2.2.0 (x86_64)| (default, May 28 2015, 17:04:42) 稿では上記の環境で行ったものを記載していますので、他の環境では設定が異なる場合もあるかと思いますのでご注意ください。 1. Sparkバイナリのダウンロード&配置 http://spark.apache.org/downloads.html から s

    【機械学習】iPython NotebookでSparkを起動させてMLlibを試す - Qiita
  • 【機械学習】Spark MLlibをPythonで動かしてレコメンデーションしてみる - Qiita

    Sparkシリーズ第2弾です。今度はMLlibを使って協調フィルタリングを用いたレコメンデーションの実装を行います。 第一弾 【機械学習】iPython NotebookでSparkを起動させてMLlibを試す http://qiita.com/kenmatsu4/items/00ad151e857d546a97c3 環境 OS: Mac OSX Yosemite 10.10.3 Spark: spark-1.5.0-bin-hadoop2.6 Python: 2.7.10 |Anaconda 2.2.0 (x86_64)| (default, May 28 2015, 17:04:42) 稿では上記の環境で行ったものを記載していますので、他の環境では設定が異なる場合もあるかと思いますのでご注意ください。また、基的にiPython NotebookでのSparkの実行を想定しています。

    【機械学習】Spark MLlibをPythonで動かしてレコメンデーションしてみる - Qiita