【実施例1】
【0013】
[構成]
本発明の第1の実施例による予測不可データ判定システム101は、
図1に示す如く、次に述べる入力装置102と空間分割装置103とレコード計数装置104と集中度検出装置105と出力装置106と記憶装置107と処理装置108とがバス119を介して相互接続して構成される。
【0014】
入力装置102:
この入力装置102は、複数の項目を含む元データや処理パラメータを外部から入力するための機器であって、例えば、キーボード・マウス等の入力機器やネットワーク接続機器である。
【0015】
記憶装置107:
この記憶装置107は、記憶(メモリ)領域毎に少なくとも、入力データ109と、出力データ110と、フラグ111と、カウンタ112と、対応表113とを記憶する。前記入力データ109は入力装置102を介して記憶装置107に取り込まれて格納され、例えば、
図2に示す如く、入手した各データに一意に付与されたID(識別子)ごとに、データの属性(項目)として、性別と、住所と、年代と、結婚有無と、子供有無と、商品A購買有無の各項目情報を1個人毎間に1レコードとして格納する。前記出力データ110とフラグ111とカウンタ112と対応表113は後述する。
【0016】
空間分割装置103:
この空間分割装置103は、データ属性を空間内の軸として表す説明変数を用いて張る多次元空間を有限の空間に排他的かつ網羅的に分割するためのものであり、この多次元空間を
図3を用いて説明する。なお、本説明では、図示可能な関係上、説明変数を「性別」と「年代」と「結婚有無」の3軸としている。
【0017】
この多次元空間は、説明変数に複数種類の値が含まれるため、
図3に示す如く、年代をY軸、性別をX軸、結婚をZ軸とした三次元空間として表され、各データを組み合わせた数だけの小さな立方体に分割することができることを示している。
【0018】
本図における三次元空間は、
図3に示す小立方体の一つが、例えば、「性別=男」and「年代=20代」and「結婚=未婚」という値の組合せを示している。この小さな立方体一つに対応して、フラグ111と、カウンタ112が目的変数の値の数だけ記憶装置107に格納される。
【0019】
理解を容易にするために前記立方体を形成するための空間データの二次元テーブルとして表した場合、
図14に示す如く、多次元空間アドレス毎にフラグとデータ(例えば、年代・性別・結婚有無の3種)と集中度の3項目を設定すると表すことができる。なお、図中の集中度は、フラグが1のみのものにつけられ、フラグが0のものは分母が0になるため、「−」として描いている。
【0020】
レコード計数装置104:
このレコード計数装置104は、入力データ109を読み込み、各レコードに対応するフラグとカウンタを更新する機能を有する。
【0021】
集中度検出装置105:
この集中度検出装置105は、レコード計数装置104にて全レコードを読み終わって更新がなされたフラグ111とカウンタ112を読み込み、入力データの目的変数を予測可能か否かに関する情報を生成して出力データ110に書き込む機能を有する。
【0022】
この出力データ110は、例えば、
図4に示す如き表形式のデータであり、図示の例では、性別、年代、結婚有無、集中度、商品A購買有、商品B購買無の各項目情報が設定され、各データは、1レコード毎に性別と年代と結婚の各項目の組合せに対応する、集中度と購買有と購買無が格納されており、レコード単位で集中度の高い降順にソートされている。
【0023】
この出力データ110は、性別と年代と結婚がキーとなっており、これらの組合せが異なれば、別データとなる。本実施例においては、性別・年代・結婚有無の3つのデータ属性が、入力データ109の項目から説明変数として選ばれた項目であり、集中度は処理の中で生成される項目であり、商品A購買有及び商品A購買無は目的変数である。すなわち、本例においては、データに含まれる複数のデータ属性(項目)の中からデータ解析の条件として任意に選択されたデータ属性(項目)を本実施例においては説明変数と呼ぶ。また、本例においては、データに含まれる複数のデータ属性(項目)の中からデータ解析の目的として任意に選択されたデータ属性(項目)を目的変数と呼ぶ。
【0024】
出力装置106:
この出力装置106は、出力データ110を外部に出力する一般的な装置であって、例えば、コンピュータのディスプレイ・プリンタ・ネットワーク接続機器等である。
【0025】
処理装置108:
この処理装置108は、本実施例による予測不可データ判定システム101の処理を制御する制御装置であって、例えば、コンピュータのCPU、メモリ、OSなどで構成される。
【0026】
バス119:
このは、バス119は、前述した複数の装置間を接続してデータ転送を行うためのバスまたはネットワーク機器である。
【0027】
[動作]
さて、このように構成された予測不可データ判定システムは、
図5に示す各ステップを処理装置108が実行することによって、入力データが予測や推定に不向か否かを判定する。
【0028】
ステップs501:
処理装置108が、分析対象となる元データを入力装置102を用いて入力し、記憶装置107に
図2に示した入力データ109として格納するステップ。
【0029】
ステップs502:
処理装置108が、入力データ109の初期設定を行うステップ。この初期設定とは、本実施例の場合、入力データ109から複数の項目(
図2に示した性別と年代と結婚と商品A購入)を取出し、この中から1個以上の説明変数(例えば、性別と年代と結婚のデータ属性)及び1個の目的変数(予測したいデータ属性。例えば、商品Aを購入した顧客の性別・年代・結婚有無の組み合わせの場合、商品Aの購入)を決定し、さらに、目的変数の値の数と種類を設定し、出力の際の項目名を設定して記憶装置107に格納する。
【0030】
[説明変数及び目的変数の設定詳細]
この説明変数と目的変数の設定は、ユーザが任意に設定することができ、この説明変数及び目的変数の設定処理を
図6を用いて説明する。
図6に示したディスプレイ601は出力装置106の一部であり、キーボード602とマウス603は入力装置102の一部であり、他の画面でも同様である。
【0031】
この処理は、
図6に示す如く、ディスプレイ601に初期設定画面604を表示する。この初期設定画面604は、読み込んだ元データに含まれる複数の属性データを列挙したデータ属性列挙欄605と、この複数のデータ属性の中から判定の目的とするデータ属性である目的変数をマウスカーソル612等によりラジオボタンを用いて選択させるための目的データ属性選択欄606と、該目的変数に対して判定対象とする複数のデータ属性である説明変数をチェックボックスを用いて選択させるための説明データ属性選択欄607とを上段に表示している。
【0032】
図6上段に示した例は、読み込んだ元データに含まれるデータ属性がデータ属性列挙欄605に「ID、性別、住所、年代、結婚、子供有無、商品A購買有無」として表示され、目的データ属性選択欄606から目的変数として「商品A購入有無」がラジオボタンにより選択され、説明データ属性選択欄607から説明変数としてチェックボックスにより「性別・年代・結婚」が入力空間として選択されている。すなわち、
図6に示した例においては、元データにおけるデータ属性(説明変数)として「性別・年代・結婚」を選択し、このデータ属性(説明変数)の組み合わせによりどの組み合わせの消費者が「商品A」を購入したかを判定するように設定している。
【0033】
図6の下段の初期設定画面は、目的変数の値(本例では、購入有無の2)の個数入力欄608と、該目的変数の値だけ目的変数の値と変数名の入力行がその下に表示され入力できる変数名欄609及び610(本例では購入有・購入無)が表示されている。この変数名は、後に出力データ110を作成するときに用いられる。さらに初期設定画面の最下段には、上述の入力条件をユーザが承認するためのOKボタン611が表示されている。
【0034】
これら
図6に示した目的変数値及びインデクスは、記憶装置107の対応表113に
図8(d)に示す如く記憶される。この
図8(d)の例では、「有」の値はインデクス「1」に、「無」の値がインデクス「2」に紐づけられている。このインデクスの値は、後述する計数処理のステップs505においてカウンタ112の更新の際にインデクスとして用いる。
【0035】
また、本ステップにおいては、判定条件として設定した説明変数及び目的変数を本システム内で扱うときのインデクスをここで項目名とインデクスの対応表として記憶装置に格納する。その例を
図8(e)に示す。最終行が目的変数を表し、その前の行が説明変数を表す。ここでは、性別と年代と結婚が説明変数であり、商品A購買有無が目的変数であり、それぞれにインデクスが付与されていることがわかる。この対応表113も記憶装置107に格納される。
【0036】
ステップs503:
このステップs503は、ステップs502にて設定した全ての説明変数を用いて張る空間を有限の小空間に分割するためのステップであり、複数の説明変数を有限の値に分割し、すべての説明変数での組合せを作成する。
【0037】
この空間分割処理は、例えば、説明変数が、説明変数A、説明変数B、説明変数Cの全部で3個であり、それぞれの値が、説明変数AがNA個、説明変数BがNB個、説明変数CがNC個に分割された場合、全部でNA×NB×NC個の小空間に分割するものであって、分割数等の条件はユーザによって設定される。
【0038】
[空間分割処理の詳細]
この説明変数を有限の値に分割するための設定は、ユーザが任意に設定することができ、この空間分割設定画面701を
図7を用いて説明する。
【0039】
この空間分割設定画面701は、前記ステップs502により指定された説明変数について一つずつ分割方法を設定するものであって、説明変数「性別」の値の個数入力欄702と、該個数入力欄702により入力された値の数だけ複数の値を入力するための説明変数値入力欄703及び説明変数値入力欄704とを表示する。
【0040】
図7の例では、説明変数「性別」の値の個数が男と女の2つであるため、説明変数「性別」の値の個数に2が入力される。その後、その下に、説明変数「性別」の値(1)の説明変数値入力欄703と、説明変数「性別」の値(2)の説明変数値入力欄704が表示される。この説明変数「性別」の値(1)に男を、説明変数「性別」の値(2)に女を入力し、OKボタン705をキーボード602やマウス603を用いて押下することにより説明変数「性別」の分割設定条件の入力を終了する。この分割設定条件の入力は、全ての説明変数について順に行う。これらの入力を容易にするために、入力待ちの現在位置をマウスカーソル706として空間分割設定画面701上に重畳表示する。
【0041】
すべての説明変数での分割が終わったら、それらの説明変数の値のすべての組合せが確定する。この説明変数の値のすべての組み合わせを表現するのに、本実施例では、多次元配列のデータ構造を利用する。記憶装置107に、フラグ111及びカウンタ112を持ち、フラグ111はそれぞれの組合せに対応して一つ設定し、カウンタ112はそれぞれの組合せに対応して目的変数の値の数だけ設定する。
【0042】
これは、例えば、説明変数が全部で3個であり、それぞれ説明変数A・説明変数B・説明変数Cであり、目的変数がDである場合で、それぞれの値が、説明変数AがNA個、説明変数BがNB個、説明変数CがNC個、目的変数DがN0個に分割されたとき、フラグは、NA×NB×NC個作られ、カウンタは、NA×NB×NC×N0個作られる。これらをデータの多次元配列で表現される。
【0043】
ここで、一般のコンピュータプログラム言語で使用される配列構造の記法を用いて表現する場合、例えば、フラグはflag[a][b][c]のような配列で表され、カウンタはcounter[a][b][c][d]のような配列で表される。このような形で、それぞれ、フラグ111及びカウンタ112が記憶装置107に初期化されて生成される。ここで初期値は0である。ここで、a、b、c、dは、それぞれ、1番目の説明変数、2番目の説明変数、3番目の説明変数、目的変数の値を示すインデクスである。インデクスは値の種類を設定するステップs502やステップs503で何番目に指定した値かという順番が使われる。
【0044】
この対応表113の例を
図8に示す。
図8(a)(b)(c)は、それぞれ、説明変数「性別」、説明変数「年代」、説明変数「結婚」の値とインデクスの対応表である。この対応表113は記憶装置107に格納される。
【0045】
このような空間分割処理によって、本実施例による処理装置108は、設定された説明変数を分割し、説明変数全てにより張る空間を有限個の小空間に分割し、それぞれに対応するデータを記憶領域に割当て、インデクスをつけることができる。
【0046】
ステップs504:
このステップs504は、計数処理が全レコードを終了したか否かを判定し、終了したと判定したときに後述のステップs506に移行し、全レコードを終了していないと判定したとき次のステップs505に移行する。
【0047】
ステップs505:
このステップs505は、入力データ109の中で、まだ計数処理をしていないレコードを一つ抽出し、そのレコードの値からフラグ111の値を必要に応じて修正し、カウンタ112の値を更新するステップである。
【0048】
フラグは、説明変数の組み合わせで一つある値であり、その組み合わせのレコードがあれば「1」、組み合わせのレコードがなければ「0」となる値である。カウンタは、説明変数の組み合わせに対して、目的変数の値ごとにある値であり、それぞれに対して、対応するレコードの個数が入る。
【0049】
したがって、本計数処理の中で、フラグの方の処理は、入力データのレコードを一つ読み、説明変数で表されるフラグの値が「0」であれば「1」に、「1」であれば何もしない。カウンタの方の処理は、説明変数及び目的変数の値で表されるカウンタの値を1だけカウントアップする。
【0050】
ここで、読み込んだレコードから対応するフラグを定めるために、
図8(a)(b)(c)の対応表113を用いる。レコードにある値を対応表に探し、値に対応するインデクスが指し示すフラグやカウンタを読み書きすれば良い。
【0051】
説明変数が、「性別」「年代」「結婚」の3つで、目的変数が商品A購買有無である場合の入力データ109の一つのレコードの例を
図9に示す。
図9に示す例は、1レコードにおいて、性別が「男」、年代が「20代」、結婚が「未婚」、商品A購買有無が「無」であることがわかる。また、
図8に示した対応表113により、男はインデクスが「1」、20代はインデクスが「3」、未婚はインデクスが「1」、商品A購買有無が無なのはインデクス「2」とわかる。
【0052】
このように多次元配列においては、インデクスの順番は、
図8(e)に示した変数のインデクスを用いる。すなわち、ここでは、1番目のインデクスが「性別」、2番目のインデクスが「年代」、3番目のインデクスが「結婚」、4番目のインデクスが「商品A購買有無」を表す。以上より、インデクスを用いて、フラグに関してはflag[1][3][1]を読んでこれが0であれば1に修正し、1であれば何もしない。カウンタに関してはcounter[1][3][1][2]を1だけカウントアップすることになる。
【0053】
ステップs506:
このステップs506は、フラグ111、カウンタ112から、目的変数の値の集中度に関する情報を作成して、出力データ110を作成するステップである。
【0054】
このステップs506により出力される出力データ110は、例えば、
図4に示す如く、「性別」「年代」「結婚」「集中度」「商品A購入有」「商品B購入無」の各項目から成り、前記集中度は、小空間ごとに同じ小空間を指すカウンタのうち最も大きいものの比率である。
【0055】
この集中度は、例えば、有のカウンタの値が「23」、無のカウンタの値が「10」であるとき、23/(23+10)=0.70をその小空間の集中度とする。フラグが1の小空間全てについて集中度をキーとして降順にソートして出力したものが
図4の出力データである。
図4に示した「商品A購買有」や「商品A購買無」という変数名は、初期設定のステップs502で入力されたものを使用し、説明変数の欄には、インデクスを値に変換したものが格納されている。
【0056】
このように本ステップは、それぞれの説明変数の値の組合せにおいて、目的変数の値の集中度の大きいものから順にすべての小空間がリストアップされる。全ての行で集中度が「1」となっていれば、この説明変数だけによって目的変数を識別することができ、集中度が「1」になっていない行があれば、少なくともこの説明変数だけによって目的変数を100%正確には識別できないことを判定することができる。
【0057】
ステップs507:
このステップs507は、出力データ110を出力装置106に出力するステップである。この出力データ110を出力装置106に出力する離散化設定画面1001を
図10を参照して説明する。
【0058】
この離散化設定画面1001は、
図10に示す如く、データの属性である説明変数「性別」「年代」「結婚」と、各説明変数の組み合わせによる「集中度」と、該集中度に対する商品購入数である「商品A購入有」及び「商品B購入無」の複数項目に対する「性別」「年代」「結婚」「集中度」「商品A購入有」「商品B購入有」が一覧として表示される。
【0059】
図示の例では、「性別」が「女」、「年代」が「20代」、「結婚」が「既婚」の説明変数(データ属性)の組み合わせの「集中度」が「0.70」、「商品A購入有」が「23」、「商品B購入無」が「10」として表示される。すなわち、この出力データ110は、「性別:女」且つ「年代:20代」且つ「結婚:既婚」の消費者が、「商品A購入有」が数「23」、「商品B購入無」が数「10」、集中度が最も高い「0.70」であり、集中度が「1」未満のため、ユーザが設定した複数の説明変数(データ属性)では目的変数(データ属性)を100%正確には識別できないが、70%の確率で識別可能であることを表している。
【0060】
なお、前述の実施形態においては、
図1に示したコンピータシステムの構成を説明したが、一般的なCPU・メモリ・バードィスク等の記憶手段を含むパーソナルコンピュータ及び入出力機器を用いて本発明の実施例を実行するように構成しても良い。また、入力機器としてキーボードとマウスを例示したが、同様の入力機能を実現するような、例えば、携帯電話やスマートフォンのソフトウェアキーボードやハードェアキーボードやタッチディスプレイなド、別の入力機器であっても良い。
【0061】
このように本実施例による予測不可データ判定システム101は、予測や推定の分析モデルを予め用意することなく、元データを解析するためのデータ属性である複数の説明変数及び解析の目的とするデータ属性である目的変数を設定し、該複数の説明変数の組み合わせによる目的変数の集中度を判定することによって予測不可データを検出することができる。