以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る予測問題の学習用データおよび検定用データの概要の一例を示す。予測問題においては、図1に示す学習用のデータを用いて予測モデルを生成する。そして、学習用のデータとは異なる検定用データを、生成した予測モデルに入力して、当該検定用データに対応する予測結果を得る。
例えば、時系列予測においては、例えば過去のデータ等の結果がわかっている学習用データに基づき、未来を予測する予測モデルを生成し、当該予測モデルに実使用時または未来のデータ等の結果が不明のデータを入力して未来の予測結果を得ていた。例えば、一の地域(例えば、「伊豆」)に存在するホテルの過去の情報から、当該一の地域に存在するホテルの未来の価格および需要を予測すること、また、一の地域に存在するホテルの過去の情報から、他の地域(例えば、「熱海」)に存在するホテルの未来の価格および需要を予測すること等を実行する。
しかしながら、このような予測に用いる学習用データは、予測モデルの生成に適した一般性の高いデータ、即ち、未来のデータまたは実使用時のデータにも共通する特徴を有するデータと、未来のデータまたは実使用時のデータとは異なる学習用データに特有のデータとを有する。また、未来のデータまたは実使用時のデータも、特有のデータを有する場合がある。しかしながら、未来のデータまたは実使用時のデータを予測前に予め十分に入手することは困難である。
本実施形態において、一例として、ある地域Aに存在するホテルの過去の情報から、ホテルの価格および需要の予測モデルを生成して他の地域Bに存在するホテルの価格および需要を予測する場合を説明する。この場合、地域Aに存在するホテルの過去の情報(学習用データ)には、地域Bに存在するホテルの情報(未来のデータまたは実使用時のデータ)に近い一般性の高いデータと、地域Bに存在するホテルの情報とは異なり、地域Aに特有のデータとがある。
ここで、地域Aに特有のデータは、例えば、地域Aに特有の事情(景観および行事等)に左右されたホテルの価格および需要である。一例として、地域A内の特定のホテルの近くで、特定の日に花火大会が開催される場合がある。このような地域Aに特有のデータを用いて予測モデルを生成すると、地域Bに存在するホテルの価格および需要の予測に誤差を生じさせてしまうので、当該予測モデルの生成においては除去することが望ましい。しかしながら、予め地域Bに存在するホテルの情報がわかっていなければ、特有のデータだけを除去することは困難であった。
また、仮に、特有のデータであることが推定できても、当該データを除去すべきか否かを判断する基準は曖昧で、使用者の経験および感覚等に左右されるものであった。また、特有のデータが複数存在する場合、当該複数のデータのうちいずれを除去すべきかを判断することは、経験ある使用者でも困難であった。そこで、本実施形態の生成装置は、学習用データのうちから、特有のデータの影響を適切に低減して、予測誤差を低減させた予測モデルを生成する。
図2は、本実施形態に係る生成装置100の構成例を示す。生成装置100は、学習用データが入力され、当該学習用データに基づいて、予測誤差を低減させるように修正した予測モデルを生成する。即ち、生成装置100は、入力された学習用データから学習した学習済モデルを検査する検定用データを生成し、学習済モデルの検査に基づいて、当該学習済モデルを修正する。生成装置100は、取得部110と、記憶部120と、モデル生成部130と、モデル修正部140とを備える。
取得部110は、学習用データを取得する。ここで、学習用データは、一例として、特徴毎に分類されたデータであり、入力された入力特徴量を要素とする特徴ベクトルで表現される。特徴ベクトルは、一例として、ホテルの場合には、日付、人数構成、施設、プラン、および部屋情報等の特徴毎に分類される。また、特徴ベクトルは、それぞれの特徴が更に入力特徴量に分割され、当該入力特徴量に対応する具体的な値を要素とする。
例えば、日付の特徴は、宿泊年月日、宿泊月、曜日等の入力特徴量を要素とする。また、人数構成の特徴は、大人人数、子供人数、幼児人数等の入力特徴量を要素とする。
また、学習用データは、特徴ベクトルに対応する出力特徴量を含む。出力特徴量は、当該特徴ベクトルの各要素に対応する特徴量であり、一例として、ホテルの価格である。
取得部110は、ユーザが入力特徴量を直接入力することに応じて学習用データを取得してよく、これに代えて、予め定められた形式で記憶された入力特徴量のデータを読み出して取得してもよい。取得部110は、ネットワーク等に接続され、当該ネットワークを介して学習用データを取得してもよい。取得部110は、取得した学習用データを記憶部120およびモデル生成部130に供給する。
記憶部120は、取得部110に接続され、取得部110から受け取った学習用データを記憶する。また、記憶部120は、生成装置100が予測モデルを生成する過程における予測モデルをそれぞれ記憶してもよい。
モデル生成部130は、取得部110に接続され、取得部110から受け取った学習用データを用いた学習により、複数の入力特徴量から出力特徴量を予測する学習済モデルを生成する。モデル生成部130は、一例として、ホテルの過去の予約情報データ(日付、人数、ホテル属性、プラン属性)の具体的な値を入力特徴ベクトルとした学習用データとし、当該学習用データと対応するホテルの宿泊料金である出力特徴量のデータに基づき、新たな(未来の)予約情報データを入力すると対応する価格(出力特徴量)の予測結果を出力する学習済モデルを生成する。
ここで、出力特徴量は、一例として、入力特徴量に対応する未来の特徴量(例えば、未来の価格)である。即ち、この場合、モデル生成部130は、ホテルの価格=f(日付、人数、ホテル属性、プラン属性)となる関数fを生成する。
モデル生成部130は、受け取った学習用データの全部または一部を用いた学習により、入出力関係を一意に定める関数を学習済モデルとして生成する。モデル生成部130は、生成した学習済モデルをモデル修正部140に供給する。これに代えて、モデル生成部130は、記憶部120に接続されてよく、この場合、生成した学習済モデルを記憶部120に記憶し、モデル修正部140は、学習済モデルを記憶部120から読み出す。
モデル修正部140は、学習用データとは少なくとも一部が異なる検定用データを用い、モデル生成部130によって生成された学習済モデルにおける一部の入力特徴量の影響度を低減して、実使用する修正モデルを生成する。モデル修正部140は、一部の入力特徴量の影響度を低減した場合に、当該一部の入力特徴量の変化に伴う予測結果の変動を低減させるように、修正モデルを生成する。
ここで、影響度は、例えば、生成した学習済モデルの入力特徴量に対する重み付けの係数で定める。当該重み付けの値は、一例として0から1の間の値であり、当該値が小さいほど当該値により重み付けされた入力特徴量は、生成される学習済モデルに与える影響を低下させる。即ち、この場合、モデル修正部140は、一部の入力特徴量に対応する重み付けの値を0に近づけるように小さくして当該一部の特徴量の学習済モデルへの影響度を低減させ、学習済モデルから修正モデルを生成する。
例えば、モデル修正部140は、重み付けの値を1/2以下の値に変更する。また、モデル修正部140は、重み付けの値を1/4以下の値に変更してもよく、また、1/8以下の値にしてもよい。また、モデル修正部140は、影響度を低減すべきパラメータを予め定められた値(例えば、平均値、最小値、および指定値等)にしてもよい。
ここで、モデル修正部140は、生成された学習済モデルにおける一部の入力特徴量を除去して、修正モデルを生成してもよい。即ち、モデル修正部140は、一部の入力特徴量の重み付けを0にしてよく、これに代えて、一部の入力特徴量の入力項目そのものを除去してもよい。これにより、モデル修正部140は、生成した修正モデルを用いて予測実行する場合に、当該一部の特徴量の変化に伴う予測結果の変動を零にする。モデル修正部140は、検査部142と、選択部144と、判定部146とを有する。
検査部142は、学習用データとは少なくとも一部が異なる検定用データを用いて学習済モデルを検査する。検査部142は、一例として、記憶部120に接続され、記憶された学習用データを読み出して、学習用データの一部を検定用データとして用いる。検査部142は、一例として、学習用データである複数の特徴ベクトルのうちの、一部の特徴ベクトルを検定用データとして用いる。また、検査部142は、当該一部の特徴ベクトルに対応する出力特徴量も検定用データとして用いる。
検査部142は、検定用データをモデル生成部130が生成した学習済モデルに適用して、学習済モデルを検査する。検査部142は、検定用データについて、学習済モデルにおける入力特徴量の影響度を低減させた場合の予測結果を算出する。検査部142は、一例として、学習済モデルにおける各入力特徴量の重み付けを入力特徴量毎に順次小さくし、対応する予測結果を順次算出する。
選択部144は、検査部142に接続され、学習済モデルの検査結果に基づいて、影響度を低減させるべき入力特徴量を選択する。選択部144は、検定用データについて、学習済モデルにおける影響度を低減させた場合に予測結果が目標とする出力特徴量により近くなる入力特徴量を、影響度を低減させるべき入力特徴量として選択する。
判定部146は、選択部144に接続され、検査部142の検査と選択部144の影響度を低減させるべき入力特徴量の選択による学習済モデルの修正を続けるか否かを判定する。判定部146は、例えば、学習済モデルにおいて、選択部144が選択した入力特徴量の影響度を低減させたモデルの精度が、予め定められた精度の範囲内に含まれる場合、学習済モデルの修正を停止して、修正したモデルを修正モデルとして出力する。
以上の本実施形態に係る生成装置100は、学習用データから生成された学習済モデルに、学習用データとは異なる検定用データを適用し、検定用データの目標値により近い予測値が得られるように学習済モデルにおける入力特徴量の影響を低減させる。即ち、生成装置100は、予測値が検定用データの目標値から遠くなる要因となる入力特徴量を、学習データには特有で、予測には不向きな特有のデータを代表する入力特徴量と判断して学習済モデルにおける影響度を低減させる。
図3は、本実施形態に係る生成装置100の動作フローの構成例を示す。まず、取得部110は、学習用データを取得する(S210)。取得部110は、ユーザの入力によって学習用データを取得してよい。この場合、ユーザは、入力するデータが特有のデータであるか否かを予め曖昧に判断できたとしても、この段階では得られているデータの全てを入力することが好ましい。
次に、モデル生成部130は、取得した学習用データに応じた学習済モデルを生成する(S220)。モデル生成部130は、特徴ベクトルに線形回帰・分類および非線形回帰・分類等を実行して、学習済モデルを生成する。モデル生成部130は、記憶部120に接続され、生成した学習済モデルを記憶部120に記憶してよい。
モデル生成部130は、例えば、複数の入力特徴量のそれぞれ、または複数の入力特徴量のそれぞれに予め定められた第1の関数を適用した値を、学習対象の複数の重みのそれぞれにより重み付けして、さらに予め定められた第2の関数によって変換することで出力特徴量の予測値を算出する学習済モデルを生成する。モデル生成部130は、一般化線形モデル、その非線形な拡張としてカーネル回帰・分類、またその正則化付きモデルに基づく手法を用いてよい。この場合、モデル生成部130は、用いるモデルに応じて定まる第1の関数および第2の関数を用いてよい。
これに代えて、モデル生成部130は、複数の入力特徴量が学習対象の条件を満たすか否かに応じて異なる予測値を算出する学習済モデルを生成してもよい。即ち、モデル生成部130は、回帰木・決定木およびその集団学習法であるランダムフォレスト等の手法を用いてよい。
モデル生成部130は、例えば、取得部110が取得したデータの全てを学習用データとして用いて、学習済モデルを生成する。これに代えて、モデル生成部130は、取得したデータの一部を学習用データと用いて、学習済モデルを生成してもよい。モデル生成部130は、出力特徴量を予測する関数fを学習済モデルとして生成する。
ここで、学習用データには、地域Bに存在するホテルの情報に近い一般性の高いデータに加え、地域Bに存在するホテルの情報とは異なる地域Aに特有のデータを含む。学習済モデルは、このような学習データを用いて学習して生成させたモデルなので、当該学習済モデルに、地域Bに存在するホテルの情報を予測させても、誤差が大きくなってしまう。
また、学習用データには、地域Aにおけるホテルの未来の情報に近い一般性の高いデータに加え、地域Aにおけるホテルの未来の情報とは異なる地域Aの過去に特有のデータを含む場合もある。学習済モデルは、このような学習データを用いて学習して生成させたモデルなので、当該学習済モデルに、地域Aの未来の情報等を予測させても、誤差が大きくなってしまう。
ここで、学習用データとは別に、地域Bに存在するホテルの情報を予測させる検定用データおよび検定結果(即ち、予測に対応する目標値)等の情報が予め判明している場合は、当該情報を基に、転移学習等の従来手法を用いて予測モデルを適切に学習することができる。しかしながら、取得部110が学習用データしか取得していない場合は、このような従来手法を用いることができない。
そこで、モデル修正部140は、特有データの影響を強く受けた入力特徴量を推定し、推定した入力特徴量の影響を低減させて修正モデルを生成する。即ち、検査部142は、取得部110が取得したデータを用いて学習済モデルを検査する(S230)。
検査部142は、例えば、学習用データである複数の特徴ベクトルのうちの一部の特徴ベクトルを検定用データとして用いる。また、検査部142は、モデル生成部130が取得したデータのうちの一部を学習用データとして学習済モデルを生成する場合、残りの一部のデータを含むデータを検定用データとして用いてよい。この場合、検査部142は、学習用データと検定用データに重複が無くてもよく、即ち、学習用データと検定用データは互いに異なるデータでもよい。これに代えて、検査部142は、学習用データと検定用データに重複があってもよい。
検査部142は、学習用データとは少なくとも一部が異なる検定用データを学習済モデルに適用して、検定用データに対応する出力特徴量の予測値を算出する。そして、検査部142は、検定用データの出力特徴量(即ち、目標値)と予測結果を比較する。
ここで、学習用データのうち、地域Aに特有のデータは、例えば、地域特有のイベントがあってホテル価格が高騰した、地域特有の観光地の観光シーズンでホテルの需要が高くなった、その地域に突発的に生じた災害等の影響でホテルが稼働しなくなった等の、一般性の高いデータに比べて特異なデータである。即ち、このような特異なデータは、学習済モデルの予測誤差を大きくすることが予想される。
したがって、学習用データおよび検定用データのどちらかまたは両方に、このような特異なデータが含まれている場合、学習済モデルによって予測される当該検定用データに対応する出力特徴量の予測結果は、検定用データの出力特徴量と大きな誤差を生じることになる。その一方、少なくとも学習用データにこのような特有なデータが含まれない場合は、学習用データとは異なる検定用データを用いても、学習済モデルの予測結果と当該検定用データの出力特徴量との誤差は、特有なデータが含まれる場合に比べて少なくとも小さくなる。
例えば、学習用データに含まれる複数の特徴ベクトルのうち、特定の宿泊年月日に地域独特の特別なイベントが開催されてホテルの価格が高騰した結果を反映した特徴ベクトルが含まれている場合、モデル生成部130は、このような特有のデータを反映した予測結果を出力する学習済モデルを生成する。そして、このような特有のデータを含まない検定データを学習済モデルに代入して適用すると、予測結果と検定用データの出力特徴量には誤差が生じることになる。
即ち、予測結果と検定用データの出力特徴量の誤差は、検定用データとは異なる特異な学習データの影響を反映した結果である。そこで検査部142は、検定用データの出力特徴量を予測結果の目標とし、当該目標と学習済モデルによる予測結果の誤差を算出して、検定用データとは異なるデータに含まれる特異なデータの影響を検査する。
具体的には、検査部142は、検定データについて、学習済モデルにおける各入力特徴量の重みを1つずつ低減させた場合の予測結果と、予測結果の目標の誤差を算出する。即ち例えば、検査部142は、学習済モデルにおける「宿泊年月日」の入力特徴量に対応する重みを低減させた場合の検定データに対応する予測結果と、予測結果の目標の誤差を算出する。次に検査部142は、学習済モデルにおける「宿泊月」の入力特徴量に対応する重みを低減させた場合の検定データに対応する予測結果と、予測結果の目標の誤差を算出する。
このように、検査部142は、学習済モデルにおける各入力特徴量に対応する重みを入力特徴量毎に低減させ、対応する予測結果と、予測結果の目標の誤差を算出する。検査部142は、全ての入力特徴量に対応する重みを1つずつ低減させ、対応する予測結果と、予測結果の目標の誤差を算出することが望ましい。また、検査部142は、検定用データが複数の特徴ベクトルを含む場合、それぞれの特徴ベクトルを学習済モデルに適用し、入力特徴量に対応する重みを1つずつ低減させ、対応する予測結果と、予測結果の目標の誤差をそれぞれ算出する。
次に、選択部144は、検査部142が算出した誤差に基づき、影響度を低減させるべき入力特徴量を選択する(S240)。選択部144は、例えば、検定用データについて、学習済モデルにおける影響度を低減させた場合に予測結果が目標とする出力特徴量との誤差がより小さくなる入力特徴量を、影響度を低減させるべき入力特徴量として選択する。すなわち、選択部144は、影響度を低減すると誤差が小さくなる入力特徴量(例えば、宿泊年月日)が、学習済みモデルにおいて、検定用データには含まれない特有の学習用データを代表しているものとし、影響度を低減させるべき入力特徴量として選択する。
ここで、選択部144は、検定用データが複数の特徴ベクトルを含む場合、検査部142が算出したそれぞれの特徴ベクトルのそれぞれの誤差のうち、影響度を低減させた場合に最も誤差が小さくさせる入力特徴量を、影響度を低減させるべき入力特徴量として選択する。これに代えて、選択部144は、複数の特徴ベクトルのそれぞれの誤差の平均を求め、影響度を低減させた場合に平均誤差またはその他の中央値等の統計量の意味でより誤差が小さくなるようにする入力特徴量を、影響度を低減させるべき入力特徴量として選択してもよい。
次に、判定部146は、選択された入力特徴量に対応する重みを低減させた予測モデルの予測結果の精度が向上したか否かに応じて、学習済モデルの修正(即ち、影響度を低減または除外する入力特徴量の特定)を継続するか否かを判定する。判定部146は、一例として、予測モデルの予測結果と目標とする出力特徴量との誤差が、予め定められた誤差範囲内に含まれない場合、学習済モデルを検査するステップS230および入力特徴量を選択するステップS240を繰り返す。即ち、判定部146は、学習済モデルの精度を向上させた修正モデルが得られるまで、影響度を低減させるべき入力特徴量を更に選択部144に選択させる。
この場合、選択部144は、学習済モデルを初期の予測モデルとして順次、影響度を低減させることで予測結果が目標とする出力特徴量により近くなる入力特徴量を選択していく。そして、検査部142は、入力特徴量が選択されるごとに順次、予測モデルにおける選択された入力特徴量の影響度を低減していくことにより、修正モデルを生成する。即ち、検査部142は、学習済モデルにおける、選択した入力特徴量に対する重みの大きさを低減する。
即ち、選択部144は、学習済モデルにおいて影響度を低減させるべき入力特徴量を1つ選択する(S240)。そして判定部146が学習済モデルの修正を継続させる場合、当該影響度を低減させるべき入力特徴量の情報を検査部142に供給する。そして検査部142は、選択された入力特徴量の重みを低減させた予測モデルを新たな学習済モデルとして更新し、更新した学習済モデルの検査を実行する(S230)。ここで、検査部142は、記憶部120に記憶された学習済モデルを更新してよく、これに代えて、記憶部に記憶された学習済モデルとは別個に更新した学習済モデルを記憶してもよい。
検査部142は、更新した学習済モデルにおいて、学習済モデルの更新前に選択部144が選択していない入力特徴量の影響度を順に1つずつ低減させた場合の予測結果と、予測結果の目標の誤差とをそれぞれ算出する。選択部144は、更新した学習済モデルにおいて、影響度を低減させるべき入力特徴量を1つ選択する(S240)。判定部146は、学習済モデルにおいて選択された入力特徴量の影響度を低減させた予測モデルの予測結果と、目標とする出力特徴量との誤差が、予め定められた誤差範囲内に含まれるまでステップS230およびステップS240を繰り返す。
判定部146は、予測モデルの予測結果と目標とする出力特徴量との誤差が、予め定められた誤差範囲内に含まれる場合、学習済モデルの予測精度が向上したと判定し、当該予測モデルを修正した修正モデルとして出力する。以上の動作フローを実行することにより、本実施形態に係る生成装置100は、学習用データのうち特有のデータの影響度を低減させ、一般性の高いデータの影響度を相対的に高めた修正モデルを得ることができる。したがって、当該修正モデルに、異なる地域または未来に基づくデータを入力することにより、精度よく異なる地域または未来の予測結果を得ることができる。
また、生成装置100は、取得部110が取得したデータから、学習用データおよび検定用データを生成して学習済モデルを検査することができる。即ち、生成装置100は、学習用データの他に、検定用データおよび目標値等のデータを用いずに学習済モデルを修正することができる。
そして、生成装置100は、ユーザにより入力特徴量が予め特有のデータと判断されていたとしても、あえて学習用データに含め、検査を実行することが好ましい。即ち、予め特有と判断されたデータが、実際には一般性の高いデータとして用いることができる場合に、ユーザの経験および感覚等のあいまいな判断で、特有のデータと判断して除去されてしまうことを防ぐことができる。
以上の本実施形態の生成装置100は、影響度を低減させるべき入力特徴量に対して、重みを小さくすることを説明した。これに代えて、生成装置100は、重みを0にする、または入力特徴量をの項目を除去して無視してもよい。これによって、生成装置100は、特有のデータと推定された入力特徴量の影響を無くし、一般性の高いデータの影響を相対的により高くすることができる。
また、以上の本実施形態の生成装置100は、選択部144が、影響度を低減させるべき入力特徴量を1つずつ選択する例を説明した。これに代えて、選択部144は、重みを低減させた場合の予測結果と目標とする出力特徴量との誤差の変化を、大きい方から順に順位付けし、予め定められた順位までの入力特徴量を、影響度を低減させるべき入力特徴量として選択してもよい。これによって、モデル修正部140は、選択された複数の入力特徴量の重みを低減させつつ、学習済モデルの修正を実行して、予測精度が向上するまでの時間を短縮することができる。
また、以上の本実施形態の生成装置100は、判定部146が予測モデルの予測結果と目標とする出力特徴量との誤差が、予め定められた誤差範囲内に含まれるか否かに応じて、学習済モデルの修正を継続するか否かを判定することを説明した。これに代えて、判定部146は、学習済モデルの修正を継続しても、予測結果と目標とする出力特徴量との誤差が低減しないことに応じて、学習済モデルの修正を停止してもよい。これによって、判定部146は、学習済モデルの修正が収束したか否かを判定することができる。
これに代えて、判定部146は、ステップS230およびステップS240の動作を予め定められた回数繰り返してから、学習済モデルの修正を停止してもよい。また、判定部146は、影響度を低減すべき入力特徴量が見つからなかった場合、学習済モデルの修正を停止してよい。
以上の本実施形態の生成装置100は、モデル生成部130が線形回帰・分類を実行して学習済モデルを生成した場合について説明した。これに代えて、モデル生成部130が、非線形回帰・分類等、その他一般の手法を実行して学習済モデルを生成してもよい。
この場合、検査部142は、例えば、当該学習済モデルにおいて、選択された入力特徴量の値に応じて学習した条件が満たされるか否かが異なる場合に、学習用データおよび検定用データの少なくとも一方において当該条件が満たされる頻度が満たされない頻度よりも高い場合には選択した入力特徴量の値によらず当該条件が満たされるものとする。また、検査部142は、当該条件が満たされない頻度が満たされる頻度よりも高い場合には選択した入力特徴量の値によらず当該条件が満たされないものとするように学習済モデルを修正して修正モデルを生成する。
ここで、モデル生成部130が、入力特徴量に対応する条件の成否に応じて、学習モデルが定まるランダムフォレスト回帰の手法を実行する例を説明する。モデル生成部130は、一例として、入力特徴量x1、x2、x3に対して、条件gC(x1、x2、x3)が1と等しくなる場合(gC(x1、x2、x3)==1)に、y=fC(Ytrain)となる学習済モデルyを生成する。
この場合、検査部142は、条件g0(X1、x2、X3)が1に等しくなる(g0(X1、x2、X3)==1)頻度が、条件g0(X1、x2、X3)が0に等しくなる(g0(X1、x2、X3)==0)頻度よりも高くなる場合に、x2を除去して(入力特徴量x2の影響度を低減して)、修正した学習モデルの条件をg'0(X1、X3)==1とする。ここで、X1およびX3は定数である。また、検査部142は、条件g0(X1、x2、X3)が1に等しくなる頻度が、0に等しくなる頻度よりも低い場合、修正した学習モデルの条件をg'0(X1、X3)==0とする。
これにより、モデル修正部140は、非線形回帰・分類等の手法を実行して生成された学習済モデルを、検定データによる予測結果を出力特徴量に近づけるように入力特徴量を選択して修正し、修正モデルを生成することができる。
また、以上の本実施形態の生成装置100は、選択部144が、影響度を低減させるべき入力特徴量を選択する例を説明した。これに代えて、生成装置100は、検査部142が算出した入力特徴量に対応する目標値との誤差の変化を、影響度を低減させた入力特徴量に対応付けてユーザに対して表示し、当該ユーザが、影響度を低減させるべき入力特徴量を選択してもよい。この場合、ユーザは、複数の入力特徴量を選択してよい。
これにより、ユーザは、それぞれの入力特徴量の影響を低減させた場合に生じる誤差の変化をそれぞれ確認することができ、確認した上で影響度を低減させるべき入力特徴量を選択できる。したがって、本実施形態の生成装置100は、ユーザに客観的な指標に基づく選択を実行させることができ、ユーザの経験および感覚に頼る労力を低減させることができる。
図4は、本実施形態に係る生成装置100の変形例を示す。本変形例の生成装置100において、図2に示された本実施形態に係る生成装置100の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例の生成装置100は、予測部150を更に備える。
予測部150は、複数の入力特徴量のうち、少なくとも除去されていない入力特徴量の値を修正モデルに入力して、予測値を算出する。即ち、予測部150は、モデル修正部140に接続され、当該モデル修正部140から受け取った修正モデルを用いて出力特徴量を算出する。
予測部150は、例えば、学習用データとは日付、人数構成、施設、プラン等の一部の入力特徴量が異なるデータを入力して、出力特徴量を算出する。この場合、モデル修正部140が影響度を0または除去した入力特徴量を変更して入力しても、結果には反映されないので、予測部150は、少なくとも除去されていない入力特徴量の値を変更して入力する。
また、予測部150は、ユーザが予測したい未来に応じて新たに用意したデータを用いて出力特徴量を算出してもよい。この場合、予測部150は、取得部110に接続され、当該取得部110が取得するユーザの新たなデータを受け取ってよい。これにより、生成装置100は、学習データに基づき学習済モデルを修正した修正モデルを用い、例えば、地域Aに存在するホテルの未来の予測値および地域Bに存在するホテルの未来の予測値等を算出することができる。
また、本変形例の生成装置100のモデル修正部140は、判定部146に代えて、影響低減部148を有する。影響低減部148は、選択部144に接続され、当該選択部144が選択した入力特徴量を受け取る。
ここで、選択部144は、複数の入力特徴量のうち、学習済モデルにおける影響度を低減した場合に予測結果が目標とする出力特徴量により近くなる入力特徴量を優先的に選択して、予測モデルにおいて影響度を低減すべき入力特徴量とする。選択部144は、一例として、重みを低減すると予測結果が目標とする出力特徴量との誤差がより小さくなる入力特徴量を、誤差が小さくなる順に順位付けし、予め定められた順位までの入力特徴量を、影響度を低減させるべき入力特徴量として選択する。
ここで、選択部144は、誤差の変化の大きさに応じて、選択する入力特徴量の数を変更してもよい。選択部144は、例えば、誤差が他と比べて顕著に小さくなる入力特徴量がある場合は、当該入力特徴量を含めるように選択してよく、また、それぞれの誤差の変化が予め定められた値よりも小さい(大きい)場合は選択する数を少なく(大きく)してもよい。
そして、影響低減部148は、選択部144が選択した入力特徴量を受け取り、当該入力特徴量の影響度を低減させた予測モデルを生成して修正モデルとして出力する。これにより、モデル修正部140は、修正モデルの生成を速やかに実行することができる。
図5は、本実施形態に係る生成装置100として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、および表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、およびDVDドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、および入出力チップ2070を有するレガシー入出力部と、を備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000およびグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010およびRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、DVDドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラムおよびデータを格納する。DVDドライブ2060は、DVD−ROM2095からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、および入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、および/または、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、DVD−ROM2095、またはICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
プログラムは、コンピュータ1900にインストールされ、コンピュータ1900を取得部110、記憶部120、モデル生成部130、モデル修正部140、および予測部150として機能させる。
プログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部110、記憶部120、モデル生成部130、モデル修正部140、および予測部150として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の生成装置100が構築される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、またはDVD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置または通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、DVDドライブ2060(DVD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、および/または記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(または不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、DVD−ROM2095の他に、DVD、Blu−ray(登録商標)、またはCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。