(57)【特許請求の範囲】
【請求項１】
コンピュータに、
少なくとも１つの属性を含む入力変数と、前記入力変数に対応する出力変数との関係を多次元座標上の点で示すｎ個（ｎは２以上の整数）のサンプル集合に含まれる複数の点に対し、前記複数の点の平均ベクトルが０となり、かつ、前記サンプル集合の共分散行列が単位行列となる白色化サンプル集合情報を生成し、前記白色化サンプル集合情報と白色化行列とを乗算した行列が単位行列となる前記白色化行列を生成し、
前記白色化行列を用いて、前記複数の点から、複数の白色化された点を生成し、
前記複数の白色化された点それぞれについて、前記多次元座標に基づくそれぞれの点からの距離が最も近い点から所定番目までの点である近傍点をそれぞれ特定し、
前記複数の白色化された点それぞれについて、各白色化された点と対応する近傍点との距離をそれぞれ算出し、各距離から得られる値を配列した行列を生成して、取得した入力値ｘと前記サンプル集合に含まれるｉ番目（ｉは１以上ｎ以下の整数）の点の入力変数ｘｉの類似度をパラメータによって決める実数値関数であるカーネル関数Ｋｉ（ｘ）に対して、生成した前記行列を前記パラメータとして与える処理を実行させ、
前記複数の白色化された点それぞれに対応する複数のカーネル関数Ｋｉ（ｘ）を用いた下記の式（１）に示される回帰関数Ｅに、取得した入力値ｘを代入して得られる値を、前記入力値ｘに対応する出力値とする
ことを特徴とする推定プログラム。
【数１】
0006507512.tif 000008
ここで、ｙｉは、前記サンプル集合に含まれるｉ番目の点（ｘｉ，ｙｉ）の出力変数を示し、Ｋｉ（ｘ）は前記ｉ番目の点の入力変数ｘｉに対応するカーネル関数を示す。
【請求項２】
コンピュータが実行する推定方法であって、
少なくとも１つの属性を含む入力変数と、前記入力変数に対応する出力変数との関係を多次元座標上の点で示すｎ個（ｎは２以上の整数）のサンプル集合に含まれる複数の点に対し、前記複数の点の平均ベクトルが０となり、かつ、前記サンプル集合の共分散行列が単位行列となる白色化サンプル集合情報を生成し、前記白色化サンプル集合情報と白色化行列とを乗算した行列が単位行列となる前記白色化行列を生成し、
前記白色化行列を用いて、前記複数の点から、複数の白色化された点を生成し、
前記複数の白色化された点それぞれについて、前記多次元座標に基づくそれぞれの点からの距離が最も近い点から所定番目までの点である近傍点をそれぞれ特定し、
前記複数の白色化された点それぞれについて、各白色化された点と対応する近傍点との距離をそれぞれ算出し、各距離から得られる値を配列した行列を生成して、取得した入力値ｘと前記サンプル集合に含まれるｉ番目（ｉは１以上ｎ以下の整数）の点の入力変数ｘｉの類似度をパラメータによって決める実数値関数であるカーネル関数Ｋｉ（ｘ）に対して、生成した前記行列を前記パラメータとして与える処理を実行し、
前記複数の白色化された点それぞれに対応する複数のカーネル関数Ｋｉ（ｘ）を用いた下記の式（１）に示される回帰関数Ｅに、取得した入力値ｘを代入して得られる値を、前記入力値ｘに対応する出力値とする
ことを特徴とする推定方法。
【数１】
0006507512.tif 000009
ここで、ｙｉは、前記サンプル集合に含まれるｉ番目の点（ｘｉ，ｙｉ）の出力変数を示し、Ｋｉ（ｘ）は前記ｉ番目の点の入力変数ｘｉに対応するカーネル関数を示す。
【請求項３】
少なくとも１つの属性を含む入力変数と、前記入力変数に対応する出力変数との関係を多次元座標上の点で示すｎ個（ｎは２以上の整数）のサンプル集合に含まれる複数の点に対し、前記複数の点の平均ベクトルが０となり、かつ、前記サンプル集合の共分散行列が単位行列となる白色化サンプル集合情報を生成し、前記白色化サンプル集合情報と白色化行列とを乗算した行列が単位行列となる前記白色化行列を生成し、前記白色化行列を用いて、前記複数の点から、複数の白色化された点を生成し、前記複数の白色化された点それぞれについて、前記多次元座標に基づくそれぞれの点からの距離が最も近い点から所定番目までの点である近傍点をそれぞれ特定する特定部と、
前記複数の白色化された点それぞれについて、各白色化された点と対応する近傍点との距離をそれぞれ算出し、各距離から得られる値を配列した行列を生成して、取得した入力値ｘと前記サンプル集合に含まれるｉ番目（ｉは１以上ｎ以下の整数）の点の入力変数ｘｉの類似度をパラメータによって決める実数値関数であるカーネル関数Ｋｉ（ｘ）に対して、生成した前記行列を前記パラメータとして与える処理を実行する実行部とを有し、
前記複数の白色化された点それぞれに対応する複数のカーネル関数Ｋｉ（ｘ）を用いた下記の式（１）に示される回帰関数Ｅに、取得した入力値ｘを代入して得られる値を、前記入力値ｘに対応する出力値とする
ことを特徴とする推定装置。
【数１】
0006507512.tif 000010
ここで、ｙｉは、前記サンプル集合に含まれるｉ番目の点（ｘｉ，ｙｉ）の出力変数を示し、Ｋｉ（ｘ）は前記ｉ番目の点の入力変数ｘｉに対応するカーネル関数を示す。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定プログラム等に関する。
【背景技術】
【０００２】
近年、複数のサンプル点が与えられた場合に、各サンプル点を回帰分析することで、回帰関数を特定し、特定した回帰関数を用いて、新たな入力値が与えられた場合に、新たな入力値に対応する出力値を推定する従来技術がある。
【０００３】
従来技術で利用される回帰分析には、カーネル回帰分析や、多項式回帰分析などがある。カーネル回帰分析では、バンド幅行列とよばれるパラメータの最適値を探索し、探索したパラメータを用いて、回帰関数を特定する。多項式回帰分析では、多項式の次数および各項の係数の最適値を探索し、回帰関数を特定する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Nadaraya,  E.  A.  (1964).  "On  Estimating  Regression".  Theory  of  Probability  and  its  Applications  9  (1):  141-2.
【非特許文献２】Watson,  G.  S.  (1964).  "Smooth  Regression  Analysis".  Sankhya:  The  Indian  Journal  of  Statistics,  Series  A  26  (4):  359-372.
【非特許文献３】Wand,  P.  and  Jones,  C.  (1994).  "Kernel  Smoothing".  Chapman  &  Hall/CRC  Monographs  on  Statistics  &  Applied  Probability,  Taylor  &  Francis.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、入力値に対応する出力値を推定するための計算量が大きくなるという問題がある。
【０００６】
入力値が高次元の場合や、各サンプル点が複雑な分布形状を持つ場合には、カーネル回帰のバンド幅を調整する処理や、多項式回帰の次数および係数を調整する時間が大きくなる。
【０００７】
１つの側面では、計算量が大きくなることを防いで入力値に対応する出力値を推定することができる推定プログラム、推定方法および推定装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、推定プログラムは、コンピュータに下記の処理を実行させる。コンピュータに、サンプル集合に含まれる複数の点について、各点の近傍に存在する近傍点をそれぞれ特定する処理を実行させる。コンピュータに、サンプル集合に含まれる点と該点に対応する近傍点とを選択する処理を実行させる。コンピュータに、選択した点および近傍点に基づいて、選択した点のベクトル値を平均とし、かつ、近傍点に基づいて形状が決定されるカーネル関数を特定する処理を、サンプル集合に含まれる各点に対して実行する処理を実行させる。コンピュータに、入力値を取得した場合に、入力値に対応する出力値を、サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで推定する処理を実行させる。
【発明の効果】
【０００９】
本発明の１実施態様によれば、計算量が大きくなることを防いで入力値に対応する出力値を推定することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例に係る推定装置の構成を示す機能ブロック図である。
【図２】図２は、サンプル集合情報のデータ構造の一例を示す図である。
【図３】図３は、ｋ近傍情報のデータ構造の一例を示す図である。
【図４】図４は、白色化サンプル集合のデータ構造の一例を示す図である。
【図５】図５は、近傍点を特定する処理を説明するための図である。
【図６】図６は、本実施例に係る回帰関数の一例を示す図である。
【図７】図７は、推定部の処理を説明するための図である。
【図８】図８は、本実施例に係る推定装置の処理手順を示すフローチャートである。
【図９】図９は、推定プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する推定プログラム、推定方法および推定装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
本実施例に係る推定装置の構成の一例について説明する。図１は、本実施例に係る推定装置の構成を示す機能ブロック図である。図１に示すように、この推定装置１００は、通信部１１０、入力部１２０、表示部１３０、記憶部１４０、制御部１５０を有する。
【００１３】
通信部１１０は、ネットワークを介して他の装置とデータ通信を実行する処理部である。例えば、通信部１１０は、通信装置等に対応する。例えば、通信部１１０は、後述する近傍サイズ情報１４１、サンプル集合情報１４２を、他の装置から受信した場合には、受信した近傍サイズ情報１４１、サンプル集合情報１４２を、制御部１５０に出力する。
【００１４】
入力部１２０は、各種の情報を推定装置１００に入力する入力装置である。例えば、入力部１２０は、キーボードやマウス、タッチパネル等に対応する。例えば、利用者は、入力部１２０を操作して、近傍サイズ情報１４１、サンプル集合情報１４２を入力してもよい。
【００１５】
表示部１３０は、制御部１５０から出力される各種データを表示する表示装置である。例えば、表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。
【００１６】
記憶部１４０は、近傍サイズ情報１４１、サンプル集合情報１４２、ｋ近傍情報１４３、関数パラメータ情報１４４を有する。記憶部１４０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子などの記憶装置に対応する。
【００１７】
近傍サイズ情報１４１は、サンプル集合情報１４２のある点のｋ近傍を求める場合のサイズを指定するパラメータである。
【００１８】
サンプル集合情報１４２は、複数のサンプル点の情報を有する。図２は、サンプル集合情報のデータ構造の一例を示す図である。
【００１９】
図２に示す例において、横軸は「時間帯」等の入力変数に対応する軸である。入力変数は、時間帯に限らず、曜日、降水量、気温など複数の属性を含む多次元変数であってもよい。縦軸は「所要時間」等の出力変数に対応する軸である。例えば、所要時間は、ある区間を通過するために要した所要時間である。出力変数は、所要時間に限らず、通行料、燃費など複数の属性を含む多次元変数であってもよい。また、サンプル集合情報１４２は、各点Ｘ１〜Ｘ１５が配置されている。各点の座標を適宜、（ｘ１，ｙ１）、・・・、（ｘ１５，ｙ１５）とする。サンプル集合情報１４２は、各点Ｘ１〜Ｘ１５以外の点を有していてもよい。
【００２０】
ｋ近傍情報１４３は、サンプル集合情報１４２の点と、この点の近傍に存在する近傍点との関係を示す情報である。図３は、ｋ近傍情報のデータ構造の一例を示す図である。図３に示すように、このｋ近傍情報１４３は、サンプル集合情報１４２に含まれる点と、近傍点とを対応付ける。近傍点の数は、近傍サイズｋにより指定される数となる。
【００２１】
関数パラメータ情報１４４は、各点の交叉カーネル関数のパラメータの情報を保持する。関数パラメータ情報１４４の説明は後述する。
【００２２】
制御部１５０は、取得部１５１と、白色化処理部１５２と、特定部１５３と、逆白色化処理部１５４と、実行部１５５と、推定部１５６とを有する。制御部１５０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１５０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００２３】
取得部１５１は、通信部１１０または入力部１２０から、近傍サイズ情報１４１およびサンプル集合情報１４２を取得する。取得部１５１は、近傍サイズ情報１５１およびサンプル集合情報１４２を、記憶部１４０に登録する。
【００２４】
白色化処理部１５２は、サンプル集合情報１４２に対して白色化処理を実行する処理部である。白色化処理部１５２は、白色化を行ったサンプル集合情報１４２を、特定部１５３に出力する。以下の説明では、白色化処理を行ったサンプル集合情報１４２を、白色化サンプル集合と表記する。なお、白色化処理部１５２は、サンプル集合情報１４２のＸ１〜Ｘ１５について、ｘ１〜ｘ１５に対して白色化処理を実行して値を調整し、ｙ１〜ｙ１５の値はそのままとする。
【００２５】
ここで、白色化処理の一例について説明する。白色化処理部１５２は、サンプル集合情報１４２に含まれるｘ１〜ｘ１５の平均ベクトルが０となり、かつ、ｘ１〜ｘ１５の共分散行列が単位行列となるように、サンプル集合情報１４２の各点のｘ１〜ｘ１５の値を調整する。
【００２６】
白色化処理部１５２が、サンプル集合情報１４２に含まれるｘ１〜ｘ１５の平均ベクトルを０にする処理の一例について説明する。白色化処理部１５２は、サンプル集合情報１４２の各ｘ１〜ｘ１５の平均ベクトルを計算し、各点のベクトルの値から平均ベクトルの値を減算することにより、サンプル集合情報１４２に含まれる点の平均ベクトルを０にする。
【００２７】
白色化処理部１５２が、サンプル集合情報１４２に含まれる点の共分散行列が単位行列となるように調整する処理の一例について説明する。白色化処理部１５３は、サンプル集合情報１４２の各ｘ１〜ｘ１５に対して、間隔を拡大、縮小する処理等を実行することで、各ｘ１〜ｘ１５の値を更新し、更新後の各ｘ１〜ｘ１５の値によって、共分散行列を算出する。白色化処理部１５２は、共分散行列が単位行列となる、各ｘ１〜ｘ１５の間隔を算出する。
【００２８】
白色化処理部１５２は、上述した平均ベクトルを０にする処理と、共分散行列を単位行列とする処理とを実行することで、式（１）を満たす白色化行列「Ｔ」を特定する。式（１）において、式（１）において、「Ｓ」は、サンプル集合情報１４２に含まれる点のベクトル値を並べたサンプル行列を示すものであり、「Ｅ[ＴＳ]」は、白色化サンプル行列ＴＳの平均ベクトルを示すものであり、「Ｃｏｖ[ＴＳ]」は、白色化サンプル行列ＴＳの共分散行列を示すものであり、「Ｉ」は、単位行列を示すものである。
【００２９】
Ｅ[ＴＳ]＝０、  Ｃｏｖ[ＴＳ]＝Ｉ・・・（１）
【００３０】
例えば、白色化処理部１５２は、サンプル集合情報１４２に含まれる各ｘ１〜ｘ１５に、白色化行列Ｔを乗算することで、各ｘ１〜ｘ１５の値を更新し、白色化サンプル集合を生成する。白色化処理部１５２は、生成した白色化サンプル集合の情報を、特定部１５３に出力する。また、白色化処理部１５２は、白色化行列Ｔの情報を逆白色化処理部１５４に出力する。
【００３１】
図４は、白色化サンプル集合のデータ構造の一例を示す図である。図４に示す例において、横軸は白色化処理部１５２が出力した第１主成分Ａ１に対応する軸である。縦軸は、所要時間の出力変数に対応する軸である。白色化処理部１５２により白色化処理されることで、図３に示す各点Ｘ１〜Ｘ１５の位置は、図４に示す各点Ｘ１〜Ｘ１５の位置に移動している。
【００３２】
特定部１５３は、白色化サンプル集合の各点について、点の近傍に存在する近傍点を特定する処理部である。特定部１５３は、点と、この点に対応する近傍点との関係を、ｋ近傍情報１４３に登録する。特定部１５３は、近傍点の数を、近傍点サイズ情報１４１のサイズに対応させる。
【００３３】
特定部１５３の処理の一例について説明する。図５は、近傍点を特定する処理を説明するための図である。ここでは一例として、近傍点サイズ情報１４１のサイズをｋとする。特定部１５３は、各点について、他の点とのユーグリッド距離をそれぞれ算出する。図５の各矢印が、ユーグリッド距離を示す。特定部１５３は、基準となる点とのユーグリッド距離が最も近いものからｋ番目までの点を、基準となる点の近傍点とする。
【００３４】
例えば、基準点を点Ｘ１とし、この点Ｘ１とのユーグリッド距離が近い点を近い順に、Ｘ２、Ｘ３、Ｘ４、Ｘ５、・・・とする。また、近傍サイズｋを「３」とする。この場合には、特定部１５３は、点Ｘ１の近傍点を「Ｘ２、Ｘ３、Ｘ４」とし、点と近傍点との関係を、ｋ近傍情報１４３に登録する。特定部１５３は、他の点Ｘ２〜Ｘ１５についても、同様にして、近傍点を特定し、ｋ近傍情報１４３に登録する。
【００３５】
図１の説明に戻る。逆白色化処理部１５４は、白色化サンプル集合に含まれる各ｘ１〜ｘ１５に、白色化行列の逆行列「Ｔ-１」を乗算することで、逆白色化処理を実行する処理部である。白色化サンプル集合を逆白色化した情報を、サンプル集合情報と表記する。逆白色化処理部１５４は、サンプル集合情報を、実行部１５５に出力する。
【００３６】
実行部１５５は、サンプル集合情報に含まれる点とこの点に対応する近傍点とを選択し、選択した点および近傍点に基づいて、選択した点のベクトル値を平均とし、近傍点に基づいて形状が決定されるカーネル関数を特定する処理を、サンプル集合に含まれる各点に対して実行する。実行部１５５は、サンプル集合に含まれる各点に対応する出力値を入力値におけるカーネル関数の値で加重平均することで、サンプル集合に対応する回帰関数を特定する。実行部１５５は、回帰関数に対応するパラメータの情報を、関数パラメータ情報１４４に登録する。
【００３７】
実行部１５５の処理の一例について説明する。例えば、実行部１５５は、式（２）に基づいて、回帰関数を特定する。式（２）に含まれるＫｉは、カーネル関数である。カーネル関数Ｋｉは、式（３）によって定義される。
【００３８】
【数１】
0006507512.tif 000002
【００３９】
【数２】
0006507512.tif 000003
【００４０】
式（３）において、ｘｉは、実行部１５５が選択した点Ｘのｘに対応する値が設定される。例えば、実行部１５５が点Ｘ１を選択し、この点Ｘ１のカーネル関数を求める場合には、ｘｉにｘ１の値が設定される。
【００４１】
式（３）において、Ｈｉは、点Ｘのカーネル関数の形状を決める変数であり、式（４）によって定義される。式３に含まれるｄｉｊは、式（５）によって定義される。式（５）に含まれる「式（７）」は、式（６）によって定義される。
【００４２】
【数３】
0006507512.tif 000004
【００４３】
【数４】
0006507512.tif 000005
【００４４】
【数５】
0006507512.tif 000006
【００４５】
【数６】
0006507512.tif 000007
【００４６】
式（５）および式（６）に含まれる変数ｘｉｊは、実行部１５５が選択した点Ｘの各近傍点のｘにそれぞれ対応する。実行部１５５は、点Ｘと近傍点との関係を、ｋ近傍情報１４３を基にして特定する。例えば、点Ｘ１の近傍点をＸ２、Ｘ３、Ｘ４とすると、点Ｘ１に対応する変数ｘｉｊは「ｘ１２、ｘ１３、ｘ１４」となる。式（６）は、近傍点のｘの平均値を求めるものである。式（５）は、近傍点の平均値と、ある近傍点のｘとのノルムを求めるものである。
【００４７】
例えば、実行部１５５は、サンプル集合情報に含まれる点とこの点に対応する近傍点とを選択し、選択した点および近傍点と、式（３）〜（６）に基づいて、サンプル集合情報に含まれる点のカーネル関数Ｋｉをそれぞれ算出する。実行部１５５は、サンプル集合情報の点と、この点に対応するカーネル関数との関係を、関数パラメータ情報１４４に登録する。
【００４８】
実行部１５５は、サンプル集合情報の各点のカーネル関数を算出した後に、式（２）によって、回帰関数を特定する。図６は、本実施例に係る回帰関数の一例を示す図である。図６において、横軸は図２と同様にして「時間帯」等の入力変数に対応する軸である。縦軸は図２と同様にして「所要時間」等の出力変数に対応する軸である。回帰関数１０のグラフは、サンプル集合の各点に対応する出力値を入力値におけるカーネル関数の値で加重平均したものに対応する。
【００４９】
推定部１５６は、通信部１１０または入力部１２０から入力値を取得した場合に、入力値に対応する出力値を、サンプル集合情報の各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで推定する処理部である。
【００５０】
例えば、推定部１５６は、関数パラメータ情報１４４を参照し、サンプル集合情報の各点に対応するカーネル関数を特定する。また、推定部１５６は、式（１）に基づいて、サンプル集合情報の各点に対応する出力値を入力値におけるカーネル関数の値で加重平均した回帰関数を特定する。推定部１５６は、回帰関数の情報を、実行部１５５から取得してもよい。
【００５１】
推定部１５６は、入力値を受け付けた場合に、入力値と回帰関数とを比較して、出力値を推定する。図７は、推定部の処理を説明するための図である。図７において、横軸は図２と同様にして「時間帯」等の入力変数に対応する軸である。縦軸は図２と同様にして「所要時間」等の出力変数に対応する軸である。回帰関数１０のグラフは、サンプル集合の各点に対応する出力値を入力値におけるカーネル関数の値で加重平均したものに対応する。
【００５２】
推定部１５６は、入力値Ｂ１を取得すると、回帰関数１０と入力値Ｂ１とを基にして、出力値Ｂ２を推定する。推定部１５６は、推定した出力値の情報を、表示部１３０に出力する。または、推定部１５６は、推定した出力値の情報を、ネットワークを介して外部の装置に送信する。
【００５３】
次に、本実施例に係る推定装置１００の処理手順の一例について説明する。図８は、本実施例に係る推定装置の処理手順を示すフローチャートである。図８に示すように、推定装置１００の取得部１５１は、近傍サイズ情報１４１を取得する（ステップＳ１０１）。取得部１５１は、サンプル集合情報１４２を取得する（ステップＳ１０２）。
【００５４】
推定装置１００の白色化処理部１５２は、サンプル集合情報１４２に対して白色化処理を実行する（ステップＳ１０３）。推定装置１００の特定部１５３は、白色化サンプル集合に含まれる各点のｋ近傍を計算する（ステップＳ１０４）。
【００５５】
推定装置１００の逆白色化処理部１５４は、白色化サンプル集合に対して逆白色化処理を実行する（ステップＳ１０５）。推定装置１００の実行部１５５は、サンプル集合情報の各点に対応する各カーネル関数のパラメータを算出する（ステップＳ１０６）。
【００５６】
推定装置１００の推定部１５６は、入力値を取得し（ステップＳ１０７）、回帰関数を計算する（ステップＳ１０８）。推定部１５６は、入力値と回帰関数とに基づいて出力値を特定し、出力値を出力する（ステップＳ１０９）。
【００５７】
次に、本実施例に係る推定装置１００の効果について説明する。推定装置１００は、サンプル集合に含まれる点を平均とし、かつ、点の近傍点に基づいて形状が決定されるカーネル関数を特定する処理を、サンプル集合に含まれる各点に対して実行する。そして、推定装置１００は、入力値を取得した場合に、入力値に対応する出力値を、サンプル集合に含まれる各点に対応する出力値を入力値におけるカーネル関数の値で加重平均することで推定する。このため、計算量が大きくなることを防いで入力値に対応する出力値を推定することができる。
【００５８】
例えば、推定装置１００は、サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで、回帰関数を特定し、入力値と回帰関数とを比較して、出力値を推定する。本実施例に係る回帰関数は、例えば式（２）を利用するが、この式（２）では、最適値を求めるような計算を行わないため、計算量を削減することができる。
【００５９】
また、推定装置１００は、カーネル関数を利用する場合に、カーネル関数の平均を、サンプル集合の点に合わせるため、カーネル関数がサンプル集合の点から外れ、回帰関数の精度が低下することを防止することができる。
【００６０】
推定装置１００は、各点のカーネル関数を求める場合に、サンプル集合の点の近傍点を用いるため、バンド幅の調整等を実行しなくても、サンプル集合の点のカーネル関数の形状を精度よく推定でき、適切な回帰関数を求めることができる。
【００６１】
次に、上記実施例に示した推定装置１００と同様の機能を実現する推定プログラムを実行するコンピュータの一例について説明する。図９は、推定プログラムを実行するコンピュータの一例を示す図である。
【００６２】
図９に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７とを有する。そして、各装置２０１〜２０７は、バス２０８に接続される。
【００６３】
ハードディスク装置２０７は、特定プログラム２０７ａ、実行プログラム２０７ｂ、推定プログラム２０７ｃを有する。ＣＰＵ２０１は、特定プログラム２０７ａ、実行プログラム２０７ｂ、推定プログラム２０７ｃを読み出してＲＡＭ２０６に展開する。特定プログラム２０７ａは、特定プロセス２０６ａとして機能する。実行プログラム２０７ｂは、実行プロセス２０６ｂとして機能する。推定プログラム２０７ｃは、推定プロセス２０６ｃとして機能する。
【００６４】
なお、特定プログラム２０７ａ、実行プログラム２０７ｂ、推定プログラム２０７ｃについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００が特定プログラム２０７ａ、実行プログラム２０７ｂ、推定プログラム２０７ｃを読み出して実行するようにしてもよい。
【００６５】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６６】
（付記１）コンピュータに、
サンプル集合に含まれる複数の点について、各点の近傍に存在する近傍点をそれぞれ特定し、
サンプル集合に含まれる点と該点に対応する近傍点とを選択し、選択した点および近傍点に基づいて、選択した点のベクトル値を平均とし、かつ、前記近傍点に基づいて形状が決定されるカーネル関数を特定する処理を、前記サンプル集合に含まれる各点に対して実行し、
入力値を取得した場合に、前記入力値に対応する出力値を、前記サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで推定する
処理を実行させることを特徴とする推定プログラム。
【００６７】
（付記２）前記推定する処理は、前記サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで、回帰関数を特定し、前記入力値と前記回帰関数とを比較して、前記出力値を推定することを特徴とする付記１に記載の推定プログラム。
【００６８】
（付記３）前記特定する処理は、ｋ近傍に基づいて、前記点の近傍に存在する近傍点をそれぞれ特定することを特徴とする付記１または２に記載の推定プログラム。
【００６９】
（付記４）前記カーネル関数を特定する処理は、選択した点にカーネル関数を割り当て、前記カーネル関数の平均を選択した点のベクトル値に合わせ、前記カーネル関数のモーメントを、選択した点の近傍点のモーメントに合わせることで、前記点に対応するカーネル関数を特定することを特徴とする付記１、２または３に記載の推定プログラム。
【００７０】
（付記５）コンピュータが実行する推定方法であって、
コンピュータが実行する推定方法であって、
サンプル集合に含まれる複数の点について、各点の近傍に存在する近傍点をそれぞれ特定し、
サンプル集合に含まれる点と該点に対応する近傍点とを選択し、選択した点および近傍点に基づいて、選択した点のベクトル値を平均とし、かつ、前記近傍点に基づいて形状が決定されるカーネル関数を特定する処理を、前記サンプル集合に含まれる各点に対して実行し、
入力値を取得した場合に、前記入力値に対応する出力値を、前記サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで推定する
処理を実行することを特徴とする推定方法。
【００７１】
（付記６）前記推定する処理は、前記サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで、回帰関数を特定し、前記入力値と前記回帰関数とを比較して、前記出力値を推定することを特徴とする付記５に記載の推定方法。
【００７２】
（付記７）前記特定する処理は、ｋ近傍に基づいて、前記点の近傍に存在する近傍点をそれぞれ特定することを特徴とする付記５または６に記載の推定方法。
【００７３】
（付記８）前記カーネル関数を特定する処理は、選択した点にカーネル関数を割り当て、前記カーネル関数の平均を選択した点のベクトル値に合わせ、前記カーネル関数のモーメントを、選択した点の近傍点のモーメントに合わせることで、前記点に対応するカーネル関数を特定することを特徴とする付記５、６または７に記載の推定方法。
【００７４】
（付記９）サンプル集合に含まれる複数の点について、各点の近傍に存在する近傍点をそれぞれ特定する特定部と、
サンプル集合に含まれる点と該点に対応する近傍点とを選択し、選択した点および近傍点に基づいて、選択した点のベクトル値を平均とし、かつ、前記近傍点に基づいて形状が決定されるカーネル関数を特定する処理を、前記サンプル集合に含まれる各点に対して実行する実行部と、
入力値を取得した場合に、前記入力値に対応する出力値を、前記サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで推定する推定部と
を有することを特徴とする推定装置。
【００７５】
（付記１０）前記推定部は、前記サンプル集合に含まれる各点に対応する出力値を前記入力値におけるカーネル関数の値で加重平均することで、回帰関数を特定し、前記入力値と前記回帰関数とを比較して、前記出力値を推定することを特徴とする付記９に記載の推定装置。
【００７６】
（付記１１）前記特定部は、ｋ近傍に基づいて、前記点の近傍に存在する近傍点をそれぞれ特定することを特徴とする付記９または１０に記載の推定装置。
【００７７】
（付記１２）前記実行部は、選択した点にカーネル関数を割り当て、前記カーネル関数の平均を選択した点のベクトル値に合わせ、前記カーネル関数のモーメントを、選択した点の近傍点のモーメントに合わせることで、前記点に対応するカーネル関数を特定することを特徴とする付記９、１０または１１に記載の推定装置。
【符号の説明】
【００７８】
１００  推定装置
１５３  特定部
１５５  実行部
１５６  推定部
【図１】
0006507512.tif 000011
【図２】
0006507512.tif 000012
【図３】
0006507512.tif 000013
【図４】
0006507512.tif 000014
【図５】
0006507512.tif 000015
【図６】
0006507512.tif 000016
【図７】
0006507512.tif 000017
【図８】
0006507512.tif 000018
【図９】
0006507512.tif 000019