科学の箱

科学・IT・登山の話題

機械学習

Pythonではじめる機械学習 – KDE

投稿日:

カーネル密度分布とは

カーネル密度分布とは一言でいうと滑らかなヒストグラムであり曲線になっている。標本データから確率密度を計算することにより標本がない部分についても確率密度を計算できる。
例えば犯罪の発生件数を地図上にプロットし、カーネル密度推定をすることで、データがない地域についても犯罪発生確率を計算できる。
カーネル密度分布は以下の利点がある。
  • 曲線つまり連続データとなっているために、Xに対するY を取得できる。この時Xに対するY(確率密度)を得る。
  • 曲線の形を見ることでサンプルの母集団の数を推測できる
  • 分布について多いところ、少ないところを視覚化できる

カーネル密度分布を生成する手順

  1. ヒストグラムを作成する。
    これが元データである。
  2. カーネル関数を決める。
    各標本点からの広がり方を決める。ガウス分布が基本、ほかにも一様分布、三角化を選べる
  3. バンドを指定→広がる幅
    各ヒストグラムの広がる大きさを指定する。小さすぎるとまとまらない。大きすぎると分析できないくらいに滑らかになる。

GMMとの比較

GMMはデータは正規分布から生成されている前提であった。これをパラメトリック推定と呼ぶ。しかし実際の現実においてはデータが特定の分布から
生成されているはわからないことが多い。このよう場合にはデータは特定の分布に依存しないという前提で推定する。これをノンパラメトリック推定と呼ぶ。カーネル密度推定はノンパラメトリックの一手法である。

実装

histの戻り値

pyplot.histは戻り値としてデータ、ビン、パッチを返す。

matplotlib.pyplot.hist — Matplotlib 3.1.1 documentation

ビンの幅を求める

bins[1:] – bins[:-1]によりbinsの幅を求めることができる。

bins[1:] - bins[:-1]
# array([0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292,
       0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292,
       0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292,
       0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292,
       0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292,
       0.39172292, 0.39172292, 0.39172292, 0.39172292, 0.39172292])

カーネル密度分布

Choice of bin size and location can lead to representations that have qualitatively different features.

This misalignment between points and their blocks is a potential cause of the poor histogram results seen here.

ビン幅およびその場所の選択の選択によってはヒストグラムの正当性に問題が生じる。ヒストグラムは□ブロックを積み上げたものである。ビン幅が広い場合には、本来データがない部分も、ヒストグラム上ではデータが存在することになる。

まずビンと実際のデータのずれを解消するために、データが存在する位置にブロックを積み上げる。これにより実際のデータを反映した形状になる。しかし形状としてはごつごつしているので取り扱いにくい

そこで各点における正規分布を計算し、グラフに表示することでなだらかな曲線を得ることができる。

これがカーネル密度分布の基本である。

 

 

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

売り上げデータの分析

利益 = 売り上げ – コスト 売り上げ = 客数 x 客単価 コスト ≒ 人件費 + 廃棄コスト 客数 客単価 = Σ 品物i x 購入数 客数を増やす方法 来てもらう方法 安売りキャン …

no image

仕事で始める機械学習 – 2.機械学習で何ができるか – 分類 – ロジスティック回帰

ロジスティック回帰 確率を得るために パーセプトロンの判別式により確率をとることはできない。パーセプトロンのヒンジ損失は正負のみを判断し、間違っている場合だけパラメータの更新をする。つまりぎりぎりで正 …

no image

データ分析について評価する

デザイン コントロールグループはあるか モデル 検定の前提は満たしているか(正規分布) 従属変数の尺度は適切か(名義、順序、間隔、比率) 独立変数の数は適切か モデルについて説明できるか(独立変数の数 …

no image

irisデータを読み込んでseabornでいろいろ表示をしてみる。

data可視化ライブラリのseabornではすぐに機械学習を始められるように質が良いデータが用意されている。その中でも最も有名であるirisについてpairplotを使って可視化してみる。 ここでは以 …

no image

pythonでEDAを実施する – 記述統計

データを取り込む data frameに変換する desdribe()メソッドで要約統計量を出力 各項目について残差分析(ここでは各データが平均値からどの程度離れているか、要するに分散の傾向を把握する …

2019年11月
« 10月   12月 »
 123
45678910
11121314151617
18192021222324
252627282930  

side bar top



アーカイブ

カテゴリー