(57)【要約】  テーブル取得手段３８１は、予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得する。受付手段３８２は、第１の属性と第２の属性との類似度の算出に用いられる類似度関数と、類似度に対する条件とを受け付ける。特徴量生成手段３８３は、類似度関数を用いて、第１の属性の値と第２の属性の値とにより算出される類似度が、条件を満たす第１の属性の値を含む第１のテーブルのレコードと、第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および集約の対象になる列により表される集約条件とを用いて、予測対象に影響を及ぼし得る特徴量の候補を生成する。特徴量選択手段３８４は、特徴量の候補から、予測に最適な特徴量を選択する。
2019069507.tif 000002
【特許請求の範囲】
【請求項１】
予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得するテーブル取得手段と、
前記第１の属性と前記第２の属性との類似度の算出に用いられる類似度関数と、当該類似度に対する条件とを受け付ける受付手段と、
前記類似度関数を用いて、前記第１の属性の値と前記第２の属性の値とにより算出される類似度が、前記条件を満たす当該第１の属性の値を含む第１のテーブルのレコードと、当該第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および当該集約の対象になる列により表される集約条件とを用いて、前記第１のテーブルおよび前記第２のテーブルから、前記予測対象に影響を及ぼし得る特徴量の候補を生成する特徴量生成手段と、
前記特徴量の候補から、予測に最適な特徴量を選択する特徴量選択手段とを備えた
ことを特徴とする特徴量生成装置。
【請求項２】
特徴量生成手段は、複数の結合条件と複数の集約条件とを用いて、当該結合条件と当該集約条件とを組み合わせた数の特徴量を生成する
請求項１記載の特徴量生成装置。
【請求項３】
第１の属性および第２の属性は、地理的属性であり、類似度関数は、距離が近いほど類似度を高く算出する関数として定義される
請求項１または請求項２記載の特徴量生成装置。
【請求項４】
第１の属性および第２の属性は、時間的属性であり、類似度関数は、時間の差異が小さいほど類似度を高く算出する関数として定義される
請求項１または請求項２記載の特徴量生成装置。
【請求項５】
第１の属性および第２の属性は、文字列属性であり、類似度関数は、文字列を示すテキストの一致度が高いほど類似度を高く算出する関数として定義される
請求項１または請求項２記載の特徴量生成装置。
【請求項６】
第１の属性および第２の属性は、構造的属性であり、類似度関数は、共通するノードまでの距離が近いほど類似度を高く算出する関数として定義される
請求項１または請求項２記載の特徴量生成装置。
【請求項７】
結合条件と、集約条件と、第２のテーブルから条件を満たすレコードを抽出するための抽出条件とを用いて特徴量生成関数を生成する関数生成手段を備えた
請求項１から請求項６のうちのいずれか１項に記載の特徴量生成装置。
【請求項８】
予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得し、
前記第１の属性と前記第２の属性との類似度の算出に用いられる類似度関数と、当該類似度に対する条件とを受け付け、
前記類似度関数を用いて、前記第１の属性の値と前記第２の属性の値とにより算出される類似度が、前記条件を満たす当該第１の属性の値を含む第１のテーブルのレコードと、当該第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および当該集約の対象になる列により表される集約条件とを用いて、前記第１のテーブルおよび前記第２のテーブルから、前記予測対象に影響を及ぼし得る特徴量の候補を生成し、
前記特徴量の候補から、予測に最適な特徴量を選択する
ことを特徴とする特徴量生成方法。
【請求項９】
複数の結合条件と複数の集約条件とを用いて、当該結合条件と当該集約条件とを組み合わせた数の特徴量を生成する
請求項８記載の特徴量生成方法。
【請求項１０】
コンピュータに、
予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得するテーブル取得処理、
前記第１の属性と前記第２の属性との類似度の算出に用いられる類似度関数と、当該類似度に対する条件とを受け付ける受付処理、
前記類似度関数を用いて、前記第１の属性の値と前記第２の属性の値とにより算出される類似度が、前記条件を満たす当該第１の属性の値を含む第１のテーブルのレコードと、当該第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および当該集約の対象になる列により表される集約条件とを用いて、前記第１のテーブルおよび前記第２のテーブルから、前記予測対象に影響を及ぼし得る特徴量の候補を生成する特徴量生成処理、および、
前記特徴量の候補から、予測に最適な特徴量を選択する特徴量選択処理
を実行させるための特徴量生成プログラム。
【請求項１１】
コンピュータに、
特徴量生成処理で、複数の結合条件と複数の集約条件とを用いて、当該結合条件と当該集約条件とを組み合わせた数の特徴量を生成させる
請求項１０記載の特徴量生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のテーブルを結合して特徴量を生成する特徴量生成装置、特徴量生成方法および特徴量生成プログラムに関する。
【背景技術】
【０００２】
データマイニングは、大量の情報の中から、これまで未知であった有用な知見を見つける技術である。未知である有用な知見を見つけるためには、より多くの属性の候補を生成することが重要である。具体的には、予測対象である変数（目的変数）に影響を及ぼし得る多くの属性（説明変数）の候補を生成することが重要である。このような多くの候補を生成することにより、予測に役立つ属性がこの候補の中に含まれる可能性を高めることができるからである。【０００３】
例えば、特許文献１には、目的変数を含むターゲットテーブルと、目的変数を含まないソーステーブルとを結合することにより、機械学習処理に用いられる特徴量の候補を生成することが記載されている。特許文献１に記載された方法では、特徴量の候補を生成する処理を、Ｆｉｌｔｅｒ条件、ｍａｐ条件およびｒｅｄｕｃｅ条件の３つの条件の組合せにより定義することで、特徴量の候補を生成する分析者工数を削減する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１７／０９０４７５号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者は、所定のエリア内における何らかの対象を予測する際、多様な情報源を活用した方が予測精度が向上するという着想を得た。すなわち、複数の関連する情報源を組み合わせて情報を得ることが好ましいと考えられる。【０００６】
例えば、特許文献１には、ターゲットテーブルとソーステーブルとの結合条件（すなわち、ｍａｐ条件）に、ターゲットテーブルとソーステーブルに共通に含まれる顧客ＩＤを利用することが例示されている。ここで、本発明者は、分析対象によっては、ｍａｐ条件の候補が複数生成され得ることを見出した。このような分析対象に利用する特徴量の候補を生成しようとした場合、特許文献１に記載された方法を用いても、処理が煩雑になる結果、分析者工数が増大してしまう可能性がある。【０００７】
そこで、本発明は、特徴量を生成するための分析者工数を削減できる特徴量生成装置、特徴量生成方法および特徴量生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明による特徴量生成装置は、予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得するテーブル取得手段と、第１の属性と第２の属性との類似度の算出に用いられる類似度関数と、その類似度に対する条件とを受け付ける受付手段と、類似度関数を用いて、第１の属性の値と第２の属性の値とにより算出される類似度が、条件を満たす第１の属性の値を含む第１のテーブルのレコードと、第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および集約の対象になる列により表される集約条件とを用いて、第１のテーブルおよび第２のテーブルから、予測対象に影響を及ぼし得る特徴量の候補を生成する特徴量生成手段と、特徴量の候補から、予測に最適な特徴量を選択する特徴量選択手段とを備えたことを特徴とする。【０００９】
本発明による特徴量生成方法は、予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得し、第１の属性と第２の属性との類似度の算出に用いられる類似度関数と、その類似度に対する条件とを受け付け、類似度関数を用いて、第１の属性の値と第２の属性の値とにより算出される類似度が、条件を満たす第１の属性の値を含む第１のテーブルのレコードと、第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および集約の対象になる列により表される集約条件とを用いて、第１のテーブルおよび第２のテーブルから、予測対象に影響を及ぼし得る特徴量の候補を生成し、特徴量の候補から、予測に最適な特徴量を選択することを特徴とする。【００１０】
本発明による結合条件生成プログラムは、コンピュータに、予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得するテーブル取得処理、第１の属性と第２の属性との類似度の算出に用いられる類似度関数と、その類似度に対する条件とを受け付ける受付処理、類似度関数を用いて、第１の属性の値と第２の属性の値とにより算出される類似度が、条件を満たす第１の属性の値を含む第１のテーブルのレコードと、第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および集約の対象になる列により表される集約条件とを用いて、第１のテーブルおよび第２のテーブルから、予測対象に影響を及ぼし得る特徴量の候補を生成する特徴量生成処理、および、特徴量の候補から、予測に最適な特徴量を選択する特徴量選択処理を実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、上述した技術的手段により、特徴量を生成するための分析者工数を削減できるという技術的効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明による情報処理システムの一実施形態を示すブロック図である。
【図２】コンフィギュレーションファイルの例を示す説明図である。
【図３】データを変換する処理の例を示す説明図である。
【図４】各パラメータと、第１のテーブルおよび第２のテーブルとの関係の例を示す説明図である。
【図５】距離に基づいてマップパラメータを生成する処理の例を示す説明図である。
【図６】距離に基づいてマップパラメータを生成する他の処理の例を示す説明図である。
【図７】同じエリアに含まれているか否か判断する方法の例を示す説明図である。
【図８】共通エリアか否かに基づいてマップパラメータを生成する処理の例を示す説明図である。
【図９】包含関係に基づいてマップパラメータを生成する処理の例を示す説明図である。
【図１０】時間の差異に基づいてマップパラメータを生成する処理の例を示す説明図である。
【図１１】テキストの類似性に基づいてマップパラメータを生成する処理の例を示す説明図である。
【図１２】構造の類似性に基づいてマップパラメータを生成する処理の例を示す説明図である。
【図１３】生成されたマップパラメータの例を示す説明図である。
【図１４】距離の統計値を算出するための集約パラメータを生成する処理の例を示す説明図である。
【図１５】領域の統計値を算出するための集約パラメータを生成する処理の例を示す説明図である。
【図１６】生成された集約パラメータの例を示す説明図である。
【図１７】マップパラメータ同士を結合した例を示す説明図である。
【図１８】パラメータを組み合わせて特徴量生成関数を生成する方法の例を示す説明図である。
【図１９】結合条件を生成する処理の例を示すフローチャートである。
【図２０】結合条件を生成する処理の他の例を示すフローチャートである。
【図２１】特徴量を生成する処理の例を示すフローチャートである。
【図２２】特徴量を生成する処理の他の例を示すフローチャートである。
【図２３】本発明による特徴量生成装置の概要を示すブロック図である。
【図２４】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面を参照して説明する。
【００１４】
本実施形態の情報処理システムは、予測対象（例えば、目的変数）の変数を含む表（以下、第１のテーブルと記すこともある。）と、第１のテーブルと異なる表（以下、第２のテーブルと記すことある。）とを取得する。以下の説明では、第１のテーブルのことをターゲットテーブルと記すこともあり、第２のテーブルをソーステーブルと記すこともある。また、第１のテーブルおよび第２のテーブルは、それぞれデータの集合を含んでいてもよい。
【００１５】
本実施形態では、第１のテーブルおよび第２のテーブルは、観点が共通する属性をそれぞれ含む。観点が共通するとは、その属性のデータの意味的な内容が共通することを表す。なお、データの表現方法は共通であってもよく、異なっていてもよい。以下、第１のテーブルに含まれる属性を第１の属性と記し、第２のテーブルに含まれる属性を、第２の属性と記す。
【００１６】
例えば、観点が共通する属性として、地理的な観点や時間的な観点などが挙げられる。例えば、地理的な観点の属性の値は、以下の４種類の地理的データ型に分類できる。なお、見出しのコロン以下の記載は、データについての構文を表す。
（１）点Ｐ（Ｐｏｉｎｔ）：ｐ＝（ｘ，ｙ）∈Ｐ
点Ｐは、（経度，緯度）の座標として表される。
（２）多角形Ｇ（Ｐｏｌｙｇｏｎ）：ｇ＝（ｂ１,ｂ２,...,ｂｎ）∈Ｇ
多角形Ｇは、１つの外部境界ｂ１と、０以上の内部境界（ｂ２,...,ｂｎ）で定義される。ここで、ｂ１＝（ｐ１,ｐ２,...,ｐｎ）（ただし、ｐ１,ｐ２,...,ｐｎ∈Ｐ）は、３点以上の順序として定義される閉じた環の境界である。
（３）複数多角形Ｍ（ＭｕｌｔｉＰｏｌｉｇｏｎ）：ｍ＝（ｇ１,ｇ２,...,ｇｎ）∈Ｍ、ｇ１,ｇ２,...,ｇｎ∈Ｇ
複数多角形Ｍは、１以上の多角形で構成される。
（４）文字列Ｓ（Ｓｔｒｉｎｇ）：ｓ∈Ｓ
文字列で表される住所である。
【００１７】
また、データ分析に関連する意味的な情報として、データ型と対応付けて分析データ型が定義されてもよい。例えば、上述する地理的観点の場合、多角形Ｇおよび複数多角形Ｍを、領域（Ａｒｅａ）に関する分析データ型と定義し、点Ｐを、点（Ｐｏｉｎｔ）に関する分析データ型と定義してもよい。また、住所に関する文字列を、例えば、国、都市、町、ランドマーク、通りまたはポイントに関する分析データ型と定義してもよい。以下、地理的情報を表す分析データ型のことを、地理的データ型と記すこともある。
【００１８】
また、例えば、時間的な観点の属性の型（時間的データ型）は、タイムスタンプ（ＴｉｍｅＳｔａｍｐ）型として定義することができる。
【００１９】
以下、観点が共通する属性が地理的な属性の場合、第１のテーブルに含まれる属性を第１の地理的属性、第２のテーブルに含まれる属性を第２の地理的属性と記す。同様に、観点が共通する属性が時間的な属性の場合、第１のテーブルに含まれる属性を第１の時間的属性、第２のテーブルに含まれる属性を第２の時間的属性と記す。他の属性についても同様に記載するものとする。なお、第１の地理的属性は、第１のテーブルのプライマリキーであってもよい。
【００２０】
なお、上記では、共通する属性が地理的な観点と、時間的な観点の例を示したが、共通する属性は、地理的な観点および時間的な観点に限定されない。共通する属性の例として、他にも、文字列の観点や、構造的な観点などが挙げられる。文字列の観点の属性の値は、例えば、住所などである。また、構造的な観点の属性の値は、例えば、ＵＲＬ（Uniform Resource Locator）や、木構造パスなどである。以下、説明を容易にするため、観点が共通する属性として、主に地理的属性と時間的属性を中心に説明する。
【００２１】
図１は、本発明による情報処理システムの一実施形態を示すブロック図である。本実施形態の情報処理システム１００は、入力部１０と、ジオコーダ（Geo-Coder ）２０と、マップパラメータ生成器（Map Parameter Generator ）３０と、フィルタパラメータ生成器（Filter Parameter Generator）５０と、集約パラメータ生成器（Reduce Parameter Generator）６０と、記憶部８０と、特徴量生成関数生成器（Feature Descriptor Generator）８１と、特徴量生成器（Feature Generator ）８２と、特徴量選択器（Feature Selector）８３と、出力部９０と、学習部９１と、予測部９２とを備えている。
【００２２】
入力部１０は、第１のテーブルおよび第２のテーブルを取得する。なお、入力部１０は、各テーブルを取得することから、入力部１０のことをテーブル取得手段と言うことができる。入力部１０は、第２のテーブルを複数取得してもよい。例えば、記憶部８０が第１のテーブルおよび第２のテーブルを記憶している場合、入力部１０が記憶部８０から第１のテーブルおよび第２のテーブルを取得してもよい。また、入力部１０は、通信ネットワーク（図示せず）を介して他のシステムや記憶部から第１のテーブルおよび第２のテーブルを取得してもよい。
【００２３】
例えば、地理的な観点が共通する場合、入力部１０は、予測対象および第１の地理的属性を含む第１のテーブルと、第２の地理的属性を含む第２のテーブルとを取得してもよい。また、例えば、時間的な観点が共通する場合、入力部１０は、予測対象および第１の時間的属性を含む第１のテーブルと、第２の時間的属性を含む第２のテーブルとを取得してもよい。他にも、入力部１０は、予測対象および第１の文字列属性を含む第１のテーブルと、第２の文字列属性を含む第２のテーブルとを取得してもよいし、予測対象および第１の構造的属性を含む第１のテーブルと、第２の構造的属性を含む第２のテーブルとを取得してもよい。なお、構造的属性については後述される。
【００２４】
さらに、入力部１０は、第１の属性と第２の属性との類似度を算出するための関数（以下、類似度関数と記す）と、どの程度の類似度の場合に第１の属性の値と第２の属性の値とが類似すると判断するか決定するための条件（以下、類似度に対する条件と記すこともある）を受け付ける。類似度関数は、数式で表されていてもよく、パラメータとして表されていてもよい。また、類似度に対する条件は、関係の程度に基づいて類似度の有無を判断するための閾値（以下、単に類似度の閾値と記す。）で表されていてもよく、パラメータ等に応じて類似か否かを出力する式で表されていてもよい。
【００２５】
例えば、地理的な観点が共通する場合、入力部１０は、地理的関係を類似度関数として受け付け、地理的関係の程度を示す類似度の閾値を条件として受け付けてもよい。すなわち、第１の属性および第２の属性が地理的属性である場合、類似度関数は、例えば、距離が近いほど類似度を高く算出する関数として定義される。
【００２６】
また、例えば、時間的な観点が共通する場合、入力部１０は、時間的関係を類似度関数として受け付け、時間的関係の程度を示す類似度の閾値を条件として受け付けてもよい。すなわち、第１の属性および第２の属性が時間的属性である場合、類似度関数は、例えば、時間の差異が小さいほど類似度を高く算出する関数として定義される。
【００２７】
他にも、文字列の観点が共通する場合、入力部１０は、文字列の関係を類似度関数として受け付け、文字列の関係の程度を示す類似度の閾値を条件として受け付けてもよい。具体的には、第１の属性および第２の属性が文字列属性である場合、類似度関数は、例えば、二つのテキストの一致度が高いほど類似度を高く算出する関数として定義される。テキストの類似度として、例えば、形態素のＳｉｍｐｓｏｎ係数が挙げられる。
【００２８】
ｍｏｒｐｈ（ａ）をテキスト文字列ａに含まれる形態素の集合と定義する。例えば、アドレスを示す以下の４つのテキスト文字列は、形態素解析により、それぞれ以下のような形態の集合として表される。
・ｍｏｒｐｈ('川崎市中原区')={'川崎','市','中原','区'}
・ｍｏｒｐｈ('神奈川県川崎市中原区')={'神奈川','県','川崎','市','中原','区'}
・ｍｏｒｐｈ('神奈川県川崎市幸区')={'神奈川','県','川崎','市','幸','区'}
・ｍｏｒｐｈ('神奈川県横浜市港南区')={'神奈川','県','横浜','市','港南','区'}
【００２９】
また、テキスト文字列ａとテキスト文字列ｂの類似度を算出する関数ｔｅｘｔＳｉｍ（ａ，ｂ）は、以下に示す式１で定義できる。
【００３０】
ｔｅｘｔＳｉｍ（ａ，ｂ）＝｜ｍｏｒｐｈ（ａ）∪ｍｏｒｐｈ（ｂ）｜／
ｍｉｎ（｜ｍｏｒｐｈ（ａ）｜，｜ｍｏｒｐｈ（ｂ）｜）
・・・（式１）
【００３１】
この場合、上記に例示するアドレスのテキスト文字列同士の類似度は、以下のように算出される。
【００３２】
・ｔｅｘｔＳｉｍ(’川崎市中原区’,’神奈川県川崎市中原区’)＝４／４＝１．０
・ｔｅｘｔＳｉｍ(’川崎市中原区’,'神奈川県川崎市幸区')＝３／４＝０．７５
・ｔｅｘｔＳｉｍ(’川崎市中原区’,'神奈川県横浜市港南区')＝２／４＝０．５
【００３３】
また、構造的な観点が共通する場合、入力部１０は、構造的関係を類似度関数として受け付け、構造的関係の程度を示す類似度の閾値を条件として受け付けてもよい。以下、住所やファイルのディレクトリ構造など、木構造の情報を“／”で表現した文字列をパス文字列と定義する。例えば、住所「神奈川県川崎市」は、パス文字列では‘／神奈川県／川崎市’と表現される。また、例えば、ディレクトリ構造「ｎｅｗｓ→ｅｃｏｎｏｍｙ→ｂｉｇｄａｔａ」は、パス文字列では、‘ｎｅｗｓ／ｅｃｏｎｏｍｙ／ｂｉｇｄａｔａ’と表現される。
【００３４】
第１の属性および第２の属性が上述するパス文字列で定義される構造的属性の場合、類似度関数は、例えば、二つのパス文字列の距離が近いほど類似度を高く算出する関数として定義される。パス文字列の距離関数として、例えば、最低共通祖先ノード（ＬＣＡ：Lowest common ancestor）への距離の最小値が挙げられる。
【００３５】
最低共通祖先ノードとは、二つのパスが表現するそれぞれ一番下のノードから上位（先祖）方向に辿った場合に、最初に現れる同じノードである。また、最低共通祖先ノードへの距離とは、一番下のノードから最低共通祖先ノードへ辿ったときのノード数である。
【００３６】
例えば、二つのパス文字列‘／ａ／ｂ／ｃ’，‘／ａ／ｂ／ｚ’が存在するとする。この場合、二つのパスの最低共通祖先ノードは、‘／ａ／ｂ’である。また、‘／ａ／ｂ／ｃ’から‘／ａ／ｂ’への距離は１であり、‘／ａ／ｂ／ｚ’から‘／ａ／ｂ’への距離も１である。
【００３７】
また、例えば、二つのパス文字列‘／ａ／ｂ／ｃ’，‘／ａ／ｄ／ｅ／ｚ’が存在するとする。この場合、二つのパスの最低共通祖先ノードは、‘／ａ’である。また、‘／ａ／ｂ／ｃ’から‘／ａ’への距離は２であり、‘／ａ／ｄ／ｅ／ｚ’から‘／ａ’への距離は３である。
【００３８】
パス文字列の距離を表す関数をｐａｔｈＤｉｓ（ｘ，ｙ）とすると、上述するパス文字列の距離は、以下のように算出される。
【００３９】
・ｐａｔｈＤｉｓ（‘／ａ／ｂ／ｃ’，‘／ａ／ｂ／ｚ’）＝１
・ｐａｔｈＤｉｓ（‘／ａ／ｂ／ｃ’，‘／ａ／ｄ／ｅ／ｚ’）＝２
【００４０】
図２は、コンフィギュレーションファイル（以下、コンフィグファイルと記す。）の例を示す説明図である。図２に示す例では、類似度関数および類似度に対する条件が、コンフィギュレーションファイル（以下、コンフィグファイルと記す。）に設定されていることを示す。入力部１０は、このコンフィグファイルを受け付けてもよい。
【００４１】
図２に例示するコンフィグファイルのＣ１部分が、類似度関数および類似度に対する条件を示す。なお、コンフィグファイルのＣ２〜Ｃ４部分については、後述される。Ｃ１部分において、前段部（コロンの前）が、第１の属性のデータ型（より具体的には、分析データ型）と第２の属性のデータ型（より具体的には、分析データ型）との対応関係を示す。また、後段部（コロンの後）が、類似度関数および条件（類似度の閾値）を示す。以下、各内容について、詳細に説明する。
【００４２】
Ｃ１部分における“Ｐｏｉｎｔ−Ｐｏｉｎｔ”の行は、点で表される第１の地理的属性と点で表される第２の地理的属性との距離を表す地理的関係を定義する。
【００４３】
“ＤｉｓｔａｎｃｅＭａｐ”は、地理的関係の程度を規定したマップ関数であり、パラメータとして、距離の閾値を含む。ＤｉｓｔａｎｃｅＭａｐ関数における３つのパラメータは、順に“開始値”、“終了値”、（開始値から終了値までに適用する閾値の）“間隔”を示す。図２に例示する（“ＤｉｓｔａｎｃｅＭａｐ”，１，３，１）は、距離の単位をｋｍとすると、“距離が１ｋｍ以内”、“距離が２ｋｍ以内”、“距離が３ｋｍ以内”の３つの閾値を関数に適用することを示す。
【００４４】
“ＫＮｅａｒｅｓｔＭａｐ”は、地理的関係の程度を規定したマップ関数であり、パラメータとして、近接する地理的情報の個数の閾値を含む。ＫＮｅａｒｅｓｔＭａｐ関数における３つのパラメータも同様、順に“開始値”、“終了値”、（開始値から終了値までに適用する閾値の）“間隔”を示す。図２に例示する（“ＫＮｅａｒｅｓｔＭａｐ”，３，５，１）は、近接する地理的情報の個数が、“３つ以内”、“４つ以内”、“５つ以内”の３つの閾値を関数に適用することを示す。
【００４５】
“ＳａｍｅＣｉｔｙＭａｐ”は、地理的関係の程度を規定したマップ関数であり、２つの地点が同じエリアに含まれるか否かを判断する関数である。ＳａｍｅＣｉｔｙＭａｐ関数はパラメータを含まないが、エリアを定義したエリア情報に基づいて同じエリアに含まれるか否かが判断される。エリア情報は、予め定義される。
【００４６】
Ｃ１部分における“Ｐｏｉｎｔ−Ａｒｅａ”の行は、点で表される第１の地理的属性と領域で表される第２の地理的属性との包含関係を表す地理的関係を定義する。
【００４７】
“ＩｎｃｌｕｓｉｏｎＭａｐ”は、地理的関係の程度を規定したマップ関数であり、点で表される第１の地理的属性が領域で表される第２の地理的属性に含まれるか否かを判断する関数である。なお、ＩｎｃｌｕｓｉｏｎＭａｐは、パラメータを含まない。
【００４８】
また、“Ｐｏｉｎｔ−Ａｒｅａ”の行においても、“ＫＮｅａｒｅｓｔＭａｐ”が定義される。ＫＮｅａｒｅｓｔＭａｐ関数の内容は、“Ｐｏｉｎｔ−Ｐｏｉｎｔ”におけるＫＮｅａｒｅｓｔＭａｐ関数と同様である。
【００４９】
Ｃ１部分における“Ａｒｅａ−Ａｒｅａ”の行は、領域で表される第１の地理的属性と領域で表される第２の地理的属性との交差関係を表す地理的関係を定義する。
【００５０】
“ＩｎｔｅｒｓｅｃｔＭａｐ”は、地理的関係の程度を規定したマップ関数であり、領域で表される第１の地理的属性が領域で表される第２の地理的属性と交差するか否かを判断する関数である。なお、ＩｎｔｅｒｓｅｃｔＭａｐは、パラメータを含まない。
【００５１】
以上に示すように、第１の地理的データ型と第２の地理的データ型とは、互いに同一の地理的データ型であってもよく、異なる地理的データ型であってもよい。また、第１の地理的データ型が、点の情報で地理を特定可能なデータのタイプであり、第２の地理的データ型が、範囲の情報で地理を特定可能なデータのタイプであってもよい。
【００５２】
Ｃ１部分における“ＴｉｍｅＳｔａｍｐ−ＴｉｍｅＳｔａｍｐ”の行は、第１の時間的属性と第２の時間的属性との差異を表す時間的関係を定義する。
【００５３】
“ＴｉｍｅＤｉｆｆＭａｐ”は、時間的関係の程度を規定したマップ関数であり、パラメータとして、時間の差異の閾値を含む。ＴｉｍｅＤｉｆｆＭａｐ関数における３つのパラメータも同様、順に“開始値”、“終了値”、（開始値から終了値までに適用する閾値の）“間隔”を示す。図２に例示する（“ＴｉｍｅＤｉｆｆＭａｐ”，３０，６０，３０）は、時間の単位を分とすると、“時間の差異が３０分以内”、“時間の差異が６０分以内”の２つの閾値を関数に適用することを示す。
【００５４】
Ｃ１部分における“Ｔｅｘｔ−Ｔｅｘｔ”の行は、文字列を表す第１の属性と文字列を表す第２の属性との一致関係を定義する。“ＥｘａｃｔＭａｐ”は、文字列で表される属性が一致するか否かを判断する関数である。
【００５５】
また、“Ｔｅｘｔ−Ｔｅｘｔ”の行に、文字列を表す第１の属性と文字列を表す第２の属性との類似関係を定義してもよい。具体的には、“Ｔｅｘｔ−Ｔｅｘｔ”の行に、文字列の関係の程度を規定したマップ関数“ｔｅｘｔＳｉｍＭａｐ”を設定してもよい。“ｔｅｘｔＳｉｍＭａｐ”は、文字列の関係の程度を規定したマップ関数であり、パラメータとして、類似度の閾値を含む。ｔｅｘｔＳｉｍＭａｐ関数は、ＤｉｓｔａｎｃｅＭａｐ関数同様、３つのパラメータを有し、それぞれ順に“開始値”、“終了値”、（開始値から終了値までに適用する閾値の）“間隔”を示す。
【００５６】
例えば、ｔｅｘｔＳｉｍＭａｐ関数を用いて［（“ｔｅｘｔＳｉｍＭａｐ”，０．８，１．０，０．１］と定義されていたとする。これは、“類似度が０．８以上”、“類似度が０．９以上”および“類似度が１．０（以上）”の３つの閾値を関数に適用することを示す。
【００５７】
なお、類似度関数および類似度の閾値の設定方法は、図２のＣ１部分に例示する内容に限定されない。コンフィグファイルに、例えば、パス文字列で表される第１の構造的属性とパス文字列で表される第２の構造的属性との距離を表す構造的関係“Ｐａｔｈ−Ｐａｔｈ”を定義してもよい。
【００５８】
具体的には、“Ｐａｔｈ−Ｐａｔｈ”の行に、構造的関係の程度を規定したマップ関数“ｐａｔｈＤｉｓＭａｐ”を設定してもよい。“ｐａｔｈＤｉｓＭａｐ”は、構造的関係の程度を規定したマップ関数であり、パラメータとして、距離の閾値を含む。ｐａｔｈＤｉｓＭａｐ関数は、ＤｉｓｔａｎｃｅＭａｐ関数同様、３つのパラメータを有し、それぞれ順に“開始値”、“終了値”、（開始値から終了値までに適用する閾値の）“間隔”を示す。
【００５９】
例えば、ｐａｔｈＤｉｓＭａｐ関数を用いて［（“ｐａｔｈＤｉｓＭａｐ”，１，３，１］と定義されていたとする。これは、“距離が１以下”、“距離が２以下”および“距離が３以下”の３つの閾値を関数に適用することを示す。
【００６０】
入力部１０が、図２に例示するコンフィグファイルを受け付けることで、後述するマップパラメータ生成器３０が、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するための結合条件（マップパラメータ）を生成する。
【００６１】
なお、入力部１０は、テーブルの各列が示すデータの属性を合わせて受け付けてもよい。
【００６２】
ジオコーダ２０は、文字列で表された属性のデータを変換する。例えば、地理的属性のデータが文字列で表されている場合、ジオコーダ２０は、その文字列を、点、多角形または複数多角形のデータに変換する。なお、データを変換する必要がない場合、情報処理システム１００は、ジオコーダ２０を備えていなくてもよい。
【００６３】
図３は、データを変換する処理の例を示す説明図である。図３に示す例では、列ごとの分析データ型を定義したテーブルａｄｔ１と、分析データ型からデータ型へ変換する対応を定義したテーブルａｄｔ２が予め取得されているものとする。
【００６４】
この状況で、入力部１０が、図３に例示するターゲットテーブルＴ、ソーステーブルＳ１およびソーステーブルＳ２を取得したとする。ソーステーブルＳ２の“Ｐｉｃｋｕｐ＿ｌｏｃａｔｉｏｎ”列の分析データ型は、テーブルａｄｔ１を参照するとＰｏｉｎｔであり、変換の必要がない。一方、ソーステーブルＳ１の“ｃｏｍｍｕｎｉｔｙ”列の分析データ型はテーブルａｄｔ１を参照すると“ＴｏｗｎＡｄｄｒｅｓｓ”であり、テーブルａｄｔ２を参照すると、データ型Ｐｏｌｙｇｏｎに変換する必要がある。そこで、ジオコーダ２０は、ソーステーブルＳ１の“ｃｏｍｍｕｎｉｔｙ”列に含まれるデータを、多角形の領域で表すように変換する。例えば、“ｃｏｍｍｕｎｉｔｙ”の内容に応じて多角形で領域を特定可能なエリア情報を予め定めておき、ジオコーダ２０は、そのエリア情報に基づいて、データ型がＰｏｌｙｇｏｎになるようにデータを変換してもよい。
【００６５】
マップパラメータ生成器３０、フィルタパラメータ生成器５０、および、集約パラメータ生成器６０は、後述する特徴量生成関数生成器８１が、予測対象に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数を生成する際に利用するパラメータを生成する。
【００６６】
以下の説明では、特徴量とは、特徴そのものの内容（例えば、「人口」、「位置」など）を意味する。また、特徴量に具体的なデータをあてはめたもの（例えば、人口＝“８１１２”、位置＝“（−７３．９６５, ４０．７２４）”など）のことを、特徴量ベクトル（複数の場合、特徴量テーブル）と記す。
【００６７】
また、後述する特徴量生成器８２が生成する特徴量は、機械学習を用いてモデルを生成する際の説明変数の候補になる。言い換えると、本実施形態で生成される特徴量生成関数を用いることで、機械学習を用いてモデルを生成する際の説明変数の候補を自動的に生成することが可能になる。
【００６８】
図４は、各パラメータと、第１のテーブルおよび第２のテーブルとの関係の例を示す説明図である。
【００６９】
フィルタパラメータ生成器５０が生成するパラメータは、第２のテーブルに含まれる行の抽出条件を表わすパラメータである。以下、このパラメータをフィルタパラメータとしるし、フィルタパラメータに基づいて第２のテーブルから行を抽出する処理を「ｆｉｌｔｅｒ」と記載する場合がある。また、この抽出条件のリストを「Ｆリスト」と記載する場合がある。抽出条件は任意であり、例えば、指定された列の値と同じ（大きいまたは小さい）か否か判断する条件が挙げられる。
【００７０】
集約パラメータ生成器６０が生成するパラメータは、第２のテーブルに含まれる各行のデータを目的変数ごとに集約する集約方法を表わすパラメータである。なお、一般に、第１の表における行と第２の表における行とは、一対多対応する場合が多いため、結果として行が集約されることになる。集約情報は、ソーステーブル（第２のテーブル）の列に対する集約関数として定義されてもよい。
【００７１】
集約方法は任意であり、例えば、列の総数、最大値、最小値、平均値、中央値、分散などが挙げられる。また、列の総数の集計は、重複データを除外する、または、重複データを除外しない、のいずれかの観点で行われてもよい。
【００７２】
以下、このパラメータを集約パラメータと記し、集約パラメータが示す方法により各列のデータを集約する処理を「ｒｅｄｕｃｅ」と記載する場合がある。特に、地理的情報を集約する処理を「Ｇｅｏ−ｒｅｄｕｃｅ」と記載することもある。また、この集約処理のリストを「Ｒリスト」と記載する場合がある。なお、地理的情報を集約する処理の詳細については後述される。
【００７３】
マップパラメータ生成器３０が生成するパラメータは、第１のテーブルと第２のテーブルの列との対応条件を表わすパラメータである。以下、このパラメータをマップパラメータと記し、マップパラメータに基づいて各テーブルの列を対応付ける処理を「ｍａｐ」と記載する場合がある。また、この対応条件のリストを「Ｍリスト」と記載する場合がある。特に、地理的情報同士を対応付ける処理を「Ｇｅｏ−ｍａｐ」と記載することもある。また、ｍａｐによる各テーブルの列の対応付けは、対応付けられた列で複数の表を１つの表に結合（ｊｏｉｎ）することとも言える。なお、地理的情報を対応付ける処理の詳細についても後述される。
【００７４】
マップパラメータ生成器３０は、ジオマップ生成器（GeoMap Generator）４０と、時間差異マップ生成器（TimeDiff Map Generator）３１と、マップ生成器（Exact Map Generator ）３２と、属性特定部３３とを含む。マップパラメータ生成器３０（より具体的には、マップパラメータ生成器３０に含まれる各生成器）は、第１の属性の値と第２の属性の値とにより算出される類似度が、条件を満たすような第１の属性の値を含む第１のテーブルのレコードと、第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件を生成する。条件を満たすとは、例えば、類似度が閾値以下または以上になることや、予め定めた範囲内に含まれることなどを意味する。
【００７５】
ジオマップ生成器４０は、第１のテーブルと第２のテーブルの地理的属性を含む列同士の対応条件を表すパラメータを生成する。ジオマップ生成器４０は、距離マップ生成器（Distance Map Generator）４１と、包含マップ生成器（Inclusion Map Generator ）４２と、重複マップ生成器（Overlap Map Generator ）４３と、同地域マップ生成器（SameArea Map Generator）４４とを有する。
【００７６】
ジオマップ生成器４０（より具体的には、ジオマップ生成器４０に含まれる各生成器）は、第１の地理的属性の値と第２の地理的属性の値との関係が、地理的関係の程度を満たすような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するための結合条件（マップパラメータ）を生成する。以下、各生成器の処理について、詳細に説明する。
【００７７】
距離マップ生成器４１は、距離の近さに基づいて第１のテーブルと第２のテーブルを対応付けるための類似度関数および条件（例えば、類似度の閾値）を受け付けた場合に、マップパラメータを生成する。図２に示す例では、ＤｉｓｔａｎｃｅＭａｐ関数とＫＮｅａｒｅｓｔＭａｐ関数の少なくとも一方がコンフィグファイルに設定されている場合に対応する。
【００７８】
距離マップ生成器４１は、第１の地理的属性の値と第２の地理的属性の値との距離が閾値以内であるような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するためのマップパラメータを生成する。
【００７９】
図５は、距離に基づいてマップパラメータを生成する処理の例を示す説明図である。図５に示す例では、ターゲットテーブルＴとソーステーブルＳ２をそれぞれ１つずつ取得した場合を示す。なお、図５に例示するターゲットテーブルＴは、２０１５年１月８日２２時の、５か所における乗客数（ｐｉｃｋｕｐ＿ｎｕｍｂｅｒ）を表すデータを含むテーブルである。また、図５に例示するソーステーブルＳ２は、各時刻における乗客数、移動距離および乗客の乗り場位置を対応付けて記録するテーブルである。
【００８０】
例えば、図２に例示するＤｉｓｔａｎｃｅＭａｐ関数の場合、距離マップ生成器４１は、第１の地理的属性の値が示す位置と第２の地理的属性の値が示す位置との距離が１ｋｍ以内であるソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを対応付けるパラメータを生成する。さらに、距離マップ生成器４１は、第１の地理的属性の値が示す位置と第２の地理的属性の値が示す位置との距離が２ｋｍ以内および３ｋｍ以内であるソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを対応付けるパラメータをそれぞれ生成する。
【００８１】
図５に示す例では、ターゲットテーブルＴの“ｔａｒｇｅｔ＿ｌｏｃａｔｉｏｎ”列の属性が第１の地理的属性であり、ソーステーブルＳ２の“Ｐｉｃｋｕｐ＿ｌｏｃａｔｉｏｎ”列の属性が第２の地理的属性である。この２つの列が対応付けられる。なお、第１のテーブルと第２のテーブルとで対応付ける列は、予め指定されていてもよく、後述する属性特定部３３によって特定されてもよい。
【００８２】
この結果、図５に例示するパラメータＰ１１が生成される。図５に例示するように、地理的分析データ型に基づいてマップパラメータが生成され、１つのマップパラメータに基づいて、１つのマップ処理が定義される。図５に例示するマップデータＭ１１は、距離が１ｋｍ以内であるソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを対応付けた結果を示す。例えば、ターゲットテーブルの１番目のレコードに対して、ソーステーブルから１つのレコードのみ対応付けられる。また、例えば、ターゲットテーブルの２番目のレコードに対して、ソーステーブルから２つのレコードが対応付けられる。
【００８３】
図６は、距離に基づいてマップパラメータを生成する他の処理の例を示す説明図である。図６に例示するターゲットテーブルＴおよびソーステーブルＳ２は、図５に例示するターゲットテーブルＴおよびソーステーブルＳ２と同様である。
【００８４】
例えば、図２に例示するＫＮｅａｒｅｓｔＭａｐ関数の場合、距離マップ生成器４１は、第１の地理的属性の値が示す位置と第２の地理的属性の値が示す位置との距離が近い方から順にソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを２つ以内で対応付けるパラメータを生成する。さらに、距離マップ生成器４１は、第１の地理的属性の値が示す位置と第２の地理的属性の値が示す位置との距離が近い方から順にソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを３つ以内および４つ以内で対応付けるパラメータをそれぞれ生成する。
【００８５】
図６に示す例では、ターゲットテーブルＴの“ｔａｒｇｅｔ＿ｌｏｃａｔｉｏｎ”列の属性が第１の地理的属性であり、ソーステーブルＳ２の“Ｐｉｃｋｕｐ＿ｌｏｃａｔｉｏｎ”列の属性が第２の地理的属性である。この２つの列が対応付けられる。なお、第１のテーブルと第２のテーブルとで対応付ける列は、予め指定されていてもよく、後述する属性特定部３３によって特定されてもよい。
【００８６】
この結果、図６に例示するパラメータＰ１２が生成される。図６に例示するように、地理的分析データ型に基づいてマップパラメータが生成され、１つのマップパラメータに基づいて、１つのマップ処理が定義される。図６に例示するマップデータＭ１２は、近い順にソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを２つ対応付けた結果を示す。例えば、ターゲットテーブルの各レコードに対して、ソーステーブルから２つの最も近いレコードが対応付けられる。
【００８７】
同地域マップ生成器４４は、同じエリアに含まれるか否かに基づいて第１のテーブルと第２のテーブルを対応付けるための類似度関数を受け付けた場合に、マップパラメータを生成する。図２に示す例では、ＳａｍｅＣｉｔｙＭａｐ関数がコンフィグファイルに設定されている場合に対応する。
【００８８】
同地域マップ生成器４４は、第１の地理的属性の値が示す位置と第２の地理的属性の値が示す位置が同じエリアに含まれるような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するためのマップパラメータを生成する。
【００８９】
図７は、同じエリアに含まれているか否か判断する方法の例を示す説明図である。図７に示す例では、各エリアと多角形で特定されるエリアの領域とが対応付けられた共通エリアテーブルＣＡＴが予め定義される。共通エリアの例として、国、州、都市、自治区、街などが挙げられる。共通エリアは、互いに重なり合わない共通の領域として定義され、マップ上の境界情報を表す。共通エリアテーブルＣＡＴは、例えば、記憶部８０に記憶されていてもよい。
【００９０】
まず、共通エリアテーブルＣＡＴに基づいて２つの位置が同じエリアに存在するか否かが判断される。具体的には、ターゲットテーブルＴのレコードｔ１の位置が示すエリアが特定され、ソーステーブルＳのレコードｓ１の位置がそのエリア内か否かが判断される。以下、同様の処理が、ターゲットテーブルＴおよびソーステーブルＳの全てのレコードに対して行われる。
【００９１】
図８は、共通エリアか否かに基づいてマップパラメータを生成する処理の例を示す説明図である。図８に例示するターゲットテーブルＴおよびソーステーブルＳ２は、図５に例示するターゲットテーブルＴおよびソーステーブルＳ２と同様である。
【００９２】
例えば、図２に例示するＳａｍｅＣｉｔｙＭａｐ関数の場合、同地域マップ生成器４４は、第１の地理的属性の値が示す位置と第２の地理的属性の値が示す位置とが同じエリアに含まれるソーステーブルＳ２のレコードとターゲットテーブルＴの各レコードとを対応付けるパラメータを生成する。
【００９３】
図８に示す例では、ターゲットテーブルＴの“ｔａｒｇｅｔ＿ｌｏｃａｔｉｏｎ”列の属性が第１の地理的属性であり、ソーステーブルＳ２の“Ｐｉｃｋｕｐ＿ｌｏｃａｔｉｏｎ”列の属性が第２の地理的属性である。この２つの列が対応付けられる。なお、第１のテーブルと第２のテーブルとで対応付ける列は、予め指定されていてもよく、後述する属性特定部３３によって特定されてもよい。
【００９４】
この結果、図８に例示するパラメータＰ１３が生成される。図８に例示するマップデータＭ１３は、同じエリアと判断された地理的属性を有するソーステーブルＳ２のレコードとターゲットテーブルＴの各レコードとを対応付けた結果を示す。なお、図８に例示するマップデータＭ１３は、距離が１ｋｍ未満の地点が同じ都市に位置すると仮定して対応付けた例を示す。
【００９５】
包含マップ生成器４２は、包含関係に基づいて第１のテーブルと第２のテーブルを対応付けるための類似度関数を受け付けた場合に、マップパラメータを生成する。図２に示す例では、ＩｎｃｌｕｓｉｏｎＭａｐ関数がコンフィグファイルに設定されている場合に対応する。
【００９６】
包含マップ生成器４２は、第１の地理的属性の値が示す位置が第２の地理的属性の値が示す領域に含まれているような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するためのマップパラメータを生成する。
【００９７】
図９は、包含関係に基づいてマップパラメータを生成する処理の例を示す説明図である。図９に例示するターゲットテーブルＴは、図５に例示するターゲットテーブルＴと同様である。また、図９に例示するソーステーブルＳ１は、各領域における人口、男性数および２０歳から４０歳までの人数を対応付けて記録するテーブルである。
【００９８】
例えば、図２に例示するＩｎｃｌｕｓｉｏｎＭａｐ関数の場合、包含マップ生成器４２は、第１の地理的属性の値が示す位置が第２の地理的属性の値が示す領域に含まれるソーステーブルＳ１のレコードにターゲットテーブルＴの各レコードを対応付けるパラメータを生成する。
【００９９】
図９に示す例では、ターゲットテーブルＴの“ｔａｒｇｅｔ＿ｌｏｃａｔｉｏｎ”列の属性が第１の地理的属性であり、ソーステーブルＳ１の“ｃｏｍｍｕｎｉｔｙ”列の属性が第２の地理的属性である。この２つの列が対応付けられる。なお、第１のテーブルと第２のテーブルとで対応付ける列は、予め指定されていてもよく、後述する属性特定部３３によって特定されてもよい。
【０１００】
この結果、図９に例示するパラメータＰ１４が生成される。図９に例示するマップデータＭ１４は、同じエリアに存在するソーステーブルＳ１のレコードにターゲットテーブルの各レコードを対応付けた結果を示す。
【０１０１】
重複マップ生成器４３は、重複する領域に基づいて第１のテーブルと第２のテーブルを対応付けるための類似度関数を受け付けた場合に、マップパラメータを生成する。図２に示す例では、ＩｎｔｅｒｓｅｃｔＭａｐ関数がコンフィグファイルに設定されている場合に対応する。
【０１０２】
重複マップ生成器４３は、第１の地理的属性の値が示す領域と第２の地理的属性の値が示す領域が重複するような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するためのマップパラメータを生成する。
【０１０３】
時間差異マップ生成器３１は、時間の差異に基づいて第１のテーブルと第２のテーブルを対応付けるための類似度関数および条件（例えば、類似度の閾値）を受け付けた場合に、マップパラメータを生成する。図２に示す例では、ＴｉｍｅＤｉｆｆＭａｐ関数がコンフィグファイルに設定されている場合に対応する。
【０１０４】
時間差異マップ生成器３１は、第１の時間的属性の値と第２の時間的属性の値との関係が時間的関係の程度を満たすような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するための結合条件を生成する。本実施形態では、時間差異マップ生成器３１は、第１の時間的属性の値と第２の時間的属性の値との差異が閾値以内であるような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するためのマップパラメータを生成する。
【０１０５】
図１０は、時間の差異に基づいてマップパラメータを生成する処理の例を示す説明図である。図１０に例示するターゲットテーブルＴおよびソーステーブルＳ２は、図５に例示するターゲットテーブルＴおよびソーステーブルＳ２と同様である。
【０１０６】
例えば、図２に例示するＴｉｍｅＤｉｆｆＭａｐ関数の場合、時間差異マップ生成器３１は、第１の時間的属性の値と第２の地理的属性の値との差異が３０分以内であるソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを対応付けるパラメータを生成する。さらに、時間差異マップ生成器３１は、第１の時間的属性の値と第２の時間的属性の値との差異が６０分以内であるソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを対応付けるパラメータを生成する。
【０１０７】
図１０に示す例では、ターゲットテーブルＴの“ｔｉｍｅ”列の属性が第１の時間的属性であり、ソーステーブルＳ２の“ｐｉｃｋｕｐ＿ｔｉｍｅ”列の属性が第２の時間的属性である。この２つの列が対応付けられる。なお、第１のテーブルと第２のテーブルとで対応付ける列は、予め指定されていてもよく、後述する属性特定部３３によって特定されてもよい。
【０１０８】
この結果、図１０に例示するパラメータＰ１５が生成される。図１０に例示するマップデータＭ１５は、時間の差異が３０分以内であるソーステーブルＳ２のレコードにターゲットテーブルＴの各レコードを対応付けた結果を示す。
【０１０９】
マップ生成器３２は、第１のテーブルと第２のテーブルを対応付けるための類似度関数を受け付けた場合に、マップパラメータを生成する。本実施形態では、地理的属性と時間的属性のいずれの属性でもない属性の値に基づいてソーステーブルのレコードにターゲットテーブルのレコードを対応付けるパラメータを生成する。
【０１１０】
図２に示す例では、ＥｘａｃｔＭａｐ関数がコンフィグファイルに設定されている場合に対応する。マップ生成器３２は、第１の属性の値と第２の属性の値とが一致するような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するためのマップパラメータを生成する。
【０１１１】
図１１は、テキストの類似性に基づいてマップパラメータを生成する処理の例を示す説明図である。図１１に例示するターゲットテーブルＴは、ある住所における乗客数（ｐｉｃｋｕｐ＿ｎｕｍｂｅｒ）を表すデータを含むテーブルである。また、図１１に例示するソーステーブルＳは、各地域における収入平均を記録するテーブルである。
【０１１２】
例えば、上述するｔｅｘｔＳｉｍＭａｐ関数の場合、マップ生成器３２は、第１の文字列属性の値と第２の文字列属性の値との類似度が０．８以上であるソーステーブルＳのレコードにターゲットテーブルＴの各レコードを対応付けるパラメータを生成する。さらに、マップ生成器３２は、第１の文字列属性の値と第２の文字列属性の値との類似度が０．９以上および１．０以上であるソーステーブルＳのレコードにターゲットテーブルＴの各レコードを対応付けるパラメータをそれぞれ生成する。
【０１１３】
図１１に示す例では、ターゲットテーブルＴの“ａｄｄｒｅｓｓ”列の属性が第１の文字列属性として、ソーステーブルＳの“ａｄｄｒｅｓｓ”列の属性が第２の文字列属性として、それぞれ登録されているとする。そこで、この２つの列が対応付けられる。この結果、図１１に例示するパラメータＰ１６が生成される。
【０１１４】
図１１に例示するマップデータＭは、類似度が０．８以上であるソーステーブルＳのレコードにターゲットテーブルＴの各レコードを対応付けた結果を示す。例えば、ターゲットテーブルの１番目のレコードに対して、ソーステーブルから１つのレコードのみ対応付けられる。
【０１１５】
図１２は、構造の類似性に基づいてマップパラメータを生成する処理の例を示す説明図である。図１２に例示するターゲットテーブルＴは、あるＵＲＬで識別されるＷｅｂページへのアクセス数（ａｃｃｅｓｓ＿ｎｕｍｂｅｒ）を表すデータを含むテーブルである。また、図１２に例示するソーステーブルＳは、あるＵＲＬで識別されるＷｅｂページの先月のアクセス数（ａｃｃｅｓｓ＿ｎｕｍｂｅｒ）を記録するテーブルである。
【０１１６】
例えば、上述するｐａｔｈＤｉｓＭａｐ関数の場合、マップ生成器３２は、第１の構造的属性の値と第２の構造的属性の値との距離が１以下であるソーステーブルＳのレコードにターゲットテーブルＴの各レコードを対応付けるパラメータを生成する。さらに、マップ生成器３２は、第１の構造的属性の値と第２の構造的属性の値との距離が２以下および３以下であるソーステーブルＳのレコードにターゲットテーブルＴの各レコードを対応付けるパラメータをそれぞれ生成する。
【０１１７】
図１２に示す例では、ターゲットテーブルＴの“ＵＲＬ”列の属性が第１の構造的属性として、ソーステーブルＳの“ＵＲＬ”列の属性が第２の構造的属性として、それぞれ登録されているとする。そこで、この２つの列が対応付けられる。この結果、図１２に例示するパラメータＰ１７が生成される。
【０１１８】
図１２に例示するマップデータＭは、類似度が１以下であるソーステーブルＳのレコードにターゲットテーブルＴの各レコードを対応付けた結果を示す。例えば、ターゲットテーブルの１番目のレコードに対して、ソーステーブルから１つのレコードのみ対応付けられる。
【０１１９】
属性特定部３３は、第１のテーブルと第２のテーブルとで、観点が共通する属性を特定する。具体的には、属性特定部３３は、第１のテーブルの各列が示すデータの属性と、第２のテーブルの各列が示すデータの属性とが同じ属性を特定する。例えば、地理的データ型の場合、属性特定部３３は、第１の地理的データ型と同じデータ型を有する第１の地理的属性を第１のテーブルから特定し、且つ、第２の地理的情報のデータ型と同じデータ型を有する第２の地理的属性を第２のテーブルから特定してもよい。このようにすることで、地理的データ型を有する列を各テーブルから特定することが可能になる。また、属性特定部３３は、入力部１０に入力された列の属性の情報から、第１のテーブルと第２のテーブルの列の属性を特定してもよい。
【０１２０】
マップパラメータ生成器３０（より具体的には、マップパラメータ生成器３０に含まれる各生成器）は、地理的（時間的）関係の判断対象である第１の地理的（時間的）属性を含む第１のテーブルの列および第２の地理的（時間的）属性を含む第２のテーブルの列と、地理的（時間的）関係の程度とを含むパラメータを、記憶部８０に記憶させてもよい。例えば、マップパラメータ生成器３０は、図５に例示するパラメータＰ１１や図１０に例示するパラメータＰ１５などを記憶部８０に記憶させてもよい。
【０１２１】
図１３は、生成されたマップパラメータの例を示す説明図である。上述する例で示すように、入力部１０が、図１３に例示するターゲットテーブルＴ、ソーステーブルＳ１およびソーステーブルＳ２、並びに、図２に例示するコンフィグファイルのＣ１部分を受け付ける。なお、マップパラメータＰ１６は、ターゲットテーブルＴの“ｔａｒｇｅｔ＿ｌｏｃａｔｉｏｎ”列の属性を第１の地理的属性とし、ソーステーブルＳ１の“ｃｏｍｍｕｎｉｔｙ”列の属性を第２の地理的属性として、ＫＮｅａｒｅｓｔＭａｐ関数に基づいて生成されるパラメータの例である。マップパラメータ生成器３０（より具体的には、マップパラメータ生成器３０に含まれる各生成器）は、これらの情報から、図１３に例示する１３個のマップパラメータＰ１１〜１６を生成する。
【０１２２】
フィルタパラメータ生成器５０は、フィルタ生成器（Exact Filter Generator）５１を含む。フィルタ生成器５１は、第２のテーブルの列と、その列に適用する抽出条件とを対応付けたフィルタパラメータを生成する。
【０１２３】
フィルタパラメータの生成方法は任意である。フィルタ生成器５１は、例えば、図２に例示するコンフィグファイルのＣ２部分で定義された情報に基づいて、フィルタパラメータを生成してもよい。また、予め記憶部８０に抽出条件を記憶しておき、フィルタ生成器５１は、その抽出条件を読み取ってフィルタパラメータを生成してもよい。
【０１２４】
さらに、フィルタ生成器５１は、抽出条件を複数組み合わせて、さらなる抽出条件を生成してもよい。また、抽出条件を組み合わせる数も任意である。入力部１０は、例えば、この組み合わせ最大数を受け付けてもよい。例えば、図２に例示するように、コンフィグファイルのＣ４部分に組み合わせ最大数を示すパラメータ（“ｍａｘ＿ｃｏｍｂｉｎａｔｉｏｎ＿ｆｉｌｔｅｒ＿ｌｅｎｇｔｈ”）が設定されていてもよい。
【０１２５】
集約パラメータ生成器６０（より具体的には、集約パラメータ生成器６０に含まれる各生成器）は、第２のテーブルに含まれる各行のデータを集約する方法を表わすパラメータを生成する。集約パラメータ生成器６０は、ジオ集約生成器（GeoReduce Generator ）７０と、数的集約生成器（Numeric Reduce Generator）６１とを含む。
【０１２６】
ジオ集約生成器７０（より具体的には、ジオ集約生成器７０に含まれる各生成器）は、第２のテーブルに含まれる地理的属性を含む列の値で各行のデータを集約する方法を表わす集約パラメータを生成する。具体的には、ジオ集約生成器７０は、指定された集約方法に基づいて地理的属性の値の統計値を算出する。
【０１２７】
集約方法を指定する方法は任意である。例えば、入力部１０が集約方法の指定を受け付けてもよい。具体的には、図２のコンフィグファイルのＣ３部分に例示するように、地理的属性の分析データ型に応じて集約方法を定義し、定義された集約方法に応じて集約パラメータを生成してもよい。以下、各内容について、詳細に説明する。
【０１２８】
Ｃ３部分における“Ｐｏｉｎｔ”の行は、第２の地理的属性（より具体的には、地理的データ型）が点（Ｐｏｉｎｔ）で表される場合の集約方法を定義する。
【０１２９】
（“ｓｕｍ”，“ｄｉｓｔａｎｃｅ”）は、第１のテーブルのレコードに対応付けられた第２のテーブルの各レコードのうち、第１の地理的属性の値と第２の地理的属性の値とに基づいて算出される距離の合計を統計値として算出する集約方法を定義する。
【０１３０】
（“ａｖｇ”，“ｄｉｓｔａｎｃｅ”）は、第１のテーブルのレコードに対応付けられた第２のテーブルの各レコードのうち、第１の地理的属性の値と第２の地理的属性の値とに基づいて算出される距離の平均を統計値として算出する集約方法を定義する。
【０１３１】
（“ｃｏｕｎｔ”）は、第１のテーブルの各レコード（すなわち、目的変数）に対応付けられた第２のテーブルのレコード数を統計値として算出する集約方法を定義する。
【０１３２】
Ｃ３部分における“Ａｒｅａ”の行は、第２の地理的属性（より具体的には、地理的データ型）が領域（Ａｒｅａ）で表される場合の集約方法を定義する。
【０１３３】
（“ｓｕｍ”，“ａｒｅａＳｉｚｅ”）は、第１のテーブルのレコードに対応付けられた第２のテーブルの各レコードのうち、第２の地理的属性の領域の大きさの合計を統計値として算出する集約方法を定義する。
【０１３４】
（“ａｖｇ”，“ａｒｅａＳｉｚｅ”）は、第１のテーブルのレコードに対応付けられた第２のテーブルの各レコードのうち、第２の地理的属性の領域の大きさの平均を統計値として算出する集約方法を定義する。
【０１３５】
（“ｃｏｕｎｔ”）は、第１のテーブルの各レコード（すなわち、目的変数）に対応付けられた第２のテーブルのレコード数を統計値として算出する集約方法を定義する。
【０１３６】
ジオ集約生成器７０は、ポイント集約生成器（Point Reduce Generator）７１と、エリア集約生成器（Area Reduce Generator ）７２とを有する。
【０１３７】
ポイント集約生成器７１は、第１の地理的属性の値と第２の地理的属性の値とに基づいて算出される距離の統計値を算出するための集約パラメータを生成する。なお、ここで対象とする第２のテーブルのレコードは、第１のテーブルのレコードにそれぞれ対応付けられたレコードである。地理的属性の場合、上述するように、第１の地理的属性の値と第２の地理的属性の値とが、一致する、または、一定の範囲内にあるなど、一定の条件を満たすレコード同士が対応付けられる。そこで、ポイント集約生成器７１は、第１の地理的属性の値に対する第２の地理的属性の値が所定の条件を満たす場合に、第１の地理的属性の値と条件を満たす第２の地理的属性の値とに基づいて距離の統計値を算出するための集約パラメータを生成する。なお、算出される統計値は、特徴量として利用される。
【０１３８】
ポイント集約生成器７１は、例えば、図２に例示する（“ｓｕｍ”，“ｄｉｓｔａｎｃｅ”）、（“ａｖｇ”，“ｄｉｓｔａｎｃｅ”）および（“ｃｏｕｎｔ”）の少なくとも一つがコンフィグファイルに設定されている場合に、距離の統計値を算出するための集約パラメータを生成してもよい。
【０１３９】
図１４は、距離の統計値を算出するための集約パラメータを生成する処理の例を示す説明図である。図１４に示す例では、３種類の集約方法がコンフィグファイルに設定されている。そこで、ポイント集約生成器７１は、ソーステーブルのレコードとターゲットテーブルのレコードとの間の距離の合計および平均を算出する集約パラメータ、並びに、対応付けられたソーステーブルのレコード数を算出する集約パラメータを算出する。ポイント集約生成器７１は、例えば、図１４に例示する集約リストＰ２１のように、集約するソーステーブルの列名、対応付けるターゲットテーブルの列名、集約内容（距離）および集約関数を対応付けた集約パラメータを生成してもよい。
【０１４０】
図１４に例示する集約データＲ２１は、距離の合計を算出する集約パラメータに基づいて、マップデータＭ１１を集約した結果を示す。
【０１４１】
エリア集約生成器７２は、第２の地理的属性の値に基づいて算出される領域の統計値を算出するための集約パラメータを生成する。なお、ポイント集約生成器７１と同様、ここで対象とする第２のテーブルのレコードは、第１のテーブルのレコードにそれぞれ対応付けられたレコードである。
【０１４２】
エリア集約生成器７２は、例えば、図２に例示する（“ｓｕｍ”，“ａｒｅａＳｉｚｅ”）および（“ａｖｇ”，“ａｒｅａＳｉｚｅ”）および（“ｃｏｕｎｔ”）の少なくとも一つがコンフィグファイルに設定されている場合に、領域の統計値を算出するための集約パラメータを生成してもよい。
【０１４３】
図１５は、領域の統計値を算出するための集約パラメータを生成する処理の例を示す説明図である。図１５に示す例では、３種類の集約方法がコンフィグファイルに設定されている。そこで、エリア集約生成器７２は、ターゲットテーブルの各レコードに対応付けられたソーステーブルのレコードの面積の合計および平均を算出する集約パラメータ、並びに、対応付けられたソーステーブルのレコード数を算出する集約パラメータを算出する。エリア集約生成器７２は、例えば、図１５に例示する集約リストＰ２２のように、集約するソーステーブルの列名、集約内容（面積）および集約関数を対応付けた集約パラメータを生成してもよい。
【０１４４】
図１５に例示する集約データＲ２２は、面積の合計を算出する集約パラメータに基づいて、マップデータＭ１４を集約した結果を示す。
【０１４５】
数的集約生成器６１は、第２のテーブルに含まれる数値（Ｎｅｍｕｒｉｃ）の属性（以下、数値属性と記す。）を含む列の値で各行のデータを集約する方法を表わす集約パラメータを生成する。具体的には、数的集約生成器６１は、指定された集約方法に基づいて数値の統計値を算出する。
【０１４６】
集約方法を指定する方法は任意である。ジオ集約生成器７０と同様、例えば、入力部１０が集約方法の指定を受け付けてもよい。具体的には、図２のコンフィグファイルのＣ３部分に例示するように、数値属性に対する集約方法を定義し、定義された集約方法に応じて集約パラメータを生成してもよい。図２に示す例では、数値属性の列の合計および平均を算出する集約パラメータを生成するための指定がされている。
【０１４７】
集約パラメータ生成器６０（より具体的には、集約パラメータ生成器６０に含まれる各生成器）は、生成した集約パラメータを記憶部８０に記憶させてもよい。図１６は、生成された集約パラメータの例を示す説明図である。上述する例で示すように、入力部１０が、図１６に例示するターゲットテーブルＴ、ソーステーブルＳ１およびソーステーブルＳ２、並びに、図２に例示するコンフィグファイルのＣ３部分を受け付ける。
【０１４８】
なお、集約パラメータＰ２３は、ソーステーブルＳ２の数値的属性の列に対する集約パラメータの例である。また、集約パラメータＰ２４は、ソーステーブルＳ１の数値的属性の列に対する集約パラメータの例である。集約パラメータ生成器６０（より具体的には、集約パラメータ生成器６０に含まれる各生成器）は、これらの情報から、図１６に例示する１６個のマップパラメータＰ２１〜２４を生成する。
【０１４９】
特徴量生成関数生成器８１は、第１のテーブルおよび第２のテーブルから、上述する特徴量を生成するための特徴量生成関数を生成する。具体的には、特徴量生成関数生成器８１は、上述する結合条件（マップパラメータ）と、集約条件（集約パラメータ）とを用いて（組み合わせて）特徴量生成関数を生成する。また、特徴量生成関数生成器８１は、結合条件および集約条件に加え、抽出条件（フィルタパラメータ）を用いて（組み合わせて）特徴量生成関数を生成してもよい。
【０１５０】
また、本実施形態では、特徴量生成関数生成器８１は、結合条件（マップパラメータ）のうち、地理的属性を対象にしたマップパラメータと時間的属性を対象にしたマップパラメータとを予め結合したマップパラメータを生成してもよい。特徴量生成関数生成器８１は、例えば、図２に例示するコンフィグファイルのＣ４部分に示すようなパラメータ“ｔｉｍｅ＿ｓｐａｔｉａｌ＿ｍａｐ＿ｃｏｍｂｉｎａｔｉｏｎ”に“Ｔｒｕｅ”が設定されている場合に、地理的属性を対象にしたマップパラメータと時間的属性を対象にしたマップパラメータとを結合すると判断してもよい。
【０１５１】
図１７は、マップパラメータ同士を結合した例を示す説明図である。例えば、地理的属性を対象にした６つのマップパラメータＰ１１，Ｐ１２と、時間的属性を対象にした２つのマップパラメータＰ１５が存在するとする。このとき、特徴量生成関数生成器８１は、地理的属性を対象にしたマップパラメータと時間的属性を対象にしたマップパラメータとを１つずつ組み合わせて、新たなマップパラメータＰ３１を生成してもよい。図１７に示す例の場合、新しく６×２＝１２のマップパラメータが生成される。
【０１５２】
以下、特徴量生成関数生成器８１が特徴量生成関数を生成する手順を具体的に説明する。ここでは、図１３に例示するターゲットテーブルＴ、ソーステーブルＳ１，Ｓ２が入力されるものとする。また、予測対象の変数（目的変数）は、ターゲットテーブルＴに含まれる乗客数（ｐｉｃｋｕｐ＿ｎｕｍｂｅｒ）を表す変数である。
【０１５３】
図１８は、パラメータを組み合わせて特徴量生成関数を生成する方法の例を示す説明図である。図１８（ａ）は、ターゲットテーブルＴとソーステーブルＳ１とから特徴量を生成するための特徴量生成関数を生成する組合せ例を示す。また、図１８（ｂ）は、ターゲットテーブルＴとソーステーブルＳ２とから特徴量を生成するための特徴量生成関数を生成する組合せ例を示す。なお、図１８（ｂ）に示す例では、地理的属性を対象にしたマップパラメータと時間的属性を対象にしたマップパラメータとが結合されたマップパラメータが利用されるものとする。
【０１５４】
図１８（ａ）に示す例では、４のマップパラメータと９の集約パラメータが生成されている。特徴量生成関数生成器８１は、これらのマップパラメータおよび集約パラメータから、それぞれ１つずつパラメータを選択し、各パラメータの組合せを生成する。この例の場合、各パラメータに基づいて、４×９＝３６通りの組合せが生成される。なお、フィルタパラメータが生成されている場合、特徴量生成関数生成器８１は、マップパラメータ、フィルタパラメータおよび集約パラメータから、それぞれ１つずつパラメータを選択し、各パラメータの組合せを生成する。
【０１５５】
図１８（ｂ）に示す例でも同様に、１４のマップパラメータと７の集約パラメータが生成されている。特徴量生成関数生成器８１は、これらのマップパラメータおよび集約パラメータから、それぞれ１つずつパラメータを選択し、各パラメータの組合せを生成する。この例の場合、各パラメータに基づいて、１４×７＝９４通りの組合せが生成される。以上より、全部で、３６＋９４＝１３０のパラメータの組合せが生成される。
【０１５６】
次に、特徴量生成関数生成器８１は、生成された組合せに基づいて特徴量生成関数を生成する。具体的には、特徴量生成関数生成器８１は、生成された組合せに含まれるパラメータを、表データの操作や定義を行う問合せ言語の形式に変換する。特徴量生成関数生成器８１は、例えば、問合せ言語としてＳＱＬを用いてもよい。
【０１５７】
このとき、特徴量生成関数生成器８１は、ＳＱＬ文を生成するテンプレートに各パラメータを適用して特徴量生成関数を生成してもよい。具体的には、各パラメータを当てはめてＳＱＬ文を生成するためのテンプレートを予め用意しておき、特徴量生成関数生成器８１は、生成された組合せに含まれる各パラメータを順次テンプレートに適用してＳＱＬ文を生成してもよい。この場合、特徴量生成関数は、ＳＱＬ文として定義され、選択される各パラメータが、ＳＱＬ文を生成するパラメータに対応する。
【０１５８】
これらのパラメータの組合せで特徴量を定義すると、多数の種類の特徴量生成関数を単純な要素の組合せとして表現することが可能になる。したがって、複数の表データを利用して効率よく多数の特徴量の候補を生成できる。例えば、上述する例の場合、４つのマップパラメータと９つの集約パラメータ、および、１４のマップパラメータと７つの集約パラメータを生成するだけで、１３０種類の特徴量を容易に生成することが可能になる。また、一度生成した各パラメータの定義は再利用できるため、特徴量生成関数を生成する工数自体も削減できるという効果も得られる。
【０１５９】
特徴量生成器８２は、特徴量生成関数を用いて特徴量を生成する。例えば、特徴量生成関数に、上述する距離の統計値を算出するパラメータが含まれているとする。この場合、特徴量生成器８２は、特徴量生成関数に基づいて、第１の地理的属性のレコードごとに、所定の条件を満たす第２のテーブルのレコードを集約する演算を行うことにより、距離の統計値を算出してもよい。
【０１６０】
具体的には、特徴量生成器８２は、第２のテーブルのレコードを集約する演算として、第１の地理的属性の各レコードに対して所定の条件を満たす第２のテーブルの地理的属性との距離の合計と平均の少なくともいずれかを算出してもよい。そして、特徴量生成器８２は、算出した距離の合計と平均の少なくともいずれかを特徴量として第１のテーブルの属性に追加してもよい。
【０１６１】
他にも、特徴量生成器８２は、第２のテーブルのレコードを集約する演算として、第１の地理的属性の各レコードに対して所定の条件を満たす第２のテーブルの地理的属性のレコード数を算出してもよい。そして、特徴量生成器８２は、算出したレコード数を特徴量として第１のテーブルの属性に追加してもよい。
【０１６２】
このように、特徴量生成器８２は、生成した特徴量を第１のテーブルの属性に追加する処理も行うことから、特徴量生成器８２のことを属性追加手段と言うことができる。また、特徴量生成器８２が生成した特徴量は、後述する特徴量選択器８３が特徴量を選択する際の候補となることから、特徴量の候補と言うこともできる。
【０１６３】
なお、本実施形態では、特徴量生成器８２が、特徴量生成関数を用いて特徴量の候補を生成する場合について説明した。ただし、特徴量生成器８２が、類似度関数を用いて、第１のテーブルおよび第２のテーブルから、結合条件と集約条件とを用いて特徴量の候補を直接生成してもよい。上述するように、結合条件は、第１の属性の値と第２の属性の値とにより算出される類似度が、条件を満たす第１の属性の値を含む第１のテーブルのレコードと、第２の属性の値を含む第２のテーブルのレコードとを結合するための条件である。また、集約条件は、第２のテーブルにおける複数のレコードに対する集約方法およびその集約の対象になる列により表される条件である。
【０１６４】
特徴量生成器８２は、例えば、結合条件および集約条件がそれぞれ複数存在する場合、複数の結合条件と複数の集約条件とを組み合わせた数の特徴量を生成してもよい。結合条件および集約条件を組み合わせることにより、上述する特徴量生成関数生成器８１が、特徴量生成関数を生成する処理と同様の効果が得られる。
【０１６５】
特徴量選択器８３は、生成された特徴量の中から、予測に最適な特徴量を選択する。なお、特徴量選択の方法は任意である。特徴量選択器８３は、例えば、Ｌ１正則化を用いて特徴量を選択してもよい。ただし、特徴量の選択に用いるアルゴリズムはＬ１正則化に限られない。特徴量選択器８３は、特徴量の選択に用いるアルゴリズムに応じて、予測に最適な特徴量を選択すればよい。
【０１６６】
出力部９０は、生成された特徴量を出力する。出力部９０は、特徴量選択器８３が選択した特徴量のみを出力してもよく、特徴量生成器８２が生成した全ての特徴量を出力してもよい。
【０１６７】
学習部９１は、生成された特徴量を用いて予測モデルを学習する。学習部９１は、例えば、追加された属性を特徴量として予測モデルを学習する。具体的には、学習部９１は、生成された特徴量に第１のテーブルおよび第２のテーブルのデータを適用して、訓練データを生成する。そして、学習部９１は、生成された特徴量を説明変数の候補として用いて、予測対象の値を予測するモデルを学習する。なお、モデルの学習方法は任意である。
【０１６８】
予測部９２は、学習部９１によって学習されたモデルを用いて予測を行う。具体的には、予測部９２は、生成された特徴量に第１のテーブルおよび第２のテーブルのデータを適用して、予測用データを生成する。そして、予測部９２は、生成された予測用データを学習されたモデルに適用して予測結果を得る。
【０１６９】
入力部１０と、ジオコーダ２０と、マップパラメータ生成器３０と、フィルタパラメータ生成器５０と、集約パラメータ生成器６０と、特徴量生成関数生成器８１と、特徴量生成器８２と、特徴量選択器８３と、出力部９０と、学習部９１と、予測部９２とは、プログラム（情報処理プログラム）に従って動作するコンピュータのプロセッサ（例えば、ＣＰＵ（Central Processing Unit ）、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（field-programmable gate array ））によって実現される。なお、マップパラメータ生成器３０は、より詳しくは、ジオマップ生成器４０（さらに詳しくは、距離マップ生成器４１と、包含マップ生成器４２と、重複マップ生成器４３と、同地域マップ生成器４４）と、時間差異マップ生成器３１と、マップ生成器３２と、属性特定部３３とにより実現される。また、集約パラメータ生成器６０は、ジオ集約生成器７０（さらに詳しくは、ポイント集約生成器７１と、エリア集約生成器７２）と、数的集約生成器６１とにより実現される。
【０１７０】
例えば、プログラムは、記憶部８０に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部１０、ジオコーダ２０、マップパラメータ生成器３０、フィルタパラメータ生成器５０、集約パラメータ生成器６０、特徴量生成関数生成器８１、特徴量生成器８２、特徴量選択器８３、出力部９０、学習部９１および予測部９２として動作してもよい。また、情報処理システムの機能がＳａａＳ（Software as a Service ）形式で提供されてもよい。
【０１７１】
入力部１０と、ジオコーダ２０と、マップパラメータ生成器３０と、フィルタパラメータ生成器５０と、集約パラメータ生成器６０と、特徴量生成関数生成器８１と、特徴量生成器８２と、特徴量選択器８３と、出力部９０と、学習部９１と、予測部９２とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
【０１７２】
また、各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。また、本実施形態の情報処理システム１００が、単体の情報処理装置として実現されていてもよい。また、本実施形態の情報処理システム１００の一部または全部は、上述する特徴量を生成する処理を行うことから、特徴量を生成する処理を行う機能を含む装置を、特徴量生成装置と言うことができる。
【０１７３】
次に、本実施形態の情報処理システム１００の動作を説明する。図１９は、結合条件を生成する処理の例を示すフローチャートである。
【０１７４】
入力部１０は、予測対象および第１の地理的属性を含む第１のテーブルと、第２の地理的属性を含む第２のテーブルとを取得する（ステップＳ１１）。また、入力部１０は、地理的関係、および、地理的関係の程度を受け付ける（ステップＳ１２）。マップパラメータ生成器３０は、第１の地理的属性の値と第２の地理的属性の値との関係が地理的関係の程度を満たすような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するための結合条件を生成する（ステップＳ１３）。
【０１７５】
図２０は、結合条件を生成する処理の他の例を示すフローチャートである。入力部１０は、予測対象および第１の時間的属性を含む第１のテーブルと、第２の時間的属性を含む第２のテーブルとを取得する（ステップＳ２１）。また、入力部１０は、時間的関係、および、時間的関係の程度を受け付ける（ステップＳ２２）。マップパラメータ生成器３０は、第１の時間的属性の値と第２の時間的属性の値との関係が時間的関係の程度を満たすような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するための結合条件を生成する（ステップＳ２３）。
【０１７６】
図２１は、特徴量を生成する処理の例を示すフローチャートである。入力部１０は、予測対象および第１の地理的属性を含む第１のテーブルと、第２の地理的属性を含む第２のテーブルとを取得する（ステップＳ３１）。特徴量生成器８２は、第１の地理的属性の値に対する第２の地理的属性の値が所定の条件を満たす場合に距離の統計値を算出し（ステップＳ３２）、算出した統計値を特徴量として第１のテーブルの属性に追加する（ステップＳ３３）。
【０１７７】
図２２は、特徴量を生成する処理の他の例を示すフローチャートである。入力部１０は、予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得する（ステップＳ４１）。また、入力部１０は、第１の属性と第２の属性との類似度の算出に用いられる類似度関数と、類似度に対する条件（例えば、類似度の閾値）とを受け付ける（ステップＳ４２）。特徴量生成器８２は、類似度関数を用いて算出される結合条件と集約条件とを用いて、第１のテーブルおよび第２のテーブルから特徴量の候補を生成する（ステップＳ４３）。そして、特徴量選択器８３は、特徴量の候補から、予測に最適な特徴量を選択する（ステップＳ４４）。
【０１７８】
以上のように、本実施形態では、入力部１０が、予測対象および第１の地理的属性を含む第１のテーブルと、第２の地理的属性を含む第２のテーブルとを取得する。また、入力部１０は、地理的関係、および、地理的関係の程度を受け付ける。そして、マップパラメータ生成器３０が、第１の地理的属性の値と第２の地理的属性の値との関係が地理的関係の程度を満たすような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するための結合条件を生成する。同様に、本実施形態では、入力部１０が、予測対象および第１の時間的属性を含む第１のテーブルと、第２の時間的属性を含む第２のテーブルとを取得する。また、入力部１０は、時間的関係、および、時間的関係の程度を受け付ける。そして、マップパラメータ生成器３０が、第１の時間的属性の値と第２の時間的属性の値との関係が時間的関係の程度を満たすような、第１のテーブルに含まれるレコードと第２のテーブルに含まれるレコードとを結合するための結合条件を生成する。よって、地理的情報または時間的情報を介して複数の情報を関連付ける作業工数を低減できる。その結果、多様な表現で表された情報を処理するコンピュータの負荷を低減することが可能になる。
【０１７９】
また、本実施形態では、入力部１０が、予測対象および第１の地理的属性を含む第１のテーブルと、第２の地理的属性を含む第２のテーブルとを取得する。そして、特徴量生成器８２は、第１の地理的属性の値に対する第２の地理的属性の値が所定の条件を満たす場合に、第１の地理的属性の値と条件を満たす第２の地理的属性の値とに基づいて算出される距離の統計値を、予測対象に影響を及ぼし得る変数である特徴量として第１のテーブルの属性に追加する。よって、地理的情報を有する複数の情報源から、効率よく特徴量を生成できる。
【０１８０】
さらに、本実施形態では、入力部１０が、予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得する。また、入力部１０が、第１の属性と第２の属性との類似度の算出に用いられる類似度関数と、類似度に対する条件とを受け付ける。そして、特徴量生成器８２が、類似度関数を用いて算出される結合条件と集約条件とを用いて、第１のテーブルおよび第２のテーブルから特徴量の候補を生成し、特徴量選択器８３が、特徴量の候補から、予測に最適な特徴量を選択する。よって、特徴量を生成するための分析者工数を削減できる。
【０１８１】
次に、本発明の概要を説明する。図２３は、本発明による特徴量生成装置の概要を示すブロック図である。本発明による特徴量生成装置３８０は、予測対象および第１の属性を含む第１のテーブル（例えば、ターゲットテーブル）と、第２の属性を含む第２のテーブル（例えば、ソーステーブル）とを取得するテーブル取得手段３８１（例えば、入力部１０）と、第１の属性と第２の属性との類似度の算出に用いられる類似度関数と、類似度に対する条件とを受け付ける受付手段３８２（例えば、入力部１０）と、類似度関数を用いて、第１の属性の値と第２の属性の値とにより算出される類似度が、条件（類似度に対する条件）を満たす第１の属性の値を含む第１のテーブルのレコードと、第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件（例えば、マップパラメータ）と、第２のテーブルにおける複数のレコードに対する集約方法および集約の対象になる列により表される集約条件（例えば、集約パラメータ）とを用いて、第１のテーブルおよび第２のテーブルから、予測対象に影響を及ぼし得る特徴量の候補を生成する特徴量生成手段３８３（例えば、特徴量生成器８２）と、特徴量の候補から、予測に最適な特徴量を選択する特徴量選択手段３８４（例えば、特徴量選択器８３）とを備えている。
【０１８２】
そのような構成により、特徴量を生成するための分析者工数を削減できる。
【０１８３】
また、特徴量生成手段３８３は、複数の結合条件と複数の集約条件とを用いて、結合条件と集約条件とを組み合わせた数の特徴量を生成してもよい。
【０１８４】
その際、第１の属性および第２の属性が、地理的属性であり、類似度関数が、距離が近いほど類似度を高く算出する関数として定義されてもよい。
【０１８５】
他にも、第１の属性および第２の属性が、時間的属性であり、類似度関数が、時間の差異が小さいほど類似度を高く算出する関数として定義されてもよい。
【０１８６】
他にも、第１の属性および第２の属性が、文字列属性であり、類似度関数が、文字列を示すテキストの一致度が高いほど類似度を高く算出する関数として定義されてもよい。
【０１８７】
他にも、第１の属性および第２の属性が、構造的属性であり、類似度関数が、共通するノードまでの距離が近いほど類似度を高く算出する関数として定義されてもよい。
【０１８８】
また、情報処理装置３８０は、結合条件と、集約条件と、第２のテーブルから条件を満たすレコードを抽出するための抽出条件（例えば、フィルタパラメータ）とを用いて特徴量生成関数を生成する関数生成手段（例えば、特徴量生成関数生成器８１）を備えていてもよい。
【０１８９】
図２４は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ１０００は、プロセッサ１００１、主記憶装置１００２、補助記憶装置１００３、インタフェース１００４を備える。
【０１９０】
上述の情報処理システムは、コンピュータ１０００に実装される。そして、上述した各処理部の動作は、プログラム（結合条件生成プログラム）の形式で補助記憶装置１００３に記憶されている。プロセッサ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、当該プログラムに従って上記処理を実行する。
【０１９１】
なお、少なくとも１つの実施形態において、補助記憶装置１００３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００が当該プログラムを主記憶装置１００２に展開し、上記処理を実行しても良い。
【０１９２】
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１９３】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１９４】
（付記１）予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得するテーブル取得手段と、前記第１の属性と前記第２の属性との類似度の算出に用いられる類似度関数と、当該類似度に対する条件とを受け付ける受付手段と、前記類似度関数を用いて、前記第１の属性の値と前記第２の属性の値とにより算出される類似度が、前記条件を満たす当該第１の属性の値を含む第１のテーブルのレコードと、当該第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および当該集約の対象になる列により表される集約条件とを用いて、前記第１のテーブルおよび前記第２のテーブルから、前記予測対象に影響を及ぼし得る特徴量の候補を生成する特徴量生成手段と、前記特徴量の候補から、予測に最適な特徴量を選択する特徴量選択手段とを備えたことを特徴とする特徴量生成装置。
【０１９５】
（付記２）特徴量生成手段は、複数の結合条件と複数の集約条件とを用いて、当該結合条件と当該集約条件とを組み合わせた数の特徴量を生成する付記１記載の特徴量生成装置。
【０１９６】
（付記３）第１の属性および第２の属性は、地理的属性であり、類似度関数は、距離が近いほど類似度を高く算出する関数として定義される付記１または付記２記載の特徴量生成装置。
【０１９７】
（付記４）第１の属性および第２の属性は、時間的属性であり、類似度関数は、時間の差異が小さいほど類似度を高く算出する関数として定義される付記１または付記２記載の特徴量生成装置。
【０１９８】
（付記５）第１の属性および第２の属性は、文字列属性であり、類似度関数は、文字列を示すテキストの一致度が高いほど類似度を高く算出する関数として定義される付記１または付記２記載の特徴量生成装置。
【０１９９】
（付記６）第１の属性および第２の属性は、構造的属性であり、類似度関数は、共通するノードまでの距離が近いほど類似度を高く算出する関数として定義される付記１または付記２記載の特徴量生成装置。
【０２００】
（付記７）結合条件と、集約条件と、第２のテーブルから条件を満たすレコードを抽出するための抽出条件とを用いて特徴量生成関数を生成する関数生成手段を備えた付記１から付記６のうちのいずれか１つに記載の特徴量生成装置。
【０２０１】
（付記８）予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得し、前記第１の属性と前記第２の属性との類似度の算出に用いられる類似度関数と、当該類似度に対する条件とを受け付け、前記類似度関数を用いて、前記第１の属性の値と前記第２の属性の値とにより算出される類似度が、前記条件を満たす当該第１の属性の値を含む第１のテーブルのレコードと、当該第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および当該集約の対象になる列により表される集約条件とを用いて、前記第１のテーブルおよび前記第２のテーブルから、前記予測対象に影響を及ぼし得る特徴量の候補を生成し、前記特徴量の候補から、予測に最適な特徴量を選択することを特徴とする特徴量生成方法。
【０２０２】
（付記９）複数の結合条件と複数の集約条件とを用いて、当該結合条件と当該集約条件とを組み合わせた数の特徴量を生成する付記８記載の特徴量生成方法。
【０２０３】
（付記１０）コンピュータに、予測対象および第１の属性を含む第１のテーブルと、第２の属性を含む第２のテーブルとを取得するテーブル取得処理、前記第１の属性と前記第２の属性との類似度の算出に用いられる類似度関数と、当該類似度に対する条件とを受け付ける受付処理、前記類似度関数を用いて、前記第１の属性の値と前記第２の属性の値とにより算出される類似度が、前記条件を満たす当該第１の属性の値を含む第１のテーブルのレコードと、当該第２の属性の値を含む第２のテーブルのレコードとを結合するための結合条件と、第２のテーブルにおける複数のレコードに対する集約方法および当該集約の対象になる列により表される集約条件とを用いて、前記第１のテーブルおよび前記第２のテーブルから、前記予測対象に影響を及ぼし得る特徴量の候補を生成する特徴量生成処理、および、前記特徴量の候補から、予測に最適な特徴量を選択する特徴量選択処理を実行させるための特徴量生成プログラム。
【０２０４】
（付記１１）コンピュータに、特徴量生成処理で、複数の結合条件と複数の集約条件とを用いて、当該結合条件と当該集約条件とを組み合わせた数の特徴量を生成させる付記１０記載の特徴量生成プログラム。
【０２０５】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２０６】
この出願は、２０１７年１０月５日に出願された米国仮出願第６２／５６８，３９７号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２０７】
１０  入力部
２０  ジオコーダ
３０  マップパラメータ生成器
３１  時間差異マップ生成器
３２  マップ生成器
３３  属性特定部
４０  ジオマップ生成器
４１  距離マップ生成器
４２  包含マップ生成器
４３  重複マップ生成器
４４  同地域マップ生成器
５０  フィルタパラメータ生成器
５１  フィルタ生成器
６０  集約パラメータ生成器
６１  数的集約生成器
７０  ジオ集約生成器
７１  ポイント集約生成器
７２  エリア集約生成器
８０  記憶部
８１  特徴量生成関数生成器
８２  特徴量生成器
８３  特徴量選択器
９０  出力部
９１  学習部
９２  予測部
【図１】
2019069507.tif 000003
【図２】
2019069507.tif 000004
【図３】
2019069507.tif 000005
【図４】
2019069507.tif 000006
【図５】
2019069507.tif 000007
【図６】
2019069507.tif 000008
【図７】
2019069507.tif 000009
【図８】
2019069507.tif 000010
【図９】
2019069507.tif 000011
【図１０】
2019069507.tif 000012
【図１１】
2019069507.tif 000013
【図１２】
2019069507.tif 000014
【図１３】
2019069507.tif 000015
【図１４】
2019069507.tif 000016
【図１５】
2019069507.tif 000017
【図１６】
2019069507.tif 000018
【図１７】
2019069507.tif 000019
【図１８】
2019069507.tif 000020
【図１９】
2019069507.tif 000021
【図２０】
2019069507.tif 000022
【図２１】
2019069507.tif 000023
【図２２】
2019069507.tif 000024
【図２３】
2019069507.tif 000025
【図２４】
2019069507.tif 000026
【国際調査報告】
2019069507.tif 000027
2019069507.tif 000028
2019069507.tif 000029
2019069507.tif 000030