科学の箱

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

データ分析の基本と業務

開発生産性は調和平均で計算する。 安全性の在庫の計算には正規分布を利用できる。 標準偏差=5であることを利用すると何が言えるか。 Z=1.96で95%をカバーする。 よって 5 x 1.96でほぼ10 …

no image

クラスタリング

Rによるクラスタ分析の実行 県別の持家率と自家用車普及率からクラスタ分析を実行し似た県を探してみる。。 データソース 持家と自家用車普及率のデータは下記から取得する 持家普及率のデータはこちらから取得 …

no image

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

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

no image

ジニ係数(再掲)

ジニ係数について修正した。とりあえずコード。 revenue<-read.csv(file=”data.csv”, head=TRUE) revenue$TotalRevenues_n < …

no image

UCI datasets

データ分析の勉強をするときに便利なUCI datasets https://archive.ics.uci.edu/ml/datasets.html Related posts:pythonのデータ分 …

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

side bar top



アーカイブ

カテゴリー