(57)【要約】【課題】  所定行のレコードと所定列のフィールドとから構成されるデータベースにおいて、精度よく欠落データを推定する。【解決手段】  推定対象データの算出対象となるデータベースを記憶するデータベース記憶部２０と、データベースが格納する各データの値域を一定にして各データを標準化する標準化部１２と、推定対象データを含む注目レコードに対する他のレコードの類似度を算出する類似度算出部１３と、注目レコードに対する類似度が高いｋ個のレコードのデータを基に、標準化推定データを算出する標準化推定データ算出部１４と、標準化推定データを逆標準化し、推定対象データを算出する逆標準化部１５とを備える。【選択図】      図２
2005141508.tif 000002
【特許請求の範囲】
【請求項１】
所定行のレコードと所定列のフィールドとから構成されるデータベースにおいて、欠落データを推定する欠落データ推定装置であって、
各データの値域を一定にして各データを標準化する標準化手段と、
標準化されたデータを基に、推定対象となる欠落データを含む注目レコードに対する各レコードの類似度を算出する類似度算出手段と、
前記注目レコードに対する類似度が高い順に抽出した所定個数のレコードに含まれるデータを基に、前記欠落データの標準化された値を算出する欠落データ算出手段と、
前記欠落データ算出手段によって算出された欠落データの標準化された値を、当該欠落データが属するフィールドの値域に戻す逆標準化処理を施し、推定対象となる欠落データの推定値を算出する逆標準化手段とを備えることを特徴とする欠落データ推定装置。
【請求項２】
文字からなるデータに対し、データの種類に応じた数値を割り当て、当該データを数値化する数値割当手段をさらに備えることを特徴とする請求項１記載の欠落データ推定装置。
【請求項３】
前記標準化手段は、式（Ａ）〜式（Ｃ）のうち、いずれか１つの式を用いて各データを標準化することを特徴とする請求項１又は２記載の欠落データ推定装置。
【数１】
2005141508.tif 000012
但し、ｍi,jは、ｉ行ｊ列目のセルに格納されたデータ
ＳＴＤ（ｍi,j）は、ｍi,jを標準化した値
Ｕjは、ｊ列目のフィールドのデータの集合
ＡＭＭ（Ｕj）は、Ｕjの平均値
ＳＤＥＶＭＭ（Ｕj）は、Ｕjの標準偏差
ｍｉｎ（Ｕj）はＵjの最小のデータ
ｍａｘ（Ｕj）はＵjの最大のデータ
｜Ｕj｜はＵjの要素数
【請求項４】
前記標準化手段は、データベースが格納するデータの特性に応じて、前記式（Ａ）〜（Ｃ）のうち、いずれか１つの式を選択することを特徴とする請求項３記載の欠落データ推定装置。
【請求項５】
前記類似度算出手段は、式（Ｄ）〜（Ｇ）のうち、いずれか１つの式を用いて類似度を算出することを特徴とする請求項１〜４のいずれかに記載の欠落データ推定装置。
【数２】
2005141508.tif 000013
但し、ｕiはｉ行目のレコード
ｓｉｍ（ｕa，ｕi）は、ａ行目のレコードに対するｉ行目のレコードの類似度
ＡＳＭ（Ｕj）は、ｊ列目のフィールドのデータを標準化した値の平均値
ＡＳＵ（Ｍi）は、ｉ行目のレコードのデータを標準化した値の平均値
ｎはＵa∩Ｕiを構成するデータの数
【請求項６】
前記類似度算出手段は、データベースが格納するデータの特性に応じて前記式（Ｄ）〜（Ｇ）のうち、いずれか１つの式を選択することを特徴とする請求項５記載の欠落データ推定装置。
【請求項７】
前記欠落データ算出手段は、式（Ｈ）〜（Ｋ）のうち、いずれか１つの式を用いて、前記欠落データの標準化された値を算出することを特徴とする請求項１〜６のいずれかに記載の欠落データ推定装置。
【数３】
2005141508.tif 000014
但し、ｍa,bは、推定対象となる欠落データ
ｉ∈k-nearest_neighborsは、レコードｕaに対する類似度が高い順に抽出されたｋ個のレコードの行番号
amplifier（ｕa，ｕi）はｕa及びｕiの対応するフィールド同士のデータの倍数の平均値を示す。
【請求項８】
前記欠落データ算出手段は、データベースが格納するデータの種類に応じて前記式（Ｈ）〜（Ｋ）のうち、いずれか１つの式を選択することを特徴とする請求項７記載の欠落データ推定装置。
【請求項９】
前記逆標準化手段は、前記標準化手段が前記式（Ａ）を用いて標準化した場合は、式（Ｌ）を用いて逆標準化し、前記標準化手段が前記式（Ｂ）を用いて標準化した場合は、式（Ｍ）を用いて逆標準化し、前記標準化手段が前記式（Ｃ）を用いて標準化した場合は、以下の（i）〜(iv)の判断基準に従い、式（Ｎ）〜式（Ｐ）のうち、いずれか１つの式を用いて逆標準化することを特徴とする請求項３〜８のいずれかに記載の欠落データ推定装置。
(i)  Ｍbを構成するデータｍi,bの標準化された値ＳＴＤ（ｍi,b）の中に、前記欠落データの標準化された値ＳＴＤ（ｍa,b）と等しいものがある場合、ｍa,b＝ｍi,bとする。
(ii)  ＳＴＤ（ｍa,b）＜ＳＴＤ（ｍｉｎ（Ｍb））である場合、式（Ｎ）でｍa,bを求める。
(iii)  ＳＴＤ（ｍa,b）＞ＳＴＤ（ｍａｘ（Ｍb））である場合、式（Ｏ）でｍa,bを求める。
(iv)  前記(i)〜(iii)以外の場合、式（Ｐ）でｍa,bを求める。
【数４】
2005141508.tif 000015
但し、secondMin（Ｍb）はＭbの要素の中で２番目に小さい値
secondmax（Ｍb）はＭbの中で２番目に大きい値
High（Ｍj）はＳＴＤ（ｍa,b）＜ＳＴＤ（ｍi,j）で、ＳＴＤに最も近い値
Low（Ｍj）はＳＴＤ（ｍa,b）＞ＳＴＤ（ｍi,j）でＳＴＤ（ｍa,b）に最も近い値
【請求項１０】
所定行のレコードと所定列のフィールドとから構成されるデータベースにおいて欠落データを推定する欠落データ推定プログラムであって、
各データの値域を一定にして各データを標準化する標準化手段と、
標準化されたデータを基に、推定対象となる欠落データを含む注目レコードに対する各レコードの類似度を算出する類似度算出手段と、
前記注目レコードに対する類似度が高い順に抽出した所定個数のレコードに含まれるデータを基に、前記欠落データの標準化された値を算出する欠落データ算出手段と、
前記欠落データ算出手段によって算出された欠落データの標準化された値を、当該欠落データが属するフィールドの値域に戻す逆標準化処理を施し、推定対象となる欠落データの推定値を算出する逆標準化手段としてコンピュータを機能させることを特徴とする欠落データ推定プログラム。
【請求項１１】
所定行のレコードと所定列のフィールドとから構成されるデータベースにおいて、コンピュータを用いて欠落データを推定する欠落データ推定方法であって、
前記コンピュータが、各データの値域を一定にして各データを標準化するステップと、
前記コンピュータが、標準化されたデータを基に、推定対象となる欠落データを含む注目レコードに対する各レコードの類似度を算出するステップと、
前記コンピュータが、前記注目レコードに対する類似度が高い順に抽出した所定個数のレコードに含まれるデータを基に、前記欠落データの標準化された値を算出するステップと、
前記コンピュータが、前記標準化された値を算出するステップによって算出された欠落データの標準化された値を、当該欠落データが属するフィールドの値域に戻す逆標準化処理を施し、推定対象となる欠落データの推定値を算出するステップとを備えることを特徴とする欠落データ推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースにおいて欠落したデータを推定する技術に関するものである。
【背景技術】
【０００２】
ソフトウェア開発の現場では、開発プロジェクトを管理するために、新たに開発する、又は、現在開発中であるソフトウェアの開発コスト、信頼性及び需要等を高い精度で推定することが求められている。そこで、従来技術として、回帰分析に基づく特許文献１（ソフトウェア品質評価装置）の手法や、信頼性成長モデルに基づく特許文献２（ソフトウェア品質評価装置及びソフトウェア品質評価方法）の手法によって、上記ソフトウェアの開発コスト等を求める手法が提案されている。
【０００３】
しかしながら、ソフトウェア開発の現場では、データ収集ポリシーが一貫していない、及びデータ収集漏れが多い等の理由により、データを完全に収集することが困難であり、多くのデータが欠落しているケースが多く、この場合、特許文献１及び２の手法では、上記開発コスト等を精度よく算出することができないという問題があった。
【０００４】
一方、推定元となるデータが多く欠落している場合であっても、ユーザの嗜好を精度よく推定することができる手法として、協調フィルタリングが知られている。図１８は、協調フィルタリングで用いられるデータの一例を示した従来図である。表の行が各ユーザに対応し、表の列が各商品に対応する。各セルには、商品１〜５に対するユーザＡ〜Ｄの３段階の評価（「好き」＝５、「普通」＝３、「嫌い」＝１）が格納されている。そして、１行５列目のデータが算出対象となる欠落データである。協調フィルタリングでは、ユーザＡと同じような評価を行なったユーザの評価を基に、この欠落したデータを推定する。その他、協調フィルタリングによりユーザの嗜好を推定する手法として特許文献３及び４が知られている。
【特許文献１】特開平５−１１３８１０号公報
【特許文献２】特開平５−３２４３０９号公報
【特許文献３】米国特許６０６４９８０号公報
【特許文献４】特開２０００−０２２２７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ユーザの嗜好は、上記表でも示したように、「大好き」、「好き」、「普通」、「嫌い」、「大嫌い」等のせいぜい５種類程度の簡単な整数値で数値化されるため、各データの値域が一定とされるのが一般的である。そして、従来の協調フィルタリングでは、このように値域が一定のデータに対して欠落データを推定することが前提となっている。そのため、嗜好以外のデータを含むデータベースにおいて欠落データを推定することはできないという問題があった。
【０００６】
本発明は、上記課題を解決するためになされたものであり、データの嗜好以外の様々なデータからなるデータベースにおいて、精度よく欠落データを推定することができる欠落データ推定装置、欠落データ推定方法、欠落データ推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明にかかる欠落データ推定装置は、所定行のレコードと所定列のフィールドとから構成されるデータベースにおいて、欠落データを推定する欠落データ推定装置であって、各データの値域を一定にして各データを標準化する標準化手段と、標準化されたデータを基に、推定対象となる欠落データを含む注目レコードに対する各レコードの類似度を算出する類似度算出手段と、前記注目レコードに対する類似度が高い順に抽出した所定個数のレコードに含まれるデータを基に、前記欠落データの標準化された値を算出する欠落データ算出手段と、前記欠落データ算出手段によって算出された欠落データの標準化された値を、当該欠落データが属するフィールドの値域に戻す逆標準化処理を施し、推定対象となる欠落データの推定値を算出する逆標準化手段とを備えることを特徴とする。
【０００８】
また、文字からなるデータに対し、データの種類に応じた数値を割り当て、当該データを数値化する数値割当手段をさらに備えることが好ましい。
【０００９】
また、前記標準化手段は、式（Ａ）〜式（Ｃ）のうち、いずれか１つの式を用いて各データを標準化することを特徴とする請求項１又は２記載の欠落データ推定装置。
【００１０】
【数５】
2005141508.tif 000003
【００１１】
但し、ｍi,jは、ｉ行ｊ列目のセルに格納されたデータ、ＳＴＤ（ｍi,j）は、ｍi,jを標準化した値、Ｕjは、ｊ列目のフィールドのデータの集合、ＡＭＭ（Ｕj）は、Ｕjの平均値、ＳＤＥＶＭＭは、Ｕjの標準偏差、ｍｉｎ（Ｕj）はＵjの最小のデータ、ｍａｘ（Ｕj）はＵjの最大のデータ、｜Ｕj｜はＵjの要素数。
また、前記標準化手段は、データベースが格納するデータの特性に応じて、前記式（Ａ）〜（Ｃ）のうち、いずれか１つの式を選択することが好ましい。
【００１２】
また、前記類似度算出手段は、式（Ｄ）〜（Ｇ）のうち、いずれか１つの式を用いて類似度を算出することが好ましい。
【００１３】
【数６】
2005141508.tif 000004
【００１４】
但し、ｕiはｉ行目のレコード、ｓｉｍ（ｕa，ｕi）は、ａ行目のレコードに対するｉ行目のレコードの類似度、ＡＳＭ（Ｕj）は、ｊ列目のフィールドのデータを標準化した値の平均値、ＡＳＵ（Ｍi）は、ｉ行目のレコードのデータを標準化した値の平均値、ｎはＵa∩Ｕiを構成するデータの数。
【００１５】
また、前記類似度算出手段は、データベースが格納するデータの特性に応じて前記式（Ｄ）〜（Ｇ）のうち、いずれか１つの式を選択することが好ましい。
【００１６】
また、前記欠落データ算出手段は、式（Ｈ）〜（Ｋ）のうち、いずれか１つの式を用いて、前記欠落データの標準化された値を算出することが好ましい。
【００１７】
【数７】
2005141508.tif 000005
【００１８】
但し、ｍa,bは、推定対象となる欠落データ、ｉ∈k-nearest_neighborsは、レコードｕaに対する類似度が高い順に抽出されたｋ個のレコードの行番号、amplifier（ｕa，ｕi）はｕa及びｕbの対応するレコード同士のデータの倍数の平均値を示す。
【００１９】
また、前記欠落データ算出手段は、データベースが格納するデータの種類に応じて前記式（Ｈ）〜（Ｋ）のうち、いずれか１つの式を選択することが好ましい。
【００２０】
また、前記逆標準化手段は、前記標準化手段が前記式（Ａ）を用いて標準化した場合は、式（Ｌ）を用いて逆標準化し、前記標準化手段が前記式（Ｂ）を用いて標準化した場合は、式（Ｍ）を用いて逆標準化し、前記標準化手段が前記式（Ｃ）を用いて標準化した場合は、以下の(i)〜(iv)の判断基準に従い、式（Ｎ）〜式（Ｐ）のうち、いずれか１つの式を用いて逆標準化することが好ましい。
(i)  Ｍbを構成するデータｍi,bの標準化された値ＳＴＤ（ｍi,b）の中に、前記欠落データの標準化された値ＳＴＤ（ｍa,b）と等しいものがある場合、ｍa,b＝ｍi,bとする。
(ii)  ＳＴＤ（ｍa,b）＜ＳＴＤ（ｍｉｎ（Ｍb））である場合、式（Ｎ）でｍa,bを求める。
(iii)  ＳＴＤ（ｍa,b）＞ＳＴＤ（ｍａｘ（Ｍb））である場合、式（Ｏ）でｍa,bを求める。
(iv)  前記(i)〜(iii)以外の場合、式（Ｐ）でｍa,bを求める。
【００２１】
【数８】
2005141508.tif 000006
【００２２】
但し、secondMin（Ｍb）はＭbの要素の中で２番目に小さい値、secondmax（Ｍb）はＭbの中で２番目に大きい値、High（Ｍi）はＳＴＤ（ｍa,b）＜ＳＴＤ（ｍi,j）で、ＳＴＤに最も近い値、Low（Ｍj）はＳＴＤ（ｍa,b）＞ＳＴＤ（ｍi,j）でＳＴＤ（ｍa,b）に最も近い値。
【００２３】
本発明にかかる欠落データ推定プログラムは、所定行のレコードと所定列のフィールドとから構成されるデータベースにおいて欠落データを推定する欠落データ推定プログラムであって、各データの値域を一定にして各データを標準化する標準化手段と、標準化されたデータを基に、推定対象となる欠落データを含む注目レコードに対する各レコードの類似度を算出する類似度算出手段と、前記注目レコードに対する類似度が高い順に抽出した所定個数のレコードに含まれるデータを基に、前記欠落データの標準化された値を算出する欠落データ算出手段と、前記欠落データ算出手段によって算出された欠落データの標準化された値を、当該欠落データが属するフィールドの値域に戻す逆標準化処理を施し、推定対象となる欠落データの推定値を算出する逆標準化手段としてコンピュータを機能させることを特徴とする。
【００２４】
本発明にかかる欠落データ推定方法は、所定行のレコードと所定列のフィールドとから構成されるデータベースにおいて、コンピュータを用いて欠落データを推定する欠落データ推定方法であって、前記コンピュータが、各データの値域を一定にして各データを標準化するステップと、前記コンピュータが、標準化されたデータを基に、推定対象となる欠落データを含む注目レコードに対する各レコードの類似度を算出するステップと、前記コンピュータが、前記注目レコードに対する類似度が高い順に抽出した所定個数のレコードに含まれるデータを基に、前記欠落データの標準化された値を算出するステップと、前記コンピュータが、前記標準化された値を算出するステップによって算出された欠落データの標準化された値を、当該欠落データが属するフィールドの値域に戻す逆標準化処理を施し、推定対象となる欠落データの推定値を算出するステップとを備えることを特徴とする。
【発明の効果】
【００２５】
請求項１、１０及び１１記載の発明によれば、各データを標準化して各データの値域が一定とされ、欠落データを含むレコードと、それ以外のレコードとの類似度が算出され、算出された類似度を基に、欠落データの標準化された値が算出され、当該値が、逆標準化され、欠落データの推定値が算出されるため、値域が一定でない、ユーザの嗜好以外の種々のデータを含むデータベースにおいて、欠落データを含むレコードと、他のレコードとの類似度が算出可能となり、その結果に基づいて、欠落データの推定値を算出することができる。
【００２６】
請求項２記載の発明によれば、文字を含むデータが数値化されるため、これらのデータを含めて、各レコードの類似度を推定することが可能となり、より精度の高い類似度を算出することができる。その結果、推定対象となる欠落データを高精度で算出することができる。
【００２７】
請求項３記載の発明によれば、式（Ａ）〜（Ｃ）のうち、いずれか１つの式を用いて各データが標準化されるため、元のデータ値を保持した状態で、各データの値域を一定にすることができる。
【００２８】
請求項４記載の発明によれば、データの特性に応じて式（Ａ）〜（Ｃ）のうち、いずれか１つの式を選択するため、欠落データの推定値を高精度に得ることができる。
【００２９】
請求項５記載の発明によれば、式（Ｄ）〜（Ｇ）のうち、いずれか１つの式を用いて類似度が算出されるため、類似度を高精度に求めることができる。
【００３０】
請求項６記載の発明によれば、データの特性に応じて、式（Ｄ）〜（Ｇ）のうち、いずれか１つの式が選択されるため、欠落データの推定値を高精度に得ることができる。
【００３１】
請求項７記載の発明によれば、式（Ｈ）〜（Ｋ）のうち、いずれか１つの式を用いて推定対象となる欠落データの標準化された値が算出されるため、欠落データの推定値を高精度に得ることができる。
【００３２】
請求項８記載の発明によれば、データの特性に応じて式（Ｈ）〜（Ｋ）のうち、いずれか１つを選択するため、欠落データの推定値を高精度に得ることができる。
【００３３】
請求項９記載の発明によれば、標準化に用いた式に応じて適切な逆標準化処理を行なうことができる。
【発明を実施するための最良の形態】
【００３４】
図１は、本発明の一実施の形態による欠落データ推定装置のハードウェア構成を示すブロック図である。図１に示す欠落データ推定装置は、通常のコンピュータ等から構成され、入力装置１、ＲＯＭ（リードオンリメモリ）２、ＣＰＵ（中央演算処理装置）３、ＲＡＭ（ランダムアクセスメモリ）４、外部記憶装置５、表示装置６及び記録媒体駆動装置７を備える。各ブロックはバスラインにより種々のデータが相互に送受信可能に接続されている。
【００３５】
入力装置１は、キーボード、マウス等から構成され、操作者が種々のデータ及び操作指令等を入力するために使用される。
【００３６】
ＲＯＭ２には、ＢＩＯＳ（Basic Input/Output System）等のシステムプログラム等が記憶される。外部記憶装置５は、ハードディスクドライブ等から構成され、ＯＳ（Operating System）及び欠落データ推定プログラム等を記憶する。ＲＡＭ４は、ＣＰＵ３の作業領域等として用いられる。表示装置６は、液晶表示装置、ＣＲＴ（陰極線管）、プラズマディスプレイ等が採用される。
【００３７】
記録媒体駆動装置７は、ＣＤ−ＲＯＭドライブ、フレキシブルディスクドライブ等から構成される。なお、欠落データ推定プログラムを、ＣＤ−ＲＯＭ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体８に記録し、記録媒体駆動装置７により記録媒体８から欠落データ推定プログラムを読み出して外部記憶装置５にインストールして実行するようにしてもよい。また、図１に示す欠落データ推定装置が通信装置等を備え、欠落データ推定プログラムが所定のネットワークを介して図１に示す欠落データ推定装置に接続された他のコンピュータ等に記憶されている場合、当該コンピュータからネットワークを介して欠落データ推定プログラムをダウンロードして実行するようにしてもよい。
【００３８】
図２は、本欠落データ推定装置の機能を示すブロック図である。欠落データ推定装置は、プログラム実行部１０及びデータベース記憶部２０を備える。なお、両機能は、ＣＰＵ３が欠落データ推定プログラムを実行することで実現される。
【００３９】
データベース記憶部２０は、処理対象となる１又は複数のデータベースを記憶している。図３は、データベース記憶部２０が記憶するデータベースのデータ構造を概念的に示した図である。このデータベースは、ｍ個のソフトウェアの製品を示すレコードｕ1，ｕ2，ｕ3，・・・，ｕmから構成され、各レコードは、ｎ個のフィールドから構成されている。すなわち、ｍ行×ｎ列の表形式でデータを格納する。ｉ行ｊ列のセルに格納されたデータをｍi,jと表す。ａ行ｂ列のセルはデータが欠落しており、本欠落データ推定装置は、以下に示す手法を用いてこの欠落したデータを推定する。以下、推定対象となる欠落したデータのことを「推定対象データ」と称する。また、推定対象データ以外の欠落したデータのことを、「欠落データ」と称する。
【００４０】
図２に示すプログラム実行部１０は、数値割当部１１、標準化部１２、類似度算出部１３、標準化推定データ算出部１４及び逆標準化部１５を備えている。
【００４１】
数値割当部１１は、文字等の数値以外のデータに対し、その種類に応じた数値を割り当て、数値以外のデータを数値化する。これにより、数値以外のデータも、レコード間の類似度を算出する際に参照されることが可能となり、レコード間の類似度をより高精度に算出することができる。詳しくは後述する。
【００４２】
標準化部１２は、データベースが格納する全てのデータの値域を揃え、データを標準化する。標準化にあたっては、例えば式（１）を用いる。
【００４３】
【数９】
2005141508.tif 000007
【００４４】
但し、ｍi,jはｉ行ｊ列のデータを示し、ＳＴＤ(mi,j)は、データｍi,jを標準化した値を示す。以下、この標準化した値を「標準化データ」と称する。ＡＭＭ（Ｕj）は、式（２）で表され、ＳＤＥＶＮＮ（Ｕj）は、式（３）で表される。Ｕjはｊ列目のフィールドに含まれるデータの集合（ただし、欠落データは除く）を示し、｜Ｕj｜は、Ｕjを構成するデータ（要素）の個数を示し、ＡＭＭ（Ｕj）はＵjの平均値を示し、ＳＤＥＶＭＭ（Ｕj）はＵjの標準偏差を示している。これにより、各データの値域は、統計的に[−３、３]とされる。
【００４５】
なお、式（１）に代えて式（４）又は式（５）を用いてもよい。ただし、式（４）において、ｍａｘ（Ｕj）は、Ｕjのうち、最大のデータを示し、ｍｉｎ（Ｕj）はＵjのうち、最小のデータ、｜Ｕj｜はＵjの要素数を示す。また、式（５）のrankOfUj(mi,j)は式（６）で求める。indexCount（mi,j，mk,j）は式（７）で求める。equals（mi,j，ｍk,j）は式（８）で求める。式（１）、（４）及び（５）のいずれの式を使用するかによって、推定対象データが異なるため、データベースが格納するデータの特性に応じて、高精度の推定対象データを得ることができる式を選択すればよい。
【００４６】
類似度算出部１３は、推定対象データを含むレコードｕaと他のレコードｕiとの類似度ｓｉｍ（ｕa，ｕj）を算出する。類似度の算出は、例えば式（９）を用いる。
【００４７】
【数１０】
2005141508.tif 000008
【００４８】
【数１１】
2005141508.tif 000009
【００４９】
ここで、Ｍiはｉ番目のレコードを構成する全てのデータの集合（但し、欠落データは除く）を表わしている。ｊ∈Ｍa∩Ｍiはａ及びｉ行目のレコード間で対応するフィールド同士がともに欠落していないデータの集合を示している。例えば、図５に示すソフトウェアＡ及びソフトウェアＢのレコードにおいて、対応するフィールド同士がともに欠落していないフィールドは、１〜４列目のフィールドであるため、この場合、式（５）のΣにおいてｊ＝１〜４が代入される。
【００５０】
なお、式（９）に代えて、式（１０）、（１１）及び（１４）のいずれかの式を用いて類似度を算出してもよい。この場合、式（１０）、（１１）及び（１４）のいずれの式を用いるかによって、推定対象データが異なる値となるため、データベースが格納するデータの特性に応じて、高精度の推定対象データを得ることができる式を選択すればよい。式（６）に示すＡＳＭ（Ｕj）は、Ｕjを構成するデータに対する標準化データの平均値を示し、ＡＳＵ（Ｍi）は、Ｍiを構成するデータに対する標準化データの平均値を示し、それぞれ、式（１２）及び式（１３）によって求められる。また、｜Ｍi｜はＭiを構成するデータの個数、ｎはＵa∩Ｕiを構成するデータの数を示している。式（１４）中のＴは、式（１５）で求める。ｄ2は式（１６）で求める。
【００５１】
標準化推定データ算出部１４は、類似度ｓｉｍ（ｕa，ｕi）を用いて推定対象データｍa,bを標準化した値ＳＴＤ(ma,b)を算出する。以後、推定対象データを標準化した値のことを「標準化推定データ」と称する。標準化推定データＳＴＤ(ma,b)は、例えば式（１７）を用いる。但し、k-nearest_neighborsは、レコードｕaに対する類似度が、高いもの順に抽出したｋ個のレコードの行番号を示している。
【００５２】
【数１２】
2005141508.tif 000010
【００５３】
なお、式（１７）に代えて、式（１８）、（１９）及び（２０）のいずれかの式を用いて標準化推定データＳＴＤ(ma,b)を算出してもよい。但し、式（２０）のamplifier(ｕa，ｕi)は、ｕa及びｕiの対応するフィールド同士のデータの倍数の平均を示し、式（２１）で表される。この場合、ｋの値、すなわち、レコードｕaに対する類似度が高い順に抽出するレコードの数は、その値に応じて、推定結果が異なるため、データベースが格納するデータの特性に応じて高精度の推定対象データを得ることができる数を選択すればよい。
【００５４】
逆標準化部１５は、標準化推定データ算出部１４によって算出された標準化推定データＳＴＤ(ma,b)に対して、標準化の逆の処理（逆標準化）を施し、推定対象データｍa,bを算出する。逆標準化は、例えば式（２２）〜（２６）のいずれかの式を用いて行なう。逆標準化とは、標準化データを標準化される前の元の値域に戻す処理をいう。
【００５５】
【数１３】
2005141508.tif 000011
【００５６】
両式の選定は、標準化部１２が式（１）、（４）及び（５）のいずれの式を用いて標準化を行なったかに依存する。すなわち、各データが式（１）を用いて標準化されている場合は、式（２２）を用い、式（４）を用いて標準化されている場合は、式（２３）を用いる。
【００５７】
また、式（５）を用いて標準化されている場合は、以下の(ｉ)〜(ｉｖ)の判断基準に従い、式（２４）〜式（２５）のいずれか1つを用いる。
(i)  Ｍiを構成するデータｍi,bの標準化された値ＳＴＤ(ｍi,b)の中に、前記欠落データの標準化された値ＳＴＤ(ｍa,b)と等しいものがある場合、ｍa,b ＝ｍi,bとする。
(ii)  ＳＴＤ(ｍa,b)＜ＳＴＤ(ｍｉｎ(Ｍb))である場合、式（２４）でｍa,bを求める。
(iii)  ＳＴＤ(ｍa,b)＞ＳＴＤ(ｍａｘ(Ｍb))である場合、式（２５）でｍa,bを求める。
(iv)  上記、(i)、(ii)、(iii)以外の場合、式（２６）でｍa,bを求める。
但し、secondMin(Ｍb)はＭbの要素の中で２番目に小さい値、secondmax(Ｍb)はＭbの中で２番目に大きい値、High(Ｍj)はＳＴＤ(ｍa,b)＜ＳＴＤ(ｍi,j)で、ＳＴＤ(ｍa,b)に最も近い値、Low(Ｍj)はＳＴＤ(ｍa,b)＞ＳＴＤ(ｍi,j)でＳＴＤ(ｍa,b)に最も近い値を示す。
【００５８】
次に、本欠落データ推定装置が、図５に示すデータベースからソフトウェアＡの開発コストを推定する処理を、図４に示すフローチャートを用いて説明する。図５に示すデータベースは、ソフトウェアＡ〜Ｄが対応する４つのレコードから構成され、各レコードは、５個のフィールドから構成されている。１〜５列目のフィールドには、それぞれ、対応するソフトウェアのプログラミングに使用した言語を示す「プログラム言語」、対応するソフトウェアのプログラムの行数を示す「プログラム行数」、対応するソフトウェアの難易度の程度を「非常に低い」から「非常に高い」までの５段階で示す「複雑さの程度」、対応するソフトウェアの開発者のスキルのレベルを「非常に低い」から「非常に高い」までの５段階で示す「開発者の能力」、及び、対応するソフトウェアの開発に要した費用を示す「開発コスト」のフィールドから構成されている。そして、ソフトウェアＡの開発コストを示す１行５列目のデータが推定対象データである。
【００５９】
まず、ステップＳ１において、数値割当部１１は、数値以外のデータを数値化する。図５に示すデータベースでは、「プログラム言語」のフィールドは、データが「Ｊａｖａ」、「Ｃ＋＋」からなる。したがって、数値割当部１１は、図６に示すように、「プログラム言語」のフィールドに代えて新たに「言語：Ｊａｖａ」、「言語：Ｃ＋＋」のフィールドを追加し、Ｊａｖａのソフトウェアに対しては両フィールドのデータを、それぞれ「１」，「０」とし、Ｃ＋＋のソフトウェアに対しては両フィールドのデータを、それぞれ「０」，「１」とし、「Ｊａｖａ」，「Ｃ＋＋」のデータを数値化している。
【００６０】
なお、数値割当部１１による数値化は上記のように新たなフィールドを追加することなく、例えば、Ｊａｖａに対しては「１」、「Ｃ＋＋」に対しては「０」というように、データの種類に応じて、単に数値を割り当てるだけでもよい。また、データが複数種類からなる場合は、データの種類分の数を用意し、各データに割り当てればよい。
【００６１】
ステップＳ２において、標準化部１２は、式（１）、（４）及び（５）のいずれかの式を用いてデータベースの各データを標準化し、値域を揃える。図７は、図６に示すデータベースの各データを標準化したときのデータベースを示している。図７に示すように、各データが標準化され、値域が[−３，３]に揃えられていることが分かる。
【００６２】
ステップＳ３において、類似度算出部１３は、式（９）〜式（１１）のうち、いずれか１つの式を用いて、推定対象データｍa,bを含む注目レコードとｉ列目のレコードとの類似度を算出する。図８は、図７に示すデータベースに対し、ソフトウェアＡに対するソフトウェアＢ〜Ｄのそれぞれの類似度を算出したときのデータベースを示している。図８に示すように、ソフトウェアＡに対するソフトウェアＢ〜Ｄの類似度は、それぞれ「＋０．８２」，「＋０．９９」，「−０．９９」と算出されている。
【００６３】
ステップＳ４において、標準化推定データ算出部１４は、注目レコードに対する類似度が高いｋ個（例えば２個）のレコードを抽出する。ステップＳ５において、標準化推定データ算出部１４は、抽出したｋ個のレコードを基に式（１７）〜（２０）のいずれかの式を用いて、標準化推定データＳＴＤ（ｍa,b）を算出する。図９は、図８に示すデータベースから標準化推定データＳＴＤ（ｍa,b）を算出したときのデータベースを示している。図９の例では、ソフトウェアＡに対する類似度が高い２個のレコードは、類似度が「＋０．９９」であるソフトウェアＢ及び類似度が「＋０．８２」であるソフトウェアＣであるため、標準化推定データ算出部１４は、ソフトウェアＢ及びＣのレコードｕ2及びｕ3を基に、標準化推定データＳＴＤ（ｍa,b）を算出する。この場合、標準化推定データＳＴＤ（ｍa,b）は、「−０．７１」と算出されている。
【００６４】
ステップＳ６において、逆標準化部１５は、式（２２）〜（２６）のうち、いずれか１つの式を用いて、標準化推定データＳＴＤ（ｍa,b）を逆標準化し、推定対象データｍa,bを算出する。この場合、図１０に示すように、推定対象データが９３５万円と算出される。
【００６５】
次に、図４に示すフローチャートにしたがって、図１１においてデータ構造が概念的に示されたデータベースから推定対象データを算出される手順を説明する。図１１に示すデータベースは、図５のデータベースに対し、５列目のフィールドを、対応するソフトウェアのバグ数を示す「欠陥数」としたものである。そして、ソフトウェアＢのプログラム行数を示す２行２列目のデータ、ソフトウェアＣの複雑さの程度を示す３行３列目のデータ、ソフトウェアＤの開発者の能力を示す４行４列目のデータが欠落データであり、ソフトウェアＤの欠陥数を示す１行５列目のデータが推定対象データである。
【００６６】
まず、図１１に示す「プログラム言語」フィールドのデータが数値化される（ステップＳ１）。この場合、図１２に示すように、図１１で示す「プログラム言語」のフィールドに代えて、「言語：Ｊａｖａ」及び「言語：Ｃ＋＋」のフィールドが追加され、Ｊａｖａのソフトウェアに対しては、両フィールドに「１」、「０」が割り当てられ、Ｃ＋＋のソフトウェアに対しては、両フィールドに「０」、「１」が割り当てられる。
【００６７】
次いで、式（１）、（４）及び（５）のいずれかの式を用いて、図１１のデータベース示す各データが標準化される（ステップＳ２）。この場合、図１３に示すデータベースが得られる。次いで、図１３に示すデータベースにおいて、式（９）〜式（１１）のいずれか１つの式を用いて、レコードｕ1に対するレコードｕ2〜ｕ4の類似度ｓｉｍ（ｕ1，ｕ2），ｓｉｍ（ｕ1，ｕ3），ｓｉｍ（ｕ1，ｕ4）が算出される（ステップＳ３）。この場合、図１４に示すように、ソフトウェアＡに対するソフトウェアＢ〜Ｄの類似度は、それぞれ「＋０．８２」、「＋０．９９」、「−０．９３」と算出される。
【００６８】
次いで、ソフトウェアＡに対する類似度が高い２個のレコードが抽出される（ステップＳ５）。この場合、図１５に示すようにソフトウェアＡに対する類似度が最も高いソフトウェアＢのレコードｕ2と、２番目に高いソフトウェアＣのレコードｕ3とが抽出される。次いで、抽出した２つのレコードを基に、式（１７）〜（２０）のいずれかの式を用いて、標準化推定データが算出される（ステップＳ５）。この場合、標準化推定データとして「−０．７２」が算出される。次いで、式（２２）〜（２６）のいずれかの式を用いて標準化推定データが逆標準化され（ステップＳ６）、推定対象データが算出される。この場合、図１６に示すように、７９２が算出される。
【００６９】
このように本欠落データ推定装置によれば、各データを標準化し、推定対象データを含むレコードに対する他のレコードの類似度を算出し、類似度が高いレコードに含まれるデータを基に、標準化推定データを算出し、当該標準化推定データを逆標準化し、推定対象データを得ている。そのため、従来の協調フィルタリングのように、取り扱うデータがユーザの嗜好を示すデータに限定されず、一般的なデータからなるデータベースに対しても、推定対象データを算出することができる。
【００７０】
なお、上記実施形態では、各データベースにおいて、１つの欠落したデータを推定対象データとしたが、これに限定されず、欠落した複数個のデータを推定対象データとしてもよい。
【００７１】
また、欠落データ推定装置は、上述したデータベースに限らず、他のデータベース、例えば図１７でデータ構造が概念的に示されたデータベースに対しても欠落データを推定することができる。図１７に示すデータベースは、図５に示すデータベースの５列目のフィールドを、ソフトウェアの売り上げを示す「売り上げ」としたものである。このデータベースでは、ソフトウェアＢの開発者の能力を示す２行４列目のデータ、ソフトウェアＣの開発者の能力を示す２行５列目のデータ、ソフトウェアＤの開発者の能力を示す２行６列目のデータが欠落データであり、ソフトウェアＡの売り上げを示す１行５列目のデータが推定対象データである。
【図面の簡単な説明】
【００７２】
【図１】欠落データ推定装置のハードウェア構成を示すブロック図である。
【図２】欠落データ推定装置の機能を示すブロック図である。
【図３】データベース記憶部が記憶するデータベースのデータ構造を概念的に示した図である。
【図４】欠落データ推定装置の動作を示すフローチャートである。
【図５】ソフトウェアＡの開発コストを推定する際に用いるデータベースのデータ構造を概念的に示した図である。
【図６】図５のデータベースに対し、数値以外のデータを数値化したときのデータベースを示した図である。
【図７】図６に示すデータベースの各データを標準化したときのデータベースを示した図である。
【図８】図７に示すデータベースに対し、ソフトウェアＡに対するソフトウェアＢ〜Ｄのそれぞれの類似度を算出したときのデータベースを示した図である。
【図９】図８に示すデータベースから標準化推定データを算出したときのデータベースを示した図である。
【図１０】図９に示すデータベースから推定対象データを算出したときのデータベースを示した図である。
【図１１】ソフトウェアＡの欠陥数を推定する際に用いるデータベースのデータ構造を概念的に示した図である。
【図１２】図１１に示すデータベースに対し、数値以外のデータに数値を割り当てたときのデータベースを示した図である。
【図１３】図１２に示すデータベースの各データを標準化したときのデータベースを示した図である。
【図１４】図１３に示すデータベースに対し、ソフトウェアＡに対するソフトウェアＢ〜Ｄのそれぞれの類似度を算出したときのデータベースを示した図である。
【図１５】図１４に示すデータベースから標準化推定データを算出したときのデータベースを示した図である。
【図１６】図１５に示すデータベースから推定対象データを算出したときのデータベースを示した図である。
【図１７】ソフトウェアＡの売り上げを推定する際に用いるデータベースを示した図である。
【図１８】協調フィルタリングに用いられるデータベースの一例を示した従来図である。
【符号の説明】
【００７３】
１０  プログラム実行部
１１  数値割当部
１２  標準化部
１３  類似度算出部
１４  標準化推定データ算出部
１５  逆標準化部
２０  データベース記憶部
【図１】
2005141508.tif 000016
【図２】
2005141508.tif 000017
【図３】
2005141508.tif 000018
【図４】
2005141508.tif 000019
【図５】
2005141508.tif 000020
【図６】
2005141508.tif 000021
【図７】
2005141508.tif 000022
【図８】
2005141508.tif 000023
【図９】
2005141508.tif 000024
【図１０】
2005141508.tif 000025
【図１１】
2005141508.tif 000026
【図１２】
2005141508.tif 000027
【図１３】
2005141508.tif 000028
【図１４】
2005141508.tif 000029
【図１５】
2005141508.tif 000030
【図１６】
2005141508.tif 000031
【図１７】
2005141508.tif 000032
【図１８】
2005141508.tif 000033