サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
qiita.com/kenmatsu4
本ブログは、混合ガウス分布を題材に、EMアルゴリズムという機械学習界隈では有名なアルゴリズムを丁寧に解説することを目的として書いています。 また、この記事は、「数学とコンピュータ Advent Calendar 2017」の24日目の記事です。 そして長いです。 1. はじめに 観測した確率変数 $X$ をよく表現する、モデル $p(x|\theta)$ のパラメータを求めることが確率分布の推定ではよく行われます。つまり最尤法ですね。より複雑な分布になるとその分布の構造に潜在変数(Latent Variable) $Z$ があると仮定してモデル化を行うと、シンプルな組み合わせで $X$ の分布を表現できることがあります。今回扱う混合ガウス分布もその一つです。 のちに説明しますが、データセットの種別を完全データ集合と不完全データ集合に分けた場合、不完全データ集合に属するようなデータセットはデ
本記事は、AI道場「Kaggle」への道 by 日経 xTECH ビジネスAI① Advent Calendar 2019のアドベントカレンダー 9日目の記事です。 Permutation ImportanceがScikit-Learnのversion0.22より導入されました。この手法はKaggleでも使われており1 、特徴選択に有用な方法です。本記事ではこのPermutation Importanceの解説と、LightGBMで5-foldでCVしながら使ってみた例を紹介します。コードの全文はKaggle Kernelとして登録してありますので、コードだけサクっとみたい方はこちらをどうぞ。 1. Permutation Importanceとは Permutation Importanceとは、機械学習モデルの特徴の有用性を測る手法の1つです。よく使われる手法にはFeature Imp
機械学習をどう学んだか by 日経 xTECH ビジネスAI② Advent Calendar 2019 1日目の記事です。今日は @kenmatsu4 が機械学習をどうやって学んできたか、有用だった本の紹介をまじえて解説してみたいと思います。初のポエム記事ですw こちらは日経 xTECHさん企画のAdvent Calendarですが、ちなみに実はワタクシ @kenmatsu4 はAI道場「Kaggle」の正体 AI道場「Kaggle」の衝撃、DeNAが人材採用の特別枠を設けた訳 の中の人だったりもします 1. 学生時代 大学では経済学部に所属していまして、統計学の先生の下で勉強しました。もう15年以上前ですw 当時データサイエンスという言葉は当然なかったですが、今、データサイエンティストとして働いているのはやはりこの時期にデータ分析に携われたおかげです。文系だったので、数学は独学で勉強し
GBDTで予測分布が出せると話題のNGBoostを試してみましたので、備忘録がわりに投稿します。実際に動かしてみたい方はこちらを参考にしてください。 所感 modelチューニングをほぼしていない状態かつ、今回の小さいデータセットでは精度はほぼ同じ。 分布が算出できるのは使いどころがあるかもですね。 インポート あとでNGBoostとLightGBMをちょっと比較するのでlightgbmもインポートしておきます。 # ngboost from ngboost.ngboost import NGBoost from ngboost.learners import default_tree_learner from ngboost.scores import MLE from ngboost.distns import Normal, LogNormal # lightgbm import li
確率変数に関するイェンセン(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$が従う分布です。 つまり、イェンセンの不等式は下記の赤い丸(期待値をとってから、
統計学、可視化してみるシリーズの続編です。 カイ二乗分布は、ABテストのカイ二乗検定等でよく使う分布です。$\chi^2$と書いてカイ二乗です。グラフにすると下記のような形で、自由度と呼ばれるkの値に応じて形が変化します。 (グラフ描画のコードはこちら) 今回もWikipedia先生にカイ二乗分布の定義を聞いてみると、 独立に標準正規分布に従う $k$ 個の確率変数 $X_1, ..., X_k$ をとる。 このとき、統計量$$Z = \sum_{i = 1}^k X_i^2$$の従う分布のことを自由度 $k$ のカイ二乗分布と呼ぶ。 という返事が返ってきました。 うーん、どういうこと?正規分布の密度関数を2乗するの?どうやら違うようです。 まず、「独立に標準正規分布に従う $k$ 個の確率変数」ということなのでまずは標準正規分布に従う乱数のヒストグラムを書いてみようとおもいます。30,0
ランダムフォレストに関する解説を読んでいるとよく遭遇する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 )$に着目すると、
思ったより簡単にJupyter Notebook(iPython Notebook)でCythonを試せることが分かったのでメモです。Cythonは実行前にコンパイルすること、静的な型付けを行うことで処理を高速化します。 (本記事の.ipynbファイルはGithubのここにアップロードしてあります。) 環境 試した環境は下記です。MacとAnacondaで試しています。Anacondaを導入していれば特に準備は不要です。 Python 3.5.1 |Anaconda custom (x86_64)| (default, Jun 15 2016, 16:14:02) [GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin IPython 5.0.0
久々の投稿です、@kenmatsu4 です 久々なのですが、新規投稿ではなく今までの記事まとめです 昨年末くらいにまとめを書くといっていながら半年が経過してしまいましたが、ようやっと公開します。 統計学、機械学習、プログラミング、数学、その他にカテゴリ分けしてみました。
アニメーション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
ハミルトニアンモンテカルロ法(HMC)の動作原理をアニメーションを用いて理解してみようという記事です。 先日の記事、「【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。」の続編にあたります。 豊田先生の書籍「基礎からのベイズ統計学」の例題を使わせていただき、サンプリング対象の分布は今回ガンマ分布とします。本記事ではアニメーションに使った部分の理論的な解説しかしませんので、HMCの詳細な解説はこちらの書籍をご参照いただければと思います。 はじめに 推定する対象は$\theta$を変数としたガンマ分布です。ベイズ推定で推定したいパラメーターを$\theta$で表すので、$\theta$の分布として表されます。1 ガンマ分布はこちらです。 $$ f(\theta|\alpha, \lambda) = {\lambda^{\alpha} \over
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
Julia上でデータセットを取得して回帰分析(線形回帰、ポアソン回帰)までやってみるという記事です。 MacにJuliaを導入して、Jupyter Notebookで動かすという最初の最初から書いていきます。なぜなら僕がJulia初心者だからです Jupyterの"Ju"はJuliaの"Ju"らしいので、ぜひJupyterを使いましょう ちなみに、Juliaの本を探そうとAmazonで"Julia"を検索すると痛い目にあうので(特に職場では)気をつけましょうw (参考: https://twitter.com/Kenmatsu4/status/663990102478028800) 環境 OSX Yosemite 10.10.5 コードの全文 本記事で扱ったコードの全文はGitHub https://github.com/matsuken92/Qiita_Contents/blob/mas
StanをつかってTitanicデータをロジスティック回帰してみて、さらに分類の性能評価を少し行ってみるという記事です。 この記事で使う確率的プログラミング言語「Stan」では分布のパラメーターの推定に、ハミルトニアンモンテカルロ法(HMC法)とNUTSという手法が用いられています。厳密には乱数の発生原理が異なるのですが、もう少しシンプルな手法にマルコフ連鎖モンテカルロ法 メトロポリス・ヘイスティングス法(MH法)があります。この動作原理について、私@kenmatsu4が書いた スライド, 基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法 【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。 の2点がありますので、よければ参考としてください。やっていることのイメージを付ける意図であればMH法とHMC法は大きく違わない
qiita.com
Pythonでマルコフ連鎖モンテカルロ法(MCMC)を実行できるライブラリ、PyMC3のチュートリアルの「超訳」その2「Case study 1: 確率的ボラティリティモデル」です。 今回も要所要所で原文のニュアンスを基に超訳した部分があります。 原文のURL http://pymc-devs.github.io/pymc3/getting_started/#case-study-1-stochastic-volatility コードはGithubにもまとめてあります。( https://github.com/matsuken92/Qiita_Contents/blob/master/General/case_study1_StochasticVolatirity.ipynb ) ⇒ 動かすために一部改変したのでこちらにアップしました。 もっと現実的な問題を題材としてPyMC3の使い方を理
次のページ
このページを最初にブックマークしてみませんか?
『@kenmatsu4のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く