- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

- ネームスペース一覧
- ネームスペースメンバ

関数
ネームスペース mist::histogram
EMアルゴリズムを用いた混合分布の推定

ヒストグラムから正規分布の混合分布を推定する関数群 [詳細]

## 関数
template<class Array >
bool | estimate_mixture (const Array &rSamples, mixture::distribution *opdp, size_t nSamples, size_t nComponents, double minimum, double bin, size_t nMaxIteration, double tolerance, size_t &nIteration)
| 1次元ヒストグラムから正規分布の混合分布を推定する
template<class T , class Allocator >
bool | estimate_mixture (const array2< T, Allocator > &rSamples, mixture::distribution2 *opdp, size_t nComponents, double minimum1, double minimum2, double bin, size_t nMaxIteration, double tolerance, size_t &nIteration)
| 2次元ヒストグラムから正規分布の混合分布を推定する
template<class Array1 , class Array2 >
bool | estimate_mixture (const Array1 &rSamples, Array2 &pdp, double minimum, double bin, typename Array1::size_type nMaxIteration, double tolerance, typename Array1::size_type &nIteration)
| データ系列から正規分布の混合分布を推定する
template<class Array1 , class Array2 >
bool | estimate_mixture (const Array1 &rSamples, Array2 &pdp, double minimum, double bin, typename Array1::size_type nMaxIteration, double tolerance)
| データ系列から1次元正規分布の混合分布を推定する
template<class Array >
bool | estimate_mixture (const Array &rSamples, mixture::distribution *pdp, typename Array::size_type nComponents, double minimum, double bin, typename Array::size_type nMaxIteration, double tolerance)
| データ系列から正規分布の混合分布を推定する
template<class T , class Allocator , class Array1 >
bool | estimate_mixture (const array2< T, Allocator > &rSamples, Array1 &pdp, double minimum1, double minimum2, double bin, typename Array1::size_type nMaxIteration, double tolerance, typename Array1::size_type &nIteration)
| データ系列から正規分布の混合分布を推定する
template<class T , class Allocator , class Array1 >
bool | estimate_mixture (const array2< T, Allocator > &rSamples, Array1 &pdp, double minimum1, double minimum2, double bin, typename Array1::size_type nMaxIteration, double tolerance)
| データ系列から1次元正規分布の混合分布を推定する
template<class T , class Allocator >
bool | estimate_mixture (const array2< T, Allocator > &rSamples, mixture::distribution2 *pdp, typename array2< T, Allocator >::size_type nComponents, double minimum1, double minimum2, double bin, typename array2< T, Allocator >::size_type nMaxIteration, double tolerance)
| データ系列から2次元正規分布の混合分布を推定する

## 説明

ヒストグラムから正規分布の混合分布を推定する関数群

## 関数

template<class Array >

bool mist::histogram::estimate_mixture | ( | const Array & | rSamples,
|  | mixture::distribution * | opdp,
|  | size_t | nSamples,
|  | size_t | nComponents,
|  | double | minimum,
|  | double | bin,
|  | size_t | nMaxIteration,
|  | double | tolerance,
|  | size_t & | nIteration
| ) |  |

1次元ヒストグラムから正規分布の混合分布を推定する

注意
  入力となるデータの配列として，通常のデータ配列，MISTで提供するコンテナ，STLで提供されているvector，dequeコンテナが利用可能です．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | opdp | … 分布パラメータ
  [in] | nSamples | … 入力サンプル数
  [in] | nComponents | … 推定する混合分布の数
  [in] | minimum | … ヒストグラムを作成した際の最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差
  [out] | nIteration | … 実際のループ回数

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::mixture::distribution::av, mist::statistics::average(), と mist::statistics::variance().

template<class T , class Allocator >

bool mist::histogram::estimate_mixture | ( | const array2< T, Allocator > & | rSamples,
|  | mixture::distribution2 * | opdp,
|  | size_t | nComponents,
|  | double | minimum1,
|  | double | minimum2,
|  | double | bin,
|  | size_t | nMaxIteration,
|  | double | tolerance,
|  | size_t & | nIteration
| ) |  |

2次元ヒストグラムから正規分布の混合分布を推定する

注意
  入力となるデータの配列として，MISTで提供する2次元コンテナが利用可能です．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | opdp | … 分布パラメータ
  [in] | nComponents | … 推定する混合分布の数
  [in] | minimum1 | … ヒストグラムを作成した際の第1軸方向での最小値
  [in] | minimum2 | … ヒストグラムを作成した際の第2軸方向での最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差
  [out] | nIteration | … 実際のループ回数

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::mixture::distribution2::av, mist::array< T, Allocator >::empty(), mist::array2< T, Allocator >::height(), mist::array< T, Allocator >::size(), mist::array2< T, Allocator >::width(), mist::vector2< T >::x, と mist::vector2< T >::y.

template<class Array1 , class Array2 >

bool mist::histogram::estimate_mixture | ( | const Array1 & | rSamples,
|  | Array2 & | pdp,
|  | double | minimum,
|  | double | bin,
|  | typename Array1::size_type | nMaxIteration,
|  | double | tolerance,
|  | typename Array1::size_type & | nIteration
| ) |  |

データ系列から正規分布の混合分布を推定する

注意
  入力となるデータの配列として，MISTで提供するコンテナもしくはSTLで提供されているvector，dequeコンテナが利用可能です．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | pdp | … 分布パラメータ
  [in] | minimum | … ヒストグラムを作成した際の最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差
  [out] | nIteration | … 実際のループ回数

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::estimate_mixture().

template<class Array1 , class Array2 >

bool mist::histogram::estimate_mixture | ( | const Array1 & | rSamples,
|  | Array2 & | pdp,
|  | double | minimum,
|  | double | bin,
|  | typename Array1::size_type | nMaxIteration,
|  | double | tolerance
| ) |  |

データ系列から1次元正規分布の混合分布を推定する

注意
  入力となるデータの配列として，MISTで提供するコンテナもしくはSTLで提供されているvector，dequeコンテナが利用可能です．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | pdp | … 分布パラメータ
  [in] | minimum | … ヒストグラムを作成した際の最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::estimate_mixture().

template<class Array >

bool mist::histogram::estimate_mixture | ( | const Array & | rSamples,
|  | mixture::distribution * | pdp,
|  | typename Array::size_type | nComponents,
|  | double | minimum,
|  | double | bin,
|  | typename Array::size_type | nMaxIteration,
|  | double | tolerance
| ) |  |

データ系列から正規分布の混合分布を推定する

注意
  入力となるデータの配列として，MISTで提供するコンテナもしくはSTLで提供されているvector，dequeコンテナが利用可能です．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | pdp | … 分布パラメータ
  [in] | nComponents | … 推定する混合分布の数
  [in] | minimum | … ヒストグラムを作成した際の最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::estimate_mixture().

template<class T , class Allocator , class Array1 >

bool mist::histogram::estimate_mixture | ( | const array2< T, Allocator > & | rSamples,
|  | Array1 & | pdp,
|  | double | minimum1,
|  | double | minimum2,
|  | double | bin,
|  | typename Array1::size_type | nMaxIteration,
|  | double | tolerance,
|  | typename Array1::size_type & | nIteration
| ) |  |

データ系列から正規分布の混合分布を推定する

注意
  入力となるデータの配列として，MISTで提供するコンテナもしくはSTLで提供されているvector，dequeコンテナが利用可能です．
  入力データが array2 で分布が mixture::distribution2 の場合は2次元正規分布推定になります．
  正しい平均値を求めるためには，EMアルゴリズムの推定結果の平均値に，入力されたヒストグラムのオフセットを足してください．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | pdp | … 分布パラメータ
  [in] | minimum1 | … ヒストグラムを作成した際の第1軸方向での最小値
  [in] | minimum2 | … ヒストグラムを作成した際の第2軸方向での最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差
  [out] | nIteration | … 実際のループ回数

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::estimate_mixture(), と mist::array< T, Allocator >::size().

template<class T , class Allocator , class Array1 >

bool mist::histogram::estimate_mixture | ( | const array2< T, Allocator > & | rSamples,
|  | Array1 & | pdp,
|  | double | minimum1,
|  | double | minimum2,
|  | double | bin,
|  | typename Array1::size_type | nMaxIteration,
|  | double | tolerance
| ) |  |

データ系列から1次元正規分布の混合分布を推定する

注意
  入力となるデータの配列として，MISTで提供するコンテナもしくはSTLで提供されているvector，dequeコンテナが利用可能です．
  入力データが array2 で分布が mixture::distribution2 の場合は2次元正規分布推定になります．
  正しい平均値を求めるためには，EMアルゴリズムの推定結果の平均値に，入力されたヒストグラムのオフセットを足してください．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | pdp | … 分布パラメータ
  [in] | minimum1 | … ヒストグラムを作成した際の第1軸方向での最小値
  [in] | minimum2 | … ヒストグラムを作成した際の第2軸方向での最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::estimate_mixture(), と mist::array< T, Allocator >::size().

template<class T , class Allocator >

bool mist::histogram::estimate_mixture | ( | const array2< T, Allocator > & | rSamples,
|  | mixture::distribution2 * | pdp,
|  | typename array2< T, Allocator >::size_type | nComponents,
|  | double | minimum1,
|  | double | minimum2,
|  | double | bin,
|  | typename array2< T, Allocator >::size_type | nMaxIteration,
|  | double | tolerance
| ) |  |

データ系列から2次元正規分布の混合分布を推定する

注意
  入力となるデータの配列として，MISTで提供するコンテナもしくはSTLで提供されているvector，dequeコンテナが利用可能です．
  入力データは，MISTで提供する vector2 タイプある必要があります．
  正しい平均値を求めるためには，EMアルゴリズムの推定結果の平均値に，入力されたヒストグラムのオフセットを足してください．

引数

  [in] | rSamples | … 入力サンプル
  [in,out] | pdp | … 分布パラメータ
  [in] | nComponents | … 推定する混合分布の数
  [in] | minimum1 | … ヒストグラムを作成した際の第1軸方向での最小値
  [in] | minimum2 | … ヒストグラムを作成した際の第2軸方向での最小値
  [in] | bin | … ヒストグラムを作成した際のビン幅
  [in] | nMaxIteration | … 最大ループ回数
  [in] | tolerance | … 対数尤度の打ち切り許容相対誤差

戻り値

  true | … 混合分布の推定に成功
  false | … 混合分布の推定に失敗，もしくは入力データが空

参照先 mist::estimate_mixture().