科学の箱

科学・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

Pythonではじめる機械学習 – k-Means

k-Meansの概要 k-Meansは教師なし学習の一つであり、あらかじめ指定された数にグループを分ける。 例えば今身長である程度まとまって席に座っている生徒を考えます。k-Meansでは最初に分ける …

no image

線形回帰とリッジ回帰とラッソ回帰の違い

用語 線形回帰 データから平均二乗誤差を最低にするパラメータΘを求めて、直線で回帰すること $$ y = Θ_0 + Θ_1 \times x $$ コスト関数 損失関数とも呼ばれる。実際のデータと予 …

no image

線形回帰と最急降下法

線形回帰 世の中の様々な出来事(y)はある事象(x)に対して比例することが多い。もちろん厳密に比例するわけではなくずれは生じる。しかしこのxとyが比例すると仮定した場合、中学校で習った一次式でこの関係 …

no image

仕事で始める機械学習 – 2.機械学習で何ができるか – 分類 – パーセプトロン

パーセプトロン 判別式 それぞれのデータに対して重みづけした値 ヒンジ損失 パーセプトロンの損失関数をヒンジ損失という。パーセプトロン基準とも呼ばれる。 sum(wx) 状態 ラベル label*su …

no image

Excelによる単回帰分析

エクセルでの単回帰分析をについて手順をまとめる。エクセルの使い方にあわせて分析結果の解釈の仕方も書いておく。 データは勉強時間に対する点数とする。これは作ったデータであるが、線形回帰にフィットするよう …

2019年11月
月 火 水 木 金 土 日
« 10月   12月 »
 123
45678910
11121314151617
18192021222324
252627282930  

side bar top



アーカイブ

カテゴリー