科学の箱

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

R Dataset – AirPassengers

データの説明 1949~1960年における月別飛行機搭乗者数 フォーマット このデータは時系列データであることがわかる。 > str(AirPassengers)  Time-Series [1 …

no image

AWStatで基本指標を読む

ウェッブサイトの分析でまず見るべきことは月ごとのトレンドである。確認すべき指標はPV, 訪問数、UUdとなる。 AWStatではこれらの項目はWhen -> Month Historyで棒グラフ …

no image

irisをナイーブベイズで分類

ナイーブベイズの概要 ナイーブベイズは教師ありの分類アルゴリズムの一つである。 計算アルゴリズムとしてはベイズ定理を用いている。 機械学習における特徴としてはいかがある 実装が簡単であり、複雑なハイパ …

no image

DictVectorizerを使ってカテゴリデータについて特徴抽出をする

都市における温度データを考える。 measure = [ {‘city’: ‘Dubai’, ‘temperature’: 33.}, {‘city’: ‘London’, ‘temperature’ …

no image

手書き数字のデータセットについてイメージを確認

sklearnには手書き数字のデータが用意されている。このデータはイメージの分類モデルを学ぶためによいスタートである。今回はこのバイナリデータを読み込み、イメージとして確認する。 内容 load_di …

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

side bar top



アーカイブ

カテゴリー