(57)【要約】【課題】半教師あり学習を利用した適切なクラスの判別を可能とする。【解決手段】データ判別装置１は、正解クラスと対応付けられたラベルありデータ群２２から生成された複数のデータ群のうち、一部のデータ群および当該データ群に対応した正解クラスと、一部のデータ群以外のデータ群とを用いて、学習モデルに対する半教師あり学習を実行し、ラベルありデータ群２２の各データと、複数のクラスそれぞれの確信度の組と正解クラスとを対応付けた正解クラス付き確信度情報２４を生成する。データ判別装置１は、正解クラスがない複数の検証対象データについて、学習モデルを用いて、複数のクラスそれぞれの確信度を生成する。データ判別装置１は、検証対象データについて、当該検証対象データの複数のクラスそれぞれの確信度の組と類似する類似データを正解クラス付き確信度情報２４から特定し、類似データの正解クラスを検証対象データのクラスとして推定する。【選択図】図１
2019191769.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
正解ラベルと対応付けられたテストデータから複数の部分テストデータを生成し、
前記複数の部分テストデータのうち、一部の部分テストデータおよび当該一部の部分テストデータに対応した正解ラベルと、前記一部の部分テストデータ以外の前記部分テストデータとを用いて、学習モデルに対する半教師あり学習を実行し、
前記一部の部分テストデータ以外の前記部分テストデータの各データに対し、前記学習モデルの判別結果である複数のラベルそれぞれの確信度の組と、当該データに対応付けられた正解ラベルとを対応付けた対応情報を生成し、
正解のラベルの対応付けが存在しない複数の検証対象データそれぞれについて、前記学習モデルを用いて、前記複数のラベルそれぞれの確信度を生成し、
前記複数の検証対象データそれぞれについて、当該検証対象データの前記複数のラベルそれぞれの確信度の組と類似する類似データを、前記対応情報から特定し、
前記類似データの正解ラベルを前記検証対象データのラベルとして出力する
処理を実行させるデータ判別プログラム。
【請求項２】
該実行する処理は、前記テストデータからｋ個の部分テストデータを生成し、前記ｋ個の部分テストデータを用いて、前記学習モデルの半教師あり学習でｋ−ｆｏｌｄ  ＣＶ（Cross  Validation）を実行する
ことを特徴とする請求項１に記載のデータ判別プログラム。
【請求項３】
該実行する処理は、前記テストデータから、ランダムに各ラベルの頻度を保ちながらｋグループの複数の部分テストデータを生成し、１グループの部分テストデータに対応した正解ラベルと、ｋ−１個のグループの部分テストデータを用いて、前記学習モデルに対する半教師あり学習を実行し、前記ｋ−１のグループに含まれる各データの前記複数のラベルそれぞれの確信度を生成する、
ことを特徴とする請求項２に記載のデータ判別プログラム。
【請求項４】
該特定する処理は、前記検証対象データそれぞれについて、前記複数のラベルそれぞれの確信度の組と、前記対応情報に含まれる各データの前記複数のラベルそれぞれの確信度の組とを比較し、組で示される前記複数のラベルそれぞれの確信度を用いた距離が最も小さいデータを類似データとして特定する
ことを特徴とする請求項１に記載のデータ判別プログラム。
【請求項５】
正解のラベルと対応付けられたテストデータから複数の部分テストデータを生成し、前記複数の部分テストデータのうち、一部の部分テストデータおよび当該一部の部分テストデータに対応した正解ラベルと、前記一部の部分テストデータ以外の前記部分テストデータとを用いて、学習モデルに対する半教師あり学習を実行する実行部と、
前記一部の部分テストデータ以外の前記部分テストデータの各データに対し、前記学習モデルの判別結果である複数のラベルそれぞれの確信度の組と、当該データに対応付けられた正解ラベルとを対応付けた対応情報を生成する第１の生成部と、
正解のラベルの対応付けが存在しない複数の検証対象データそれぞれについて、前記学習モデルを用いて、前記複数のラベルそれぞれの確信度を生成する第２の生成部と、
前記複数の検証対象データそれぞれについて、当該検証対象データの前記複数のラベルそれぞれの確信度の組と類似する類似データを、前記対応情報から特定する特定部と、
前記類似データの正解ラベルを前記検証対象データのラベルとして出力する出力部と、
を有することを特徴とするデータ判別装置。
【請求項６】
コンピュータが、
正解ラベルと対応付けられたテストデータから複数の部分テストデータを生成し、
前記複数の部分テストデータのうち、一部の部分テストデータおよび当該一部の部分テストデータに対応した正解ラベルと、前記一部の部分テストデータ以外の前記部分テストデータとを用いて、学習モデルに対する半教師あり学習を実行し、
前記一部の部分テストデータ以外の前記部分テストデータの各データに対し、前記学習モデルの判別結果である複数のラベルそれぞれの確信度の組と、当該データに対応付けられた正解ラベルとを対応付けた対応情報を生成し、
正解のラベルの対応付けが存在しない複数の検証対象データそれぞれについて、前記学習モデルを用いて、前記複数のラベルそれぞれの確信度を生成し、
前記複数の検証対象データそれぞれについて、当該検証対象データの前記複数のラベルそれぞれの確信度の組と類似する類似データを、前記対応情報から特定し、
前記類似データの正解ラベルを前記検証対象データのラベルとして出力する
処理を実行するデータ判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ判別プログラムなどに関する。
【背景技術】
【０００２】
機械学習の手法として、半教師あり学習（ＳＳＬ：Semi-Supervised  Learning）が知られている。半教師あり学習とは、特徴量空間上でのラベルありおよびラベルなしのデータ点の分布や類似性を利用して、ラベルなしのデータ点に擬似正解クラスを付与するものである。半教師あり学習の手法の中でも、グラフ構造に基づく半教師あり学習（Graph-Based  Semi-Supervised  Learning）の手法がよく知られている（例えば、非特許文献１を参照）。グラフ構造に基づく半教師あり学習の手法は、データ点間の類似度に基づいて構成されるグラフ構造上で、ラベルありのデータ点からラベルなしのデータ点にラベル情報を伝播させ、ラベルなしのデータ点に擬似正解クラスを付与する。
【０００３】
ところが、ラベルありのデータ点について、ラベル（クラス）間の出現頻度に大きな偏りがある場合には、グラフ構造に基づく半教師あり学習は、ラベルなしのデータ点に、出現頻度が高頻度のラベルを擬似正解クラスとして付与してしまう。すなわち、ラベルなしのデータ点に、出現頻度が高頻度のラベルばかりを付与してしまうことがある。
【０００４】
そこで、ラベルありのデータ点について、ラベル（クラス）間の出現頻度に大きな偏りがある場合、半教師あり学習に適用するデータ点をクラスの出現頻度に基づいて減らしたり、増やしたりするアプローチがある（例えば、非特許文献２を参照）。かかるアプローチでは、低頻度のクラスのデータを合成して増やしたり（オーバーサンプリング）、低頻度のクラスのデータを削減したりして（アンダーサンプリング）、各クラスの頻度のバランスを取ってから半教師あり学習を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３８０４３号公報
【特許文献２】特開２０１１−６５５７９号公報
【特許文献３】国際公開第２０１５／１９４０５２号
【非特許文献】
【０００６】
【非特許文献１】X.  Zhu,  Z.  Ghahramani,  and  J.  Lafferty:  ”Semi-supervised  learningusing  Gaussian  fields  and  harmonic  functions”.  ICML,  2003.
【非特許文献２】N.  V.  Chawa:  ”Data  Mining  for  Imbalanced  Datasets:  An  Overview”.  In:  Maimon,  Oded,  Rokach,  Lior  (eds.)  Data  Mining  and  Knowledge  Discovery  Handbook,  2nd  ed,  pp.  975-912,  Springer,  2010.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、半教師あり学習を実行する際に、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合、ラベルなしのデータ点のクラスを精度良く判別することができないという問題がある。
【０００８】
例えば、データ点をクラスの出現頻度に基づいて増減するアプローチでは、データを合成して増やす場合、正しくないラベルが加えられてしまう可能性がある。また、データを削減する場合、クラス分類にとって重要なラベルが削られてしまう可能性がある。また、どのクラスをどのくらいの割合で増減させればよいかのバランスの調整が難しい。したがって、半教師あり学習を実行する際に、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合に、ラベルなしのデータ点のクラスを精度良く判別することができない。
【０００９】
本発明は、１つの側面では、複数のクラスの分布に偏りがある場合でも、半教師あり学習を利用した適切なクラスの判別を可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、データ判別プログラムは、コンピュータに、正解ラベルと対応付けられたテストデータから複数の部分テストデータを生成し、前記複数の部分テストデータのうち、一部の部分テストデータおよび当該一部の部分テストデータに対応した正解ラベルと、前記一部の部分テストデータ以外の前記部分テストデータとを用いて、学習モデルに対する半教師あり学習を実行し、前記一部の部分テストデータ以外の前記部分テストデータの各データに対し、前記学習モデルの判別結果である複数のラベルそれぞれの確信度の組と、当該データに対応付けられた正解ラベルと、を対応付けた対応情報を生成し、正解のラベルの対応付けが存在しない複数の検証対象データそれぞれについて、前記学習モデルを用いて、前記複数のラベルそれぞれの確信度を生成し、前記複数の検証対象データそれぞれについて、当該検証対象データの前記複数のラベルそれぞれの確信度の組と類似する類似データを、前記対応情報から特定し、前記類似データの正解ラベルを前記検証対象データのラベルとして出力する、処理を実行させる。
【発明の効果】
【００１１】
１実施態様によれば、複数のクラスの分布に偏りがある場合でも、半教師あり学習を利用した適切なクラスの判別が可能となる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例に係るデータ判別装置の構成を示す機能ブロック図である。
【図２】図２は、実施例に係るデータ判別に到った着目点について説明する図である。
【図３】図３は、計測データ群の特徴量化の一例を示す図である。
【図４】図４は、ラベルありデータ群の一例を示す図である。
【図５】図５は、実施例に係る第１のＳＳＬ実行の一例を示す図である。
【図６】図６は、実施例に係る第２のＳＳＬ実行の一例を示す図である。
【図７Ａ】図７Ａは、実施例に係るクラス推定の一例を示す図（１）である。
【図７Ｂ】図７Ｂは、実施例に係るクラス推定の別例を示す図（２）である。
【図７Ｃ】図７Ｃは、実施例に係るクラス推定の別例を示す図（３）である。
【図８Ａ】図８Ａは、実施例に係る適用結果の一例を示す図（１）である。
【図８Ｂ】図８Ｂは、実施例に係る適用結果の一例を示す図（２）である。
【図９】図９は、実施例に係る適用結果（分布）の一例を示す図である。
【図１０】図１０は、実施例に係るデータ判別処理のフローチャートの一例を示す図である。
【図１１】図１１は、実施例に係るクラス推定処理のフローチャートの一例を示す図である。
【図１２Ａ】図１２Ａは、実施例に係るデータ判別の別の適用例を示す図（１）である。
【図１２Ｂ】図１２Ｂは、実施例に係るデータ判別の別の適用例を示す図（２）である。
【図１３】図１３は、データ判別プログラムを実行するコンピュータの一例を示す図である。
【図１４】図１４は、クラス間の出現頻度に大きな偏りがある場合のＳＳＬの適用結果（分布）の参考例を示す図である。
【図１５】図１５は、クラス間の出現頻度に大きな偏りがある場合のＳＳＬ実行の参考例を示す図である。
【図１６】図１６は、クラス間の出現頻度に大きな偏りがある場合のＳＳＬの適用結果の参考例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するデータ判別プログラム、データ判別装置およびデータ判別方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【実施例】
【００１４】
まず、クラス間の出現頻度に大きな偏りがある場合の、グラフ構造に基づく半教師あり学習（ＳＳＬ）の適用結果について、図１４〜図１６を参照して説明する。なお、実施例では、暑熱環境での作業者の各種計測データからＮ段階の熱ストレスのレベル（ラベル）を推定する場合を説明する。実施例では、Ｎは４であるとするが、これに限定されるものではない。
【００１５】
［グラフ構造に基づくＳＳＬの適用結果の参考例］
図１４は、ラベル間の出現頻度に大きな偏りがある場合のＳＳＬの適用結果（分布）の参考例を示す図である。図１４左図に示すように、特徴量空間上においてラベルなしデータ（ＮＡ）が１３，６０２点存在するとする。特徴量空間上においてラベルありデータが、クラス１、２、３、４について、それぞれ２，１１６点、７２点、２５３点、７５点存在するとする。ラベルありデータは、ラベルなしデータより少ない。ラベルありデータには、クラス間の出現頻度に大きな偏りがある。すなわち、クラス１の出現頻度は、０．８４１０を示し、他のクラス２、３、４と比較して高頻度である。
【００１６】
図１４中図に示すように、特徴量空間上には、ラベルありのデータ点と、ラベルなしのデータ点の分布が表わされている。
【００１７】
このようなラベルありのデータ点およびラベルなしのデータ点について、データ判別装置は、グラフ構造に基づくＳＳＬを実行する。すると、図１４右図に示すように、データ判別装置は、ラベルなしのデータ点に、出現頻度が最も高いクラス１を擬似正解クラスとして付与してしまう。これは、ラベルありのデータ点のクラス１が非常に高頻度であるため、ラベルなしのデータ点に対して近辺に存在するラベルありのデータ点と同種のラベルを付けていくと、クラス１ばかりになってしまうからである。
【００１８】
さらに、具体的に説明する。図１５は、クラス間の出現頻度に大きな偏りがある場合のＳＳＬ実行の参考例を示す図である。図１５左図には、ラベルありのデータ点およびラベルなしのデータ点が表わされている。ラベルありのデータ点には、作業者ＩＤ（Identifier）および日付時刻が省略されている。また、ラベルなしのデータ点には、作業者ＩＤが省略されている。ラベルなしのデータ点は、ラベルありのデータ点より非常に多い。
【００１９】
図１５右図に示すように、データ判別装置は、図１５左図で表わされたラベルありのデータ点およびラベルなしのデータ点に対して、グラフ構造に基づくＳＳＬを実行し、各ラベルなしのデータ点に対して、各クラスの確信度を算出する。一例として、「８／２６  １０：００」のラベルなしのデータ点では、擬似正解クラスが「クラス１」となる確信度が「０．８６１１１８」と算出される。擬似正解クラスが「クラス２」となる確信度が「０．０２２３３８」と算出される。擬似正解クラスが「クラス３」となる確信度が「０．０９１２２５」と算出される。擬似正解クラスが「クラス４」となる確信度が「０．０２５３１９」と算出される。
【００２０】
図１６は、クラス間の出現頻度に大きな偏りがある場合のＳＳＬの適用結果の参考例を示す図である。図１６左図に示すように、各ラベルなしのデータ点に対して、ＳＳＬにより算出されたクラス別の確信度が表わされている。表の各行が各データ点のクラス別の確信度である。
【００２１】
ＳＳＬは、各ラベルなしのデータ点に対して、各クラスの確信度の中で値の最も大きいクラスを選択して、推定クラス（擬似正解クラス）とする。図１６中図に示すように、一例として、「８／２６  ９：５０」のラベルなしのデータ点では、クラス１〜４の各確信度の中で値の最も大きい「クラス１」を推定クラスとする。「８／２６  ９：５５」のラベルなしのデータ点では、クラス１〜４の各確信度の中で値の最も大きい「クラス１」を推定クラスとする。同様に、「８／２６  １１：１０」のラベルなしのデータ点では、クラス１〜４の各確信度の中で値の最も大きい「クラス１」を推定クラスとする。つまり、クラス１の頻度が非常に高いため、ＳＳＬが実行されると、多くのラベルなしのデータ点でクラス１の確信度が最も大きくなり、推定クラスとしてクラス１ばかりが選ばれてしまう。
【００２２】
ここで、各ラベルなしのデータ点の正解クラスが、推定クラスの右横に記載されているクラスであるとする。この場合には、各ラベルなしのデータ点に対する正解クラスおよび推定クラスは、図１６右図のグラフにより表わされる。図１６右図のグラフは、各ラベルなしのデータ点に対する、各クラスの確信度と、推定クラスおよび正解クラスとを表したものである。各ラベルなしのデータ点に対する推定クラスおよび正解クラスに着目すると、正解クラスが、クラス２〜４のデータ点であっても、推定クラスは、クラス１を表わしている。
【００２３】
これにより、グラフ構造に基づくＳＳＬを実行する際に、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合、ラベルなしのデータ点のクラスを精度良く判別することができない。
【００２４】
そこで、以降では、ＳＳＬを実行する際に、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合でも、ラベルなしのデータ点のクラスを精度良く判別することができるデータ判別装置について説明する。
【００２５】
［実施例に係るデータ判別装置の構成］
図１は、実施例に係るデータ判別装置の構成を示す機能ブロック図である。図１に示すデータ判別装置１は、ＳＳＬを実行した際の各ラベルなしデータ点に対し、その得られるクラス別の確信度ベクトルがラベルありデータ点に対してＳＳＬを実行した際に得られるクラス別の確信度ベクトルと最も類似するラベルありデータ点と同じクラスを推定クラスとして付与する。ここでいうクラス別の確信度ベクトルとは、クラス別の各確信度を要素として、この順序で配列してベクトル化したものである。なお、実施例では、ＳＳＬによって分類される「レベル」のことを「クラス」または「ラベル」と呼ぶことにする。
【００２６】
ここで、実施例に係るデータ判別に到った着目点について説明する。図２は、実施例に係るデータ判別に到った着目点について説明する図である。図２に示すグラフは、図１６右図で示したグラフの中で、ラベルなしのデータ点に対する正解クラスとクラス別確信度の推移を表わしたグラフである。なお、図１６右図で示したグラフの例では、ラベルなしのデータ点に対する推定クラスは、全て「ラベル１」であったものである。
【００２７】
図２のグラフに示すように、正解クラスが推定クラス１より高い２〜４に上がっている時間区間Ｂでは、他の時間区間Ａと比べてクラス１の確信度が低くなり、クラス２〜４の確信度が高くなっている。これは、クラス１で推移する区間Ａと、クラスが変動する区間Ｂとで観測対象の状態が異なるためと考えられる。例えば、区間Ａは、観測対象である作業者の体調に問題のない区間、区間Ｂは、同じ対象者の体調に問題が生じている区間、等と考えられる。したがって、ＳＳＬで算出されるクラス別確信度と正解クラスとの関係は、最大の確信度のクラスが正解クラスになるというよりは、クラス別確信度がある割合（バランス）になっている場合に所定のクラスになるという性質があると推測される。発明者は、かかる性質に注目して、出現頻度が低いクラスがより的確に推定クラスとして選ばれる仕組みを考えた。
【００２８】
データ判別装置１は、制御部１０および記憶部２０を有する。
【００２９】
制御部１０は、ＣＰＵ（Central  Processing  Unit）などの電子回路に対応する。そして、制御部１０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１０は、特徴量化部１１、第１のＳＳＬ実行部１２、正解クラス付き確信度情報生成部１３、第２のＳＳＬ実行部１４、クラス推定部１５および推定結果出力部１６を有する。なお、第１のＳＳＬ実行部１２は、実行部の一例である。正解クラス付き確信度情報生成部１３は、第１の生成部の一例である。第２のＳＳＬ実行部１４は、第２の生成部の一例である。クラス推定部１５は、特定部の一例である。推定結果出力部１６は、出力部の一例である。
【００３０】
記憶部２０は、例えば、ＲＡＭ、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部２０は、計測データ群２１、ラベルありデータ群２２、ラベルなしデータ群２３、正解クラス付き確信度情報２４、ラベルなし確信度情報２５および推定クラス付き確信度情報２６を有する。
【００３１】
計測データ群２１は、各種の計測値のデータ群である。各種の計測値には、運動強度（ＭＥＴｓ：Metabolic  equivalents）、歩数、パルス、温度、湿度等が挙げられる。運動強度、歩数およびパルスは、例えば、対象者のウェアラブルセンサからネットワークを介して取得される。温度は、例えば、対象者が存在する暑熱環境の温度計からネットワークを介して取得される。湿度は、例えば、対象者が存在する暑熱環境の湿度計からネットワークを介して取得される。１つの計測データには、作業者ＩＤおよび日付時刻に対応付けて各種の計測値が設定される。
【００３２】
ラベルありデータ群２２は、計測データ群２１から特徴量化されたデータ群であって正解クラス（ラベル）があるラベルありのデータ群である。計測データ群２１からの特徴量化は、同一の作業者ＩＤ（IDentification）について、一定間隔で各種計測値がそれぞれ特徴となる値を特徴量とすれば良く、例えば、５分間隔で各種計測値がそれぞれ最大となる値を特徴量としても良い。ラベルありデータ群２２それぞれのラベルは、専門家によって付けられる。
【００３３】
ラベルなしデータ群２３は、計測データ群２１から特徴量化されたデータ群であって正解クラス（ラベル）がないラベルなしのデータ群である。計測データ群２１からの特徴量化は、ラベルありデータ群２２の場合と同様に行われる。
【００３４】
正解クラス付き確信度情報２４は、ラベルありデータ群２２を用いてＳＳＬを実行した際に出力されるラベルありデータに対するクラス別確信度を正解クラスと対応付けた情報である。なお、正解クラス付き確信度情報２４は、正解クラス付き確信度情報生成部１３によって生成される。また、正解クラス付き確信度情報２４の詳細は、後述する。
【００３５】
ラベルなし確信度情報２５は、ラベルありデータ群２２とラベルなしデータ群２３とを用いてＳＳＬを実行した際に出力されるラベルなしデータに対するクラス別確信度の情報である。なお、ラベルなし確信度情報２５は、第２のＳＳＬ実行部１４によって生成される。また、ラベルなし確信度情報２５は、図１５のＳＳＬ実行の参考例で示したＳＳＬ実行結果と同じとなる。
【００３６】
推定クラス付き確信度情報２６は、ラベルなし確信度情報２５に含まれる各ラベルなしデータに対するクラス別確信度に推定クラスを対応付けた情報である。なお、推定クラス付き確信度情報２６は、クラス推定部１５によって生成される。
【００３７】
特徴量化部１１は、計測データ群２１を特徴量化し、特徴量化されたデータ群を生成する。例えば、特徴量化部１１は、計測データ群２１に含まれる同じ対象者ＩＤの計測データ群について、一定間隔で各種計測値がそれぞれ特徴となる値を特徴量としたデータ群を生成する。
【００３８】
ここで、計測データ群２１の特徴量化の一例を、図３を参照して説明する。図３は、計測データ群の特徴量化の一例を示す図である。図３左図に示すように、各種計測値を日付時刻（datetime）に対応付けた計測データ群２１が表わされている。なお、この計測データ群２１は、同じ対象者ＩＤのデータ群である。
【００３９】
特徴量化部１１は、計測データ群２１に含まれる同じ対象者ＩＤの計測データ群について、５分間隔で各種計測値の各最大値を特徴量としたデータ群２１´を生成する。特徴量化されたデータ群２１´は、ラベルありデータ群２２およびラベルなしデータ群２３に用いられる。
【００４０】
ここで、ラベルありデータ群２２の一例を、図４を参照して説明する。図４は、ラベルありデータ群の一例を示す図である。図４に示すように、ラベルありデータ群２２は、日付時刻（datetime）に正解クラスおよび各種特徴量（図示せず）を対応付けた情報である。正解クラスは専門家によって付けられた熱ストレスのレベルである。ここでは、４段階の熱ストレスのレベルをクラスとして付けられている。クラス１は、熱ストレスが最も低いレベルである。レベルの数字が高くなる程、熱ストレスが高くなり、クラス４は、熱ストレスが最も高いレベルである。ラベルありデータに付けられるクラスは、手間がかかるため、ラベルありデータ群２２の数は、ラベルなしデータ群２３に比べて非常に少ない。
【００４１】
図１に戻って、第１のＳＳＬ実行部１２は、ラベルありデータ群２２を用いて、ＳＳＬを実行する。すなわち、第１のＳＳＬ実行部１２は、正解クラスと対応付けられたラベルありデータ群２２から複数の部分データ群を生成し、複数の部分データ群のうち、一部の部分データ群および当該一部の部分データ群に対応した正解クラスと、当該一部の部分データ群以外の部分データ群とを用いて、ＳＳＬを実行する。例えば、第１のＳＳＬ実行部１２は、ラベルありデータ群２２を用いて、ＳＳＬでｋ−ｆｏｌｄ  ＣＶ（Cross  Validation）を実行する。ここでいうｋ−ｆｏｌｄ  ＣＶとは、ラベルありデータ群２２をランダムに各クラスの頻度を保ちながらｋ個のサンプル（部分データ群）に分割し、１個のサンプルを用いて他のサンプルに含まれるデータのクラス別確信度を推定するというサイクルを、サンプルを代えてｋ回繰り返すことをいう。すなわち、第１のＳＳＬ実行部１２は、１個のサンプルをラベルあり、ｋ−１個のサンプルをそのラベルをマスクしたラベルなしとして、ラベルありのサンプルでラベルなしのサンプルに含まれるデータのクラス別確信度を推定するというサイクルをｋ回繰り返す。この結果、ラベルありデータ群２２に含まれる各ラベルありデータについてのクラス別確信度が算出される。なお、各サンプルについて、各クラスの頻度を保つようにするのは、後述する第２のＳＳＬ実行部１４のＳＳＬも含め、ＳＳＬにおけるラベルありデータの分布を共通にするためである。
【００４２】
正解クラス付き確信度情報生成部１３は、一部の部分データ群以外の部分データ群の各ラベルありデータに対し、第１のＳＳＬ実行部１２によって算出された複数のクラスそれぞれの確信度の組と当該ラベルありデータに付けられた既知の正解クラスとを対応付けた正解クラス付き確信度情報２４を生成する。例えば、正解クラス付き確信度情報生成部１３は、ラベルなしとしたｋ−１個のサンプルの各ラベルありデータに対し、第１のＳＳＬ実行部１２によって算出されたクラス別確信度の組と当該ラベルありデータに付けられた既知の正解クラスとを対応付けた正解クラス付き確信度情報２４を生成する。正解クラス付き確信度情報生成部１３は、生成した正解クラス付き確信度情報２４を記憶部２０に格納する。
【００４３】
第２のＳＳＬ実行部１４は、ラベルありデータ群２２およびラベルなしデータ群２３を用いて、ＳＳＬを実行する。例えば、第２のＳＳＬ実行部１４は、ラベルありデータ群２２およびラベルなしデータ群２３に対してＳＳＬを実行し、各ラベルなしデータのクラス別確信度を算出する。第２のＳＳＬ実行部１４は、ラベルなしデータごとにクラス別確信度を対応付けたラベルなし確信度情報２５を生成する。そして、第２のＳＳＬ実行部１４は、生成したラベルなし確信度情報２５を記憶部２０に格納する。なお、第２のＳＳＬ実行部１４は、ラベルありデータ群２２を全て用いるので、第１のＳＳＬ実行部１２でサンプルを代えて実行したＳＳＬにおけるラベルありデータの分布と共通した分布で、ＳＳＬを実行することができる。
【００４４】
クラス推定部１５は、ラベルなし確信度情報２５のラベルなしデータそれぞれについて、当該ラベルなしデータの複数のクラスそれぞれの確信度の組と類似する類似データを、正解クラス付き確信度情報２４から特定する。クラス推定部１５は、ラベルなし確信度情報２５のラベルなしデータそれぞれについて、類似データの正解クラスをラベルなしデータのラベルとして推定する。例えば、クラス推定部１５は、ラベルなし確信度情報２５から、ラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでいう「クラス別確信度ベクトル」とは、クラス別確信度に含まれるクラス１、クラス２、クラス３およびクラス４の各確信度を要素として、この順序で配列してベクトル化したものである。言い換えれば、「クラス別確信度ベクトル」とは、複数のクラスそれぞれの確信度の組のことをいう。クラス推定部１５は、選択したクラス別確信度ベクトルと、正解クラス付き確信度情報２４内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算し、計算した各距離を比較する。クラス推定部１５は、クラス別確信度ベクトル間距離が最も小さいラベルありデータの正解クラスをラベルなしデータの推定クラスとする。クラス推定部１５は、ラベルなし確信度情報２５のラベルなしデータごとに推定クラスを対応付けた推定クラス付き確信度情報２６を生成する。そして、クラス推定部１５は、生成した推定クラス付き確信度情報２６を記憶部２０に格納する。
【００４５】
クラスがｎ個ある場合のクラス別確信度ベクトル間距離は、以下のように求めれば良い。ラベルなしデータ点ｖのクラス別確信度ベクトルがｖ（ｐ１，．．．，ｐｎ）であり、ラベルありデータ点ｗのクラス別確信度ベクトルがｗ（ｑ１，．．．，ｑｎ）であるとする。すると、クラス推定部１５は、クラス別確信度ベクトル間距離ｄ（ｐ，ｑ）を以下の式（１）に基づいて算出する。
ｄ（ｐ，ｑ）＝｜ｐ（ｖ）−ｑ（ｗ）｜＝ｓｑｒｔ（（ｐ１−ｑ１）２＋・・・＋（ｐｎ−ｑｎ）２）・・・式（１）
【００４６】
なお、クラス推定部１５は、ラベルなしデータとのクラス別確信度ベクトル間距離が最も小さいラベルありデータの正解クラスを、ラベルなしデータの推定クラスとすると説明した。しかしながら、クラス推定部１５は、これに限定されず、ラベルなしデータとのクラス別確信度ベクトル間距離が小さい上位ｋ個のラベルありデータの正解クラスの中で最頻出のクラスを、ラベルなしデータの推定クラスとしても良い。かかる推定は、例えば、ｋ−ｎｅａｒｅｓｔ  ｎｅｉｇｈｂｏｒ法を利用すれば良い。
【００４７】
ここで、クラス推定部１５は、ラベルなしデータとのクラス別確信度ベクトル間距離が最も小さいラベルありデータの正解クラスを、ラベルなしデータの推定クラスとする。すなわち、クラス推定部１５は、ラベルなしデータについて、クラス別確信度ベクトルを用いて、正解クラス付き確信度情報２４から類似する正解クラス付きのデータを特定し、特定したデータの正解クラスを推定クラスとして選択する。かかるクラス推定の原理について以下に説明する。グラフ構造に基づくＳＳＬの仕組みは、特徴量空間上でデータ点が近いものどうしを繋げていくことによってグラフ構造を形成し、そのグラフ構造上でクラスが既知のデータ点からクラスが未知のデータ点へと自己のグラフ情報を伝播させていくというものである。すなわち、グラフ構造に基づくＳＳＬの仕組みは、各データ点に対して、その周辺のデータ点群から各クラスの情報がどのくらい多く伝播されてくるかを反映したものをクラス別確信度として付与する。例えば、４通りのクラスが存在する場合、各データ点ｘについて、ｐ（ｘ）＝（ｐ１，ｐ２，ｐ３，ｐ４）のようなクラス別確信度ベクトルの情報が付与される。
【００４８】
クラスの出現頻度に大きい偏りがある場合、出現頻度の低いクラスは局所的な分布に従っていると考えられる。局所的とは、例えば、ある特別な条件を満たした場合にだけ出現するようなクラスであり、例えば、リスクレベルのようなドメインでは、通常の状態であると問題なし（クラス１）の状態が続いているが、特定の条件が重なったために状態が悪くなるとクラス２以上の状態に変わる性質をいう。このようなドメインでは、各データ点に対してクラス別確信度のうち最大の確信度のクラスばかりを選んでしまうと、局所的な分布を考慮することができない。
【００４９】
グラフ構造に基づくＳＳＬのクラス別確信度ベクトルは、グラフ構造上のクラス情報の伝播を反映していることから、データ点のクラスの局所的な分布は、クラス別確信度ベクトルｐ（ｘ）＝（ｐ１，ｐ２，ｐ３，ｐ４）の値の出方に反映されると考えらえる。このため、クラスが未知のデータ点は、自己のクラス別確信度ベクトルが類似するデータ点と同じクラスを持つ可能性が高いと考えられる。つまり、ラベルなしデータは、自己のクラス別確信度ベクトルに類似するデータのクラスと同じクラスを推定クラスとして選択される。
【００５０】
なお、類似の現象を取り扱った研究分野として、「クラスバランス変化」（標本選択バイアスや環境の非定常性により、訓練標本とテスト標本のクラスのバランスが変化すること）の考え方が知られている（川久保秀子、ドゥ・プレシマーティヌス・クリストフェル、杉山  将：「分類問題におけるクラスバランス変化への対処法：エネルギー距離を用いたクラス事前確率の推定」IBISML，  2014）。
【００５１】
また、かかるラベル推定の原理について以下のように説明することもできる。第１のＳＳＬ実行部１２と第２のＳＳＬ実行部１４のＳＳＬにおけるラベルありデータは共通の分布に従い、第１のＳＳＬ実行部１２では、全てのラベルありデータを均等に用いてラベルをマスクした各ラベルありデータのクラス別確信度を計算し、第２のＳＳＬ実行部１４では、全てのラベルありデータとラベルなしデータを用いて、ラベルなしデータについてクラス別確信度を計算する。ラベルなしデータについて計算されたクラス別確信度と、ラベルをマスクした各ラベルありデータについて計算されたクラス別確信度とは、共通の分布のもとで、計算されたものである。したがって、クラス推定部１５は、ラベルなしデータについてクラス別確信度のバランスが最も類似するラベルありデータの正解クラスを推定クラスとして選択する。このようにして選択された推定クラスは、ラベルなしデータが仮にラベルありデータであった場合の正解クラスと一致する可能性が高い。
【００５２】
推定結果出力部１６は、ラベルなしデータの推定クラスを出力する。例えば、推定結果出力部１６は、推定クラス付き確信度情報２６を参照して、ラベルなしデータの推定クラスを推定結果として出力する。
【００５３】
ここで、実施例に係るデータ判別の一例を、図５〜図９を参照して説明する。
【００５４】
［第１のＳＳＬ実行の一例］
まず、実施例に係る第１のＳＳＬ実行の一例を、図５を参照して説明する。図５は、実施例に係る第１のＳＳＬ実行の一例を示す図である。
【００５５】
符号Ｆ０に示すように、ラベルありデータ群２２に含まれる各ラベルありデータは、クラス間の出現頻度に大きな偏りがある。ここでは、クラス１の頻度が２１１６、クラス２の頻度が７２、クラス３の頻度が２５３、クラス４の頻度が７５であり、クラス１の頻度が他のクラスに比べて非常に高い。すなわち、クラス間の出現頻度に大きな偏りがある。
【００５６】
符号Ｆ１に示すように、第１のＳＳＬ実行部１２は、ＳＳＬで５−ｆｏｌｄ  ＣＶを実行するために、符号Ｆ０で示したラベルありデータを、ランダムに、各クラスの頻度を保ちながら５分割する。ここでは、ラベルありデータが、Ｌ０，Ｌ１，Ｌ２，Ｌ３，Ｌ４に分割される。Ｌ０，Ｌ１，Ｌ２，Ｌ３，Ｌ４に分割されたラベルありデータは、各クラスの頻度を保つ。
【００５７】
符号Ｆ２に示すように、第１のＳＳＬ実行部１２は、Ｌｊに含まれるラベルありデータをラベルありとし、Ｌｊ以外のＵｊに含まれるラベルありデータをそのラベル（クラス）をマスクしてラベルなしとして、ＳＳＬを実行する。ここでは、第１のＳＳＬ実行部１２は、ｊが０であるとき、Ｌ０に含まれるラベルありデータをラベルありとし、Ｌ０以外のＵ０であるＬ１，Ｌ２，Ｌ３，Ｌ４に含まれるラベルありデータをそのラベル（クラス）をマスクしてラベルなしとして、ＳＳＬを実行する。
【００５８】
符号Ｆ３に示すように、第１のＳＳＬ実行部１２は、Ｕｊに含まれる各データ点についてのクラスごとの確信度を算出する。ここでは、Ｕ０であるＬ１，Ｌ２，Ｌ３，Ｌ４に含まれる各データ点についてのクラス別確信度が算出される。そして、第１のＳＳＬ実行部１２は、Ｕｊに含まれる各データ点について既知の正解クラスを紐付ける。ここでは、Ｕ０であるＬ１，Ｌ２，Ｌ３，Ｌ４に含まれる各データ点について既知の正解クラスが紐付けられる。
【００５９】
符号Ｆ４に示すように、正解クラス付き確信度情報生成部１３は、ＳＳＬが実行された判別結果であるＵｊに含まれるデータごとに、クラス別確信度の組とデータの既知の正解クラスとを対応付けて正解クラス付き確信度情報２４に追加する。図５に示す正解クラス付き確信度情報２４のｑ１は、ラベル１の確信度であることを示す。同様に、ｑ２，ｑ３，ｑ４は、それぞれラベル２，３，４の確信度であることを示す。
【００６０】
続いて、第１のＳＳＬ実行部１２は、ｊを１に変更して、Ｌ１に含まれるラベルありデータをラベルありとし、Ｌ１以外のＵ１であるＬ０，Ｌ２，Ｌ３，Ｌ４に含まれるラベルありデータをそのラベル（クラス）をマスクしてラベルなしとして、ＳＳＬを実行する（符号Ｆ２の処理）。そして、第１のＳＳＬ実行部１２は、Ｕ１であるＬ０，Ｌ２，Ｌ３，Ｌ４に含まれる各データ点についてのクラス別確信度を算出し、既知の正解クラスと紐付ける（符号Ｆ３の処理）。そして、正解クラス付き確信度情報生成部１３は、ＳＳＬが実行された判別結果であるＵ１に含まれるデータごとに、クラス別確信度の組とデータの既知の正解クラスとを対応付けて正解クラス付き確信度情報２４に追加する（符号Ｆ４の処理）。同様に、第１のＳＳＬ実行部１２は、および正解クラス付き確信度情報生成部１３は、ｊを２〜４に順番に変更して、符号Ｆ２の処理、符号Ｆ３の処理、符号Ｆ４の処理をそれぞれ行う。この結果、正解クラス付き確信度情報Ｓ（２４）が生成される。
【００６１】
［第２のＳＳＬ実行の一例］
次に、実施例に係る第２のＳＳＬ実行の一例を、図６を参照して説明する。図６は、実施例に係る第２のＳＳＬ実行の一例を示す図である。
【００６２】
第２のＳＳＬ実行部１４は、ラベルありデータ群２２に含まれるラベルありデータと、ラベルなしデータ群２３に含まれるラベルなしデータを用いて、ＳＳＬを実行する。ここでいうラベルありデータは、第１のＳＳＬ実行部１２によって用いられたデータと同じである。すなわち、クラス１の頻度が他のクラスに比べて非常に高い、クラス間の出現頻度に大きな偏りがある。また、ここでいうラベルなしデータの数は、ラベルありデータの数よりも非常に多い。
【００６３】
そして、第２のＳＳＬ実行部１４は、各ラベルなしデータのクラス別確信度を算出し、ラベルなしデータごとのクラス別確信度を表すラベルなし確信度情報２５を生成する。図６に示すラベルなし確信度情報２５のｐ１は、クラス１の確信度であることを示す。同様に、ｐ２，ｐ３，ｐ４は、それぞれクラス２，３，４の確信度であることを示す。
【００６４】
［ラベル推定の一例］
次に、実施例に係るクラス推定の一例を、図７Ａ〜図７Ｃを参照して説明する。図７Ａ〜図７Ｃは、実施例に係るクラス推定の一例を示す図である。
【００６５】
クラス推定部１５は、ラベルなし確信度情報２５のラベルなしデータについて、正解クラス付き確信度情報Ｓ（２４）とのクラス別確信度ベクトル間距離ｄ（ｐ，ｑ）を算出し、距離が最小のラベルありデータを特定する。クラス推定部１５は、特定したラベルありデータの正解クラスを、このラベルなしデータの推定クラスとする。なお、ラベルなし確信度ベクトルは、（ｐ１，ｐ２，ｐ３，ｐ４）である。Ｓ内のラベルあり確信度ベクトルは、（ｑ１，ｑ２，ｑ３，ｑ４）である。ｄ（ｐ，ｑ）は、式（１）を用いて算出される。
【００６６】
図７Ａに示すように、クラス推定部１５は、ラベルなし確信度情報２５から、符号ａ１で示すラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでは、「８／２６  １０：０５」のラベルなしデータに対するクラス別確信度ベクトルとして（０．８８０６７６，０．０２２７１１，０．０７５２８３，０．０２１３３）が選択される。
【００６７】
そして、クラス推定部１５は、符号ａ１で示すラベルなしデータに対するクラス別確信度ベクトルと、正解クラス付き確信度情報Ｓ（２４）内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算する。ここでは、Ｓ内の符号ｓ１で示すラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離は、０．０６５５６８５と算出される。同様に、次行、・・・、最終行のそれぞれのラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離が、図７Ａのように算出される。
【００６８】
そして、クラス推定部１５は、各距離（クラス別確信度ベクトル間距離）を比較し、距離が最も小さいラベルありデータの正解クラスを、符号ａ１で示すラベルなしデータの推定クラスとする。ここでは、最も小さい距離は、符号ｓ２で示すラベルありデータのクラス別確信度ベクトルとの間の距離である０．００１５５４７である。そこで、符号ｓ２で示すラベルありデータの正解クラス「１」を、符号ａ１で示すラベルなしデータの推定クラスとする。
【００６９】
そして、クラス推定部１５は、符号ａ１で示すラベルなしデータのクラス別確信度ベクトルと、推定クラス「１」（符号ｒ１）とを対応付けた情報を推定クラス付き確信度情報２６に追加する。
【００７０】
図７Ｂに示すように、クラス推定部１５は、ラベルなし確信度情報２５から、符号ａ２で示すラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでは、「８／２６  １０：１０」のラベルなしデータに対するクラス別確信度ベクトルとして（０．７１９５４，０．０５２９６５，０．１７８９１９，０．０４８５７６）が選択される。
【００７１】
そして、クラス推定部１５は、符号ａ２で示すラベルなしデータに対するクラス別確信度ベクトルと、正解クラス付き確信度情報Ｓ（２４）内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算する。ここでは、Ｓ内の符号ｓ１で示すラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離は、０．２６１４２８４と算出される。同様に、次行、・・・、最終行のそれぞれのラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離が、図７Ｂのように算出される。
【００７２】
そして、クラス推定部１５は、各距離（クラス別確信度ベクトル間距離）を比較し、距離が最も小さいラベルありデータの正解クラスを、符号ａ２で示すラベルなしデータの推定クラスとする。ここでは、最も小さい距離は、符号ｓ３で示すラベルありデータのクラス別確信度ベクトルとの間の距離である０．００８４３９５である。そこで、符号ｓ３で示すラベルありデータの正解クラス「１」を、符号ａ２で示すラベルなしデータの推定クラスとする。
【００７３】
そして、クラス推定部１５は、符号ａ２で示すラベルなしデータのクラス別確信度ベクトルと、推定クラス「１」（符号ｒ２）とを対応付けた情報を推定クラス付き確信度情報２６に追加する。
【００７４】
図７Ｃに示すように、クラス推定部１５は、ラベルなし確信度情報２５から、符号ａ３で示すラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでは、「８／２６  １０：１５」のラベルなしデータに対するクラス別確信度ベクトルとして（０．７０４５７２，０．０５１７８１，０．１９１８２７，０．０５１８２）が選択される。
【００７５】
そして、クラス推定部１５は、符号ａ３で示すラベルなしデータに対するクラス別確信度ベクトルと、正解クラス付き確信度情報Ｓ（２４）内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算する。ここでは、Ｓ内の符号ｓ１で示すラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離は、０．２８０９０１３と算出される。同様に、次行、・・・、最終行のそれぞれのラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離が、図７Ｃのように算出される。
【００７６】
そして、クラス推定部１５は、各距離（クラス別確信度ベクトル間距離）を比較し、距離が最も小さいラベルありデータの正解クラスを、符号ａ３で示すラベルなしデータの推定クラスとする。ここでは、最も小さい距離は、符号ｓ４で示すラベルありデータのクラス別確信度ベクトルとの間の距離である０．００８３９２７８である。そこで、符号ｓ４で示すラベルありデータの正解クラス「３」を、符号ａ３で示すラベルなしデータの推定クラスとする。
【００７７】
そして、クラス推定部１５は、符号ａ３で示すラベルなしデータのクラス別確信度ベクトルと、推定クラス「３」（符号ｒ３）とを対応付けた情報を推定クラス付き確信度情報２６に追加する。
【００７８】
［適用結果の一例］
次に、実施例に係る適用結果の一例を、図８Ａ，図８Ｂを参照して説明する。図８Ａ，図８Ｂは、実施例に係る適用結果の一例を示す図である。
【００７９】
図８Ａに示すように、ラベルなしデータ群２３に含まれるラベルなしデータごとに、クラス別確信度、推定クラスおよび正解クラスを対応付けた表が表わされている。クラス別確信度は、第２のＳＳＬ実行部１４によって実行された結果を示す。推定クラスは、クラス推定部１５によって推定された結果を示す。正解クラスは、専門家が付けたクラスを示す。
【００８０】
かかる表では、各ラベルなしデータに対する推定クラスは、グラフ構造に基づくＳＳＬを実行した場合に全てクラス１であったところ、データ判別を適用した場合には正解クラスに近づいていることがわかる。
【００８１】
また、図８Ｂに示すように、ラベルなしデータ群２３に含まれるラベルなしデータごとに、クラス別確信度、推定クラスおよび正解クラスを対応付けたグラフが表わされている。クラス別確信度は、第２のＳＳＬ実行部１４によって実行された結果でを示す。推定クラスは、クラス推定部１５によって推定された結果を示す。正解クラスは、専門家が付けたラベルを示す。
【００８２】
かかるグラフでは、各ラベルなしデータに対する推定クラスは、グラフ構造に基づくＳＳＬを実行した場合に全てクラス１であったところ、データ判別を適用した場合には正解クラスに近づいていることがわかる。
【００８３】
これにより、データ判別装置１は、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合であっても、ラベルなしのデータの推定クラスを正解クラスに近づけることができる。すなわち、データ判別装置１は、グラフ構造に基づくＳＳＬを実行する場合と比べて、ラベルなしのデータの推定クラスを精度良く判別することができる。
【００８４】
［適用結果（分布）の一例］
次に、実施例に係る適用結果（分布）の一例を、図９を参照して説明する。図９は、実施例に係る適用結果（分布）の一例を示す図である。
【００８５】
図９左図に示すように、ラベルなしデータ（ＮＡ）、クラス１〜４のラベルありデータが、特徴量空間上に存在することを表わしている。ラベルありデータには、クラス間の出現頻度に大きな偏りがあることを示している。すなわち、クラス１の出現頻度は、０．８４１０を示し、他のクラス２、３、４と比較して高頻度である。
【００８６】
図９中図に示すように、特徴量空間上には、ラベルありのデータ点と、ラベルなしのデータ点の分布が表わされている。
【００８７】
このようなラベルありのデータおよびラベルなしのデータについて、データ判別装置１は、データ判別処理を適用した結果、ラベルなしのデータに、推定クラス（擬似ラベル）を付与する。図９右図に示すように、擬似ラベル付きのデータ点の分布が表わされている。
【００８８】
これにより、データ判別装置１は、元のクラス分布に大きな偏りがある場合であっても、ラベルなしのデータのクラスを精度良く推定することができる。すなわち、データ判別装置１は、図１４で示したグラフ構造に基づくＳＳＬを適用した結果（分布）と比べて、ラベルなしのデータのクラスを精度良く推定することができる。この結果、データ判別装置１は、多量に存在するラベルなしデータに、質の良い推定クラス（擬似ラベル）を付けて、クラス分類モデルの構築に利用することが可能となる。
【００８９】
［データ判別処理のフローチャート］
図１０は、実施例に係るデータ判別処理のフローチャートの一例を示す図である。なお、クラスは、Ｎ個あるものとする。
【００９０】
第１のＳＳＬ実行部１２は、ラベルありデータに対して、ＳＳＬでｋ−ｆｏｌｄ  ＣＶを実行する（ステップＳ１１）。例えば、第１のＳＳＬ実行部１２は、ラベルありデータ群２２をランダムに各クラスの頻度を保ちながらｋ個のサンプルに分割する。そして、第１のＳＳＬ実行部１２は、１個のサンプルに含まれるデータをラベルありとし、その他のｋ−１個のサンプルに含まれるデータをそのラベル（クラス）をマスクしてラベルなしとして、ＳＳＬを実行する。この結果、第１のＳＳＬ実行部１２は、ラベルなしとしたｋ−１個のサンプルに含まれる各データについて、ＳＳＬによって算出されたクラス別確信度を出力する。そして、第１のＳＳＬ実行部１２は、このサイクルを、サンプルを代えてｋ回繰り返す。
【００９１】
そして、正解クラス付き確信度情報生成部１３は、ラベルありデータｗに対する正解クラスｃと、クラス別の確信度ベクトルｑ（ｗ）＝（ｑ１，・・・，ｑＮ）とのデータセットを生成し、正解クラス付き確信度情報Ｓ（２４）を生成する（ステップＳ１２）。例えば、正解クラス付き確信度情報生成部１３は、第１のＳＳＬ実行部１２によって出力された各ラベルありデータｗのクラス別の確信度ベクトルｑ（ｗ）と各ラベルありデータに付けられた既知の正確クラスｃとを対応付けた正解クラス付き確信度情報Ｓ（２４）を生成する。そして、正解クラス付き確信度情報生成部１３は、正解クラス付き確信度情報Ｓ（２４）を記憶部２０に格納する。
【００９２】
続いて、第２のＳＳＬ実行部１４は、ラベルありデータとラベルなしデータとを用いて、ＳＳＬを実行する（ステップＳ１３）。例えば、第２のＳＳＬ実行部１４は、ラベルありデータ群２２およびラベルなしデータ群２３に対してＳＳＬを実行し、各ラベルなしデータのクラス別確信度を算出する。
【００９３】
そして、第２のＳＳＬ実行部１４は、ラベルなしデータｖに対するクラス別確信度ベクトルｐ（ｖ）＝（ｐ１，・・・，ｐＮ）のデータセットを生成し、ラベルなし確信度情報Ａ（２５）を生成する（ステップＳ１４）。そして、第２のＳＳＬ実行部１４は、ラベルなし確信度情報Ａ（２５）を記憶部２０に格納する。
【００９４】
続いて、クラス推定部１５は、各ラベルなしデータのクラスを推定する（ステップＳ１５）。なお、クラス推定部１５のフローチャートは、後述する。
【００９５】
そして、推定結果出力部１６は、クラス推定部１５によって推定された推定結果を出力する（ステップＳ１６）。例えば、推定結果出力部１６は、各ラベルなしデータの推定クラスを推定結果として出力する。
【００９６】
［クラス推定処理のフローチャート］
図１１は、実施例に係るクラス推定処理のフローチャートの一例を示す図である。
【００９７】
クラス推定部１５は、ラベルなし確信度情報Ａ（２５）からラベルなしデータｖを選択する（ステップＳ２１）。
【００９８】
クラス推定部１５は、ラベルなしデータｖのｐ（ｖ）と、正解クラス付き確信度情報Ｓ（２４）内の各ラベルありデータｗのｑ（ｗ）とのクラス別確信度ベクトル間距離｜ｐ（ｖ）−ｑ（ｗ）｜を算出する（ステップＳ２２）。ｐ（ｖ）、ｑ（ｗ）は、それぞれクラス別確信度ベクトルを示す。なお、クラス別確信度ベクトル間距離｜ｐ（ｖ）−ｑ（ｗ）｜は、式（１）を用いて算出されれば良い。
【００９９】
そして、クラス推定部１５は、クラス別確信度ベクトル間距離が最小のラベルありデータｗに対する正解クラスｃをラベルなしデータｖの推定クラスとして設定する（ステップＳ２３）。例えば、クラス推定部１５は、各ラベルありデータｗごとに算出されたクラス別確信度ベクトル間距離を比較し、クラス別確信度ベクトル間距離が最も小さいラベル有りデータｗの正確クラスｃをラベルなしデータｖの推定クラスとする。クラス推定部１５は、ラベルなしデータｖのクラス別確信度ベクトルｐ（ｖ）と推定クラスとを対応付けた情報を推定クラス付き確信度情報２６に追加する。
【０１００】
そして、クラス推定部１５は、ラベルなし確信度情報Ａ（２５）から全てのラベルなしデータを選択したか否かを判定する（ステップＳ２４）。全てのラベルなしデータを選択していないと判定した場合には（ステップＳ２４；Ｎｏ）、クラス推定部１５は、次のラベルなしデータを選択すべく、ステップＳ２１に移行する。
【０１０１】
一方、全てのラベルなしデータを選択したと判定した場合には（ステップＳ２４；Ｙｅｓ）、クラス推定部１５は、クラス推定処理を終了する。
【０１０２】
［データ判別の別の適用例］
図１２Ａおよび図１２Ｂは、実施例に係るデータ判別の別の適用例を示す図である。図１２Ａおよび図１２Ｂで示す適用例は、特定の観測地点での特定時刻の気象予報データから天気を推定する場合である。ここでは、データ判別装置１は、首都圏の４箇所の観測地点（千代田区、さいたま市、千葉市、横浜市）における２０１１／０７／２９〜２０１８／０２／０２の各予報日の朝６時の気象予報データから４クラスの天気（晴、曇、雨、雪）を推定する。
【０１０３】
図１２Ａに示すように、首都圏の４箇所の観測地点（千代田区、さいたま市、千葉市、横浜市）における２０１１／０７／２９〜２０１８／０２／０２の各予報日の朝６時の気象予報データと天気とを対応付けたラベルありデータの分布が表わされている。ここでいう気象予報データは、気温（ｔｅｍｐ）、気圧（ａｔｍ＿ｐｒｅｓｓ）および湿度（ｈｕｍｉｄ）である。ラベルありには、クラス間の出現頻度に偏りがあることを示している。すなわち、晴クラスの出現頻度は、４５９１を示し、曇クラスの出現頻度は、２９９１を示し、他のクラス雨、雪と比較して頻度が高い。
【０１０４】
図１２Ｂ左図に示すように、図１２Ａで示したラベルありデータのうちランダムに２０％のラベルありデータを残したデータ点の分布である。さらに、この分布には、ラベルなしデータ（ＮＡ）が表わされている。このようなラベルありデータおよびラベルなしデータについて、データ判別装置１は、データ判別処理を適用した結果、ラベルなしデータに推定クラス（擬似ラベル）を付与する。図１２Ｂ上図には、データ判別処理の適用結果（分布）である、擬似ラベル付きのデータ点が表わされている。擬似ラベル付きのデータ点は、出現頻度が高い晴クラスや曇クラスだけでなく雨、雪のクラスを擬似ラベルとして付与されている。
【０１０５】
これに対して、図１２Ｂ下図には、同じデータ点についてグラフ構造に基づくＳＳＬを実行した結果（分布）である、擬似ラベル付きのデータ点が表わされている。擬似ラベル付きのデータ点は、出現頻度が高い晴クラスや曇クラスばかりを擬似ラベルとして付与されている。
【０１０６】
これにより、データ判別装置１は、元のクラス分布に偏りがある場合であっても、グラフ構造に基づくＳＳＬを適用した結果（分布）と比べて、ラベルなしのデータのクラスを精度良く推定することが可能となる。
【０１０７】
［実施例の効果］
上記実施例によれば、データ判別装置１は、正解ラベルと対応付けられたテストデータから複数の部分テストデータを生成する。データ判別装置１は、複数の部分テストデータのうち、一部の部分テストデータおよび当該一部の部分テストデータに対応した正解ラベルと、一部の部分テストデータ以外の部分テストデータとを用いて、学習モデルに対するＳＳＬを実行する。データ判別装置１は、一部の部分テストデータ以外の前記部分テストデータの各データに対し、学習モデルの判別結果である複数のラベルそれぞれの確信度の組と、当該データに対応付けられた正解ラベルとを対応付けた対応情報（正解クラス付き確信度情報２４）を生成する。データ判別装置１は、正解のラベルの対応付けが存在しない複数の検証対象データそれぞれについて、学習モデルを用いて、複数のラベルそれぞれの確信度を生成する。データ判別装置１は、複数の検証対象データそれぞれについて、当該検証対象データの複数のラベルそれぞれの確信度の組と類似する類似データを、正解クラス付き確信度情報２４から特定する。データ判別装置１は、類似データの正解ラベルを検証対象データのラベルとして出力する。かかる構成によれば、データ判別装置１は、正解ラベルと対応付けられたテストデータ（ラベルありデータ）について、複数のラベル（クラス）の分布に偏りがある場合でも、ラベルなしデータについて、ＳＳＬを利用した適切なラベル（クラス）の判別を可能とする。
【０１０８】
また、上記実施例によれば、データ判別装置１は、ラベルありのテストデータを用いて、学習モデルのＳＳＬでｋ−ｆｏｌｄ  ＣＶを実行する。かかる構成によれば、データ判別装置１は、ラベルありデータに対する複数のラベルごとの確信度と正解のラベル（クラス）とを対応付けた正解クラス付き確信度情報２４を取得することができる。
【０１０９】
また、上記実施例によれば、データ判別装置１は、ラベルありのテストデータから、ランダムに各ラベルの頻度を保ちながらｋグループの複数の部分テストデータを生成する。データ判別装置１は、１グループの部分テストデータに対応した正解ラベルと、ｋ−１個のグループのグ部分テストデータを用いて、学習モデルに対するＳＳＬを実行する。データ判別装置１は、ｋ−１個のグループに含まれる各データの複数のラベルそれぞれの確信度を生成する。かかる構成によれば、データ判別装置１は、学習モデルのラベル（クラス）分布を、元のラベル（クラス）分布と共通にして、ＳＳＬを実行することができる。
【０１１０】
また、上記実施例によれば、データ判別装置１は、検証対象データそれぞれについて、複数のラベルそれぞれの確信度の組と、対応情報（正解クラス付き確信度情報２４）に含まれる各データの複数のラベルそれぞれの確信度の組とを比較する。データ判別装置１は、組で示される複数のラベルそれぞれの確信度を用いた距離が最も小さいデータを類似データとして特定する。かかる構成によれば、データ判別装置１は、検証対象データの複数のラベルそれぞれの確信度の組と正解クラス付き確信度情報２４に含まれる各データの複数のラベルそれぞれの確信度の組との距離を用いることで、ラベルありデータについて、複数のラベル（クラス）の分布に偏りがある場合でも、ラベルなしデータについて、ＳＳＬを利用した適切なラベル（クラス）の判別を可能とする。
【０１１１】
［その他］
なお、図示したデータ判別装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、データ判別装置１の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第１のＳＳＬ実行部１２と正解クラス付き確信度情報生成部１３とを１つの部として統合しても良い。また、クラス推定部１５を、クラス別確信度ベクトル間距離を算出する算出部と、算出したクラス別確信度ベクトル間距離からクラスを推定する推定部とに分離しても良い。また、記憶部２０をデータ判別装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１１２】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示したデータ判別装置１と同様の機能を実現するデータ判定プログラムを実行するコンピュータの一例を説明する。図１３は、データ判定プログラムを実行するコンピュータの一例を示す図である。
【０１１３】
図１３に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ（Hard  Disk  Drive）２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１１４】
ドライブ装置２１３は、例えばリムーバブルディスク２１０用の装置である。ＨＤＤ２０５は、データ判別プログラム２０５ａおよびデータ判別処理関連情報２０５ｂを記憶する。
【０１１５】
ＣＰＵ２０３は、データ判別プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、データ判別装置１の各機能部に対応する。データ判別処理関連情報２０５ｂは、計測データ群２１、ラベルありデータ群２２、ラベルなしデータ群２３、正解クラス付き確信度情報２４、ラベルなし確信度情報２５および推定クラス付き確信度情報２６に対応する。そして、例えばリムーバブルディスク２１０が、データ判別プログラム２０５ａなどの各情報を記憶する。
【０１１６】
なお、データ判別プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、ＤＶＤ（Digital  Versatile  Disk）、光磁気ディスク、ＩＣ（Integrated  Circuit）カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからデータ判別プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１１７】
１  データ判別装置
１０  制御部
１１  特徴量化部
１２  第１のＳＳＬ実行部
１３  正解クラス付き確信度情報生成部
１４  第２のＳＳＬ実行部
１５  クラス推定部
１６  推定結果出力部
２０  記憶部
２１  計測データ群
２２  ラベルありデータ群
２３  ラベルなしデータ群
２４  正解クラス付き確信度情報
２５  ラベルなし確信度情報
２６  推定クラス付き確信度情報
【図１】
2019191769.tif 000003
【図２】
2019191769.tif 000004
【図３】
2019191769.tif 000005
【図４】
2019191769.tif 000006
【図５】
2019191769.tif 000007
【図６】
2019191769.tif 000008
【図７Ａ】
2019191769.tif 000009
【図７Ｂ】
2019191769.tif 000010
【図７Ｃ】
2019191769.tif 000011
【図８Ａ】
2019191769.tif 000012
【図８Ｂ】
2019191769.tif 000013
【図９】
2019191769.tif 000014
【図１０】
2019191769.tif 000015
【図１１】
2019191769.tif 000016
【図１２Ａ】
2019191769.tif 000017
【図１２Ｂ】
2019191769.tif 000018
【図１３】
2019191769.tif 000019
【図１４】
2019191769.tif 000020
【図１５】
2019191769.tif 000021
【図１６】
2019191769.tif 000022