(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-16
(45)【発行日】2024-01-24
(54)【発明の名称】機械学習プログラム、機械学習方法および機械学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240117BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2021552063
(86)(22)【出願日】2019-10-17
(86)【国際出願番号】 JP2019040906
(87)【国際公開番号】W WO2021075029
(87)【国際公開日】2021-04-22
【審査請求日】2022-03-15
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】加藤 孝史
(72)【発明者】
【氏名】後藤 啓介
(72)【発明者】
【氏名】大堀 耕太郎
【審査官】上島 拓也
(56)【参考文献】
【文献】国際公開第2016/121053(WO,A1)
【文献】特開2019-079214(JP,A)
【文献】BAY, Stephen D.,Multivariate Discretization of Continuous Variables for Set Mining,Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining,2000年08月,pp.315-319,<URL:https://dl.acm.org/citation.cfm?id=347159>,<DOI:10.1145/347090.347159>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
それぞれが複数のデータ項目のデータ項目値の組み合わせに対してラベル情報を関連付けたデータである複数の学習データについて、データ項目毎に前記データ項目値を所定の基準に基づいて離散化した離散化データ値に変換し、
前記複数のデータ項目の前記離散化データ値を入力として前記ラベル情報に関する判定を行うモデル
であって、それぞれが前記複数のデータ項目のうち一部のデータ項目が満たす前記離散化データ値の条件と前記ラベル情報の推定値との複数の関係と、前記複数の関係それぞれの重要性を示す指標値とを含むモデルを学習する学習処理を、変換後の前記複数の学習データを用いて実行し、
前記モデルに含まれる前記複数の関係から前記条件に使用されている前記一部のデータ項目を抽出することで、それぞれが前記複数のデータ項目のうち前記判定に用いる2以上のデータ項目の組み合わせを示す異なる複数の特徴情報と、前記複数の特徴情報それぞれ
に対応付ける前記指標値とを取得し、
前記指標値に基づいて前記複数の特徴情報のうち1以上の特徴情報を選択し、選択した前記1以上の特徴情報に基づいて、前記データ項目値の離散化に用いる基準を変更する、
処理を実行させる機械学習プログラム。
【請求項2】
1つのデータ項目の前記データ項目値の離散化は、前記1つのデータ項目が取り得る前記データ項目値の範囲を2以上の区間に分割することを含み、
離散化に用いる基準の変更では、選択した1つの特徴情報が示す前記2以上のデータ項目の組み合わせに対して前記データ項目値の多次元分布を算出し、算出した前記多次元分布に基づいて前記2以上のデータ項目それぞれの前記2以上の区間を変更する、
請求項1記載の機械学習プログラム。
【請求項3】
前記2以上の区間の変更では、前記ラベル情報が同一である学習データの密度に応じて前記多次元分布を複数の領域に分割し、前記複数の領域の間の境界に基づいて前記2以上のデータ項目それぞれが取り得る前記データ項目値の範囲に対する分割点を決定する、
請求項2記載の機械学習プログラム。
【請求項4】
前記コンピュータに更に、データ項目毎に前記データ項目値を前記変更した基準に基づいて離散化した他の離散化データ値に変換し、再変換後の前記複数の学習データを用いて前記学習処理を実行し、学習された前記モデルを出力する処理を実行させる、
請求項1記載の機械学習プログラム。
【請求項5】
コンピュータに、
それぞれが複数のデータ項目のデータ項目値の組み合わせに対してラベル情報を関連付けたデータである複数の学習データについて、データ項目毎に前記データ項目値を所定の基準に基づいて離散化した離散化データ値に変換し、
前記複数のデータ項目の前記離散化データ値を入力として前記ラベル情報に関する判定を行うモデルを学習する学習処理を、変換後の前記複数の学習データを用いて実行し、
前記学習処理の実行結果から、それぞれが前記複数のデータ項目のうち前記判定に用いる2以上のデータ項目の組み合わせを示す異なる複数の特徴情報と、前記複数の特徴情報それぞれの重要性を示す指標値とを取得し、
前記指標値に基づいて前記複数の特徴情報のうち1以上の特徴情報を
、前記1以上の特徴情報の中で同一のデータ項目を含む特徴情報の個数が閾値以下になるように選択し、選択した前記1以上の特徴情報に基づいて、前記データ項目値の離散化に用いる基準を変更する、
処理を実行させる機械学習プログラム。
【請求項6】
コンピュータが、
それぞれが複数のデータ項目のデータ項目値の組み合わせに対してラベル情報を関連付けたデータである複数の学習データについて、データ項目毎に前記データ項目値を所定の基準に基づいて離散化した離散化データ値に変換し、
前記複数のデータ項目の前記離散化データ値を入力として前記ラベル情報に関する判定を行うモデル
であって、それぞれが前記複数のデータ項目のうち一部のデータ項目が満たす前記離散化データ値の条件と前記ラベル情報の推定値との複数の関係と、前記複数の関係それぞれの重要性を示す指標値とを含むモデルを学習する学習処理を、変換後の前記複数の学習データを用いて実行し、
前記モデルに含まれる前記複数の関係から前記条件に使用されている前記一部のデータ項目を抽出することで、それぞれが前記複数のデータ項目のうち前記判定に用いる2以上のデータ項目の組み合わせを示す異なる複数の特徴情報と、前記複数の特徴情報それぞれ
に対応付ける前記指標値とを取得し、
前記指標値に基づいて前記複数の特徴情報のうち1以上の特徴情報を選択し、選択した前記1以上の特徴情報に基づいて、前記データ項目値の離散化に用いる基準を変更する、
機械学習方法。
【請求項7】
それぞれが複数のデータ項目のデータ項目値の組み合わせに対してラベル情報を関連付けたデータである複数の学習データを記憶する記憶部と、
前記複数の学習データについて、データ項目毎に前記データ項目値を所定の基準に基づいて離散化した離散化データ値に変換し、前記複数のデータ項目の前記離散化データ値を入力として前記ラベル情報に関する判定を行うモデル
であって、それぞれが前記複数のデータ項目のうち一部のデータ項目が満たす前記離散化データ値の条件と前記ラベル情報の推定値との複数の関係と、前記複数の関係それぞれの重要性を示す指標値とを含むモデルを学習する学習処理を、変換後の前記複数の学習データを用いて実行し、
前記モデルに含まれる前記複数の関係から前記条件に使用されている前記一部のデータ項目を抽出することで、それぞれが前記複数のデータ項目のうち前記判定に用いる2以上のデータ項目の組み合わせを示す異なる複数の特徴情報と、前記複数の特徴情報それぞれ
に対応付ける前記指標値とを取得し、前記指標値に基づいて前記複数の特徴情報のうち1以上の特徴情報を選択し、選択した前記1以上の特徴情報に基づいて、前記データ項目値の離散化に用いる基準を変更する処理部と、
を有する機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は機械学習プログラム、機械学習方法および機械学習装置に関する。
【背景技術】
【0002】
コンピュータを利用した大規模データ分析として、機械学習が行われることがある。機械学習では、既知の事例を示す複数のサンプルをコンピュータに入力する。コンピュータは、複数のサンプルを分析して、要因(説明変数や独立変数と言うことがある)と結果(目的変数や従属変数と言うことがある)との間の関係を一般化したモデルを学習する。学習されたモデルを用いることで、未知の事例の結果を予測することができる。
【0003】
モデルの精度が向上するように、機械学習の前に訓練データに対して前処理を行うことがある。前処理の1つとして、説明変数の取り得る値の個数を減少させる「離散化」がある。離散化では、取り得る値の多い「連続値」をもつ説明変数が、取り得る値の少ない「離散値」をもつ説明変数に変換される。離散化では、例えば、連続値の範囲が複数の区間に分割され、連続値に対してその属する区間に応じた離散値が割り当てられる。
【0004】
ある説明変数を離散化するための複数の区間を、その説明変数の値と目的変数の値との対応関係を考慮して動的に決定するエントロピーベースの離散化が提案されている。エントロピーベースの離散化では、訓練データに含まれる説明変数の値の分布の中から、同じ目的変数の値をもつサンプルが密集している区間が検出される。目的変数の値の分布を考慮して説明変数の離散化を行うことで、モデルの精度が向上すると期待される。
【先行技術文献】
【非特許文献】
【0005】
【文献】Usama M. Fayyad and Keki B. Irani, "Multi-Interval Discretization of Continuous-Valued Attributes for Classification Learning", Proc. of the 13th International Joint Conference on Artificial Intelligence (IJCAI-93), pp. 1022-1029, 1993-08-28.
【発明の概要】
【発明が解決しようとする課題】
【0006】
訓練データに対する従来の離散化技術では、説明変数単位で離散化が行われ、ある説明変数を離散化するための離散化方法が、別の説明変数を離散化するための離散化方法とは独立に決定される。例えば、ある説明変数の連続値の範囲の分割方法が、別の説明変数の連続値の範囲の分割方法とは独立に決定される。
【0007】
そのため、モデル精度の向上の観点から、訓練データに対する前処理としての離散化には改善の余地がある。例えば、2以上の説明変数の組み合わせの中で目的変数の値の分布を検討した方が、それら2以上の説明変数それぞれに対して適切な分割点を設定できることがある。このとき、訓練データに含まれる様々な説明変数の中から、どの様な説明変数の組み合わせに対して離散化処理を行えばよいかが問題となる。
【0008】
1つの側面では、本発明は、モデル精度が向上するように訓練データの離散化を行う機械学習プログラム、機械学習方法および機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、コンピュータに以下の処理を実行させる機械学習プログラムが提供される。それぞれが複数のデータ項目のデータ項目値の組み合わせに対してラベル情報を関連付けたデータである複数の学習データについて、データ項目毎にデータ項目値を所定の基準に基づいて離散化した離散化データ値に変換する。複数のデータ項目の離散化データ値を入力としてラベル情報に関する判定を行うモデルを学習する学習処理を、変換後の複数の学習データを用いて実行する。学習処理の実行結果から、それぞれが複数のデータ項目のうち判定に用いる2以上のデータ項目の組み合わせを示す異なる複数の特徴情報と、複数の特徴情報それぞれの重要性を示す指標値とを取得する。指標値に基づいて複数の特徴情報のうち1以上の特徴情報を選択し、選択した1以上の特徴情報に基づいて、データ項目値の離散化に用いる基準を変更する。
【0010】
また、1つの態様では、コンピュータが実行する機械学習方法が提供される。また、1つの態様では、記憶部と処理部とを有する機械学習装置が提供される。
【発明の効果】
【0011】
1つの側面では、モデル精度が向上するように訓練データの離散化が行われる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態の機械学習装置の例を説明する図である。
【
図2】第2の実施の形態の機械学習装置のハードウェア例を示す図である。
【
図4】前処理後の訓練データテーブルの例を示す図である。
【
図5】Wide Learningの例を示す図である。
【
図6】エントロピーに基づく離散化の例を示す図である。
【
図7】サンプルの分布と離散化の関係例を示す図である。
【
図8】離散化に使用する説明変数の組の選択例を示す図である。
【
図10】複数の説明変数の離散化例を示す図(続き)である。
【
図11】機械学習装置の機能例を示すブロック図である。
【
図12】機械学習の手順例を示すフローチャートである。
【
図13】単一変数離散化の手順例を示すフローチャートである。
【
図14】Wide Learningの手順例を示すフローチャートである。
【
図15】変数選択の手順例を示すフローチャートである。
【
図16】変数選択の他の手順例を示すフローチャートである。
【
図18】複数変数離散化の手順例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0014】
図1は、第1の実施の形態の機械学習装置の例を説明する図である。
第1の実施の形態の機械学習装置10は、学習データに対して前処理を行い、前処理後の学習データを用いて機械学習を行い、未知の結果を予測するためのモデルを学習する。機械学習装置10は、クライアント装置でもよいしサーバ装置でもよい。機械学習装置10をコンピュータや情報処理装置と言うこともできる。
【0015】
機械学習装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
【0016】
記憶部11は、前処理前の複数の学習データを含む学習データ集合13を記憶する。個々の学習データをレコードやサンプルと言うこともでき、学習データ集合13を訓練データと言うこともできる。複数の学習データそれぞれは、データ項目13a,13bなどの複数のデータ項目のデータ項目値の組み合わせに対して、ラベル情報13cを関連付けたデータである。複数のデータ項目それぞれを説明変数や特徴量と言うこともでき、ラベル情報13cを目的変数や教師ラベルと言うこともできる。複数のデータ項目の少なくとも一部は、「連続値」のデータ項目値をとる。「連続値」は、整数や実数など取り得る値の個数が多いデータ項目のデータ項目値である。ラベル情報13cは、例えば、YESまたはNOで規定することができる二値分類情報である。
【0017】
処理部12は、学習データ集合13に対して前処理を行い、前処理後の複数の学習データを含む学習データ集合14を生成する。学習データ集合14を前処理後の訓練データと言うこともできる。学習データ集合13から学習データ集合14への変換では「離散化」が行われる。離散化では、処理部12は、データ項目毎に所定の基準に基づいて、「連続値」である元のデータ項目値を「離散値」である離散化データ値に変換する。「離散値」は、離散化前よりも取り得る値の個数が減少した値である。
【0018】
所定の基準として、処理部12は、元のデータ項目値を少数のクラスに分類し、元のデータ項目値が属するクラスを示す離散化データ値に変換する。例えば、処理部12は、元のデータ項目値が取り得る数値範囲を複数の区間に分割し、元のデータ項目値が属する区間を示す離散化データ値に変換する。例えば、数値範囲を、20未満の区間1、20以上50未満の区間2、50以上の区間3のように分割することが考えられる。数値範囲の分割方法などデータ項目値の分類方法が、離散化の「基準」となる。後述するように、処理部12は、離散化の基準を調整することができる。
【0019】
処理部12は、前処理後の学習データ集合14を用いて、モデル15を学習する学習処理を実行する。モデル15は、複数のデータ項目の離散化データ値を入力として、ラベル情報13cに関する判定を行うものである。モデル15を学習する機械学習アルゴリズムとしては、様々なものを使用することができる。例えば、モデル15は、学習データ集合14に含まれる複数のデータ項目のうち一部のデータ項目の離散化データ値の組み合わせから、ラベル情報13cの値を予測する複数の判定ルールを含む。例えば、ある判定ルールは、データ項目13aが「3」かつデータ項目13bが「2」の場合に、ラベル情報13cを「YES」と予測するものであることが考えられる。また、例えば、モデル15は、複数の判定ルールそれぞれの重要性を示す指標値を含む。
【0020】
処理部12は、上記の学習処理の実行結果から、複数の特徴情報を含む特徴情報集合16と、複数の指標値を含む指標値集合17とを取得する。複数の特徴情報それぞれは、学習データ集合14に含まれる複数のデータ項目のうちラベル情報13cに関する判定に使用される2以上のデータ項目の組み合わせを示す。特徴情報集合16に含まれる複数の特徴情報は、異なるデータ項目の組み合わせを示す。例えば、1つの特徴情報が示すデータ項目の組み合わせは、モデル15に含まれる1つの判定ルールが規定する離散化データ値の条件に使用されているデータ項目の組み合わせである。例えば、ある判定ルールが、データ項目13aが「3」かつデータ項目13bが「2」という条件を規定している場合、データ項目13aとデータ項目13bの組み合わせを示す特徴情報が生成される。複数の指標値は、複数の特徴情報に対応し、個々の特徴情報の重要性を示す。例えば、指標値として、モデル15において1つの判定ルールに対応付けられた指標値が使用される。
【0021】
処理部12は、指標値集合17に含まれる指標値に基づいて、特徴情報集合16に含まれる複数の特徴情報のうち1以上の特徴情報を選択する。例えば、処理部12は、高い重要性を示す指標値が対応付けられた特徴情報から優先的に選択する。ただし、処理部12は、選択した1以上の特徴情報の中に、同じデータ項目が所定回数を超えて出現しないように特徴情報を選択してもよい。例えば、処理部12は、同じデータ項目が高々1回しか出現しないように、特徴情報集合16から1以上の特徴情報を選択する。
【0022】
処理部12は、選択した1以上の特徴情報に基づいて、前処理としての離散化に用いる基準を変更する。例えば、処理部12は、データ項目値が取り得る数値範囲の分割方法を変更するなど、データ項目値の分類方法を変更する。離散化の基準が変更されることで、前処理によって学習データ集合13が、学習データ集合14とは異なる学習データ集合に変換されることになる。例えば、処理部12は、新たな前処理後の学習データ集合を用いて学習処理を再実行し、新たなモデルを学習する。処理部12は、再学習されたモデルを機械学習結果として出力してもよい。また、処理部12は、離散化の基準の変更と学習処理の再実行とを複数回繰り返すようにしてもよい。
【0023】
ここで、処理部12は、選択した特徴情報が示す2以上のデータ項目の組み合わせを考慮して、離散化の基準を変更することになる。例えば、処理部12は、2以上のデータ項目の組み合わせが示す多次元空間において、ラベル情報13cの分布を算出する。処理部12は、多次元空間の中から、ラベル情報13cの値が同一である学習データが相対的に密集している領域を検出し、検出した領域の境界が明確になるように、それら2以上のデータ項目それぞれの離散化の基準を調整する。2以上のデータ項目を組み合わせて離散化を行うことで、データ項目単位で離散化を行う場合よりもデータ項目値の分類方法が適切になると期待される。なお、初回の離散化は、データ項目単位で行ってもよい。
【0024】
第1の実施の形態の機械学習装置10によれば、所定の基準で離散化が行われた学習データを用いて学習処理が実行され、その学習処理の実行結果に基づいて、重要なデータ項目の組み合わせが判定される。そして、重要なデータ項目の組み合わせを考慮して、離散化の基準が変更される。第1の実施の形態では、前処理としてデータ項目の離散化が行われるため、離散化を行わない場合と比べて、過学習を抑制して汎用性の高いモデルを学習することができ、モデルの精度を向上させることができる。
【0025】
また、離散化の基準の変更後は、2以上のデータ項目を組み合わせて離散化が行われるため、多次元空間上で学習データの分布を考慮することができる。よって、データ項目単位で離散化を行う場合と比べて、データ項目値をより適切に分類でき、モデルの精度を向上させることができる。また、重要なデータ項目の組み合わせに限定して離散化が行われるため、様々なデータ項目の組み合わせに対して網羅的に離散化を行う場合と比べて、前処理や学習処理の負荷を低減できる。また、データ項目値の分類が過度に細分化されるのを抑制でき、過学習を抑制してモデルの精度を向上させることができる。また、学習処理の実行結果に基づいてデータ項目の組み合わせが選択されるため、モデルの精度への影響が大きい重要なデータ項目の組み合わせを見逃すリスクを低減できる。
【0026】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の機械学習装置は、訓練データを用いて機械学習により、複数の説明変数の値の組み合わせから目的変数の値を予測するモデルを学習する。第2の実施の形態では、機械学習アルゴリズムとしてWide Learning(登録商標)を使用する。第2の実施の形態の機械学習装置は、クライアント装置でもよいしサーバ装置でもよい。また、第2の実施の形態の機械学習装置を、コンピュータや情報処理装置と言うこともできる。
【0027】
図2は、第2の実施の形態の機械学習装置のハードウェア例を示す図である。
機械学習装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。機械学習装置100が有するこれらのユニットは、バスに接続されている。機械学習装置100は、第1の実施の形態の機械学習装置10に対応する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0028】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0029】
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性半導体メモリである。機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【0030】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【0031】
画像インタフェース104は、CPU101からの命令に従って、機械学習装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。機械学習装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
【0032】
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。機械学習装置100に複数種類の入力デバイスが接続されてもよい。
【0033】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0034】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0035】
次に、機械学習に用いる訓練データについて説明する。
図3は、訓練データテーブルの例を示す図である。
訓練データテーブル131は、複数のサンプルに対応する複数のレコードを含む訓練データを記憶する。訓練データテーブル131に記憶される訓練データは、製品の製造時に製造ラインにおいて収集されたデータである。訓練データテーブル131に含まれる各サンプルは、ID、複数の説明変数の値および目的変数の値を含む。
【0036】
IDは、サンプルを識別する識別子である。説明変数は、不良品の発生と関連がある可能性がある指標である。説明変数を特徴量と言うことがある。説明変数には、温度や薬品量が含まれる。説明変数の値は、製品の製造時にセンサデバイスを用いて測定される。温度は、製造時に測定された製品の温度である。薬品量は、製品の製造に使用された特定の薬品の量である。目的変数は、製造された製品が不良品であるか否かを示すフラグである。フラグ=1は製品が不良品であることを示し、フラグ=0は製品が良品であることを示す。製品が不良品であるか否かは、製品の製造直後の検査によって判定される。
【0037】
目的変数の値は、製造ラインを流れる一部の製品をサンプリングして人手で検査することで収集してもよい。また、目的変数の値は、製造ラインを流れる一部の製品をサンプリングして精密検査機器で検査することで収集してもよい。第2の実施の形態では、複数の説明変数の値と製品の良否との間の関係を示すモデルを学習する。学習されたモデルを利用することで、製造ラインを流れる各製品に対して測定されたセンサデータから、不良品である可能性がある製品を簡易的に検出できるようにする。
【0038】
ここで、訓練データに対して、機械学習の精度を向上させるための前処理が行われる。前処理には「離散化」が含まれる。第2の実施の形態では、説明変数の取り得る値の個数を減らすことを離散化と言う。温度や薬品量など、取り得る値が多い「連続値」をもつ説明変数が、取り得る値が少数である「離散値」をもつ説明変数に変換される。ある説明変数の取り得る値の範囲を2以上の区間に分割することで、離散化が行われる。
【0039】
離散化は、特定の機械学習アルゴリズムに対して、モデルの精度向上の効果が特に大きい。例えば、後述するWide Learningに対して、離散化の前処理を行うとモデル精度が大きく向上する。また、ランダムフォレストなど他の幾つかの機械学習アルゴリズムに対しても、モデル精度が向上することがある。
【0040】
図4は、前処理後の訓練データテーブルの例を示す図である。
訓練データテーブル132は、訓練データテーブル131に対して離散化の前処理を行うことで生成される。訓練データテーブル132は、訓練データテーブル131と同様に、複数のサンプルに対応する複数のレコードを含む訓練データを記憶する。ただし、訓練データテーブル132の各サンプルには、幾つかの説明変数が追加されている。
【0041】
訓練データテーブル132の各サンプルは、温度に対応する区間1、区間2および区間3の説明変数と、薬品量に対応する区間4、区間5および区間6の説明変数とを含む。区間1、区間2および区間3の説明変数は、温度の値が当該区間に属するか否かを示すフラグである。区間4、区間5および区間6の説明変数は、薬品量の値が当該区間に属するか否かを示すフラグである。フラグ=1は値が当該区間に属することを示し、フラグ=0は値が当該区間に属さないことを示す。ここでは離散化によって、温度の取り得る値が3つの区間に分割され、薬品量の取り得る値が3つの区間に分割されている。サンプル毎に、区間1、区間2および区間3のうちの何れか1つのフラグが1になり、他の2つのフラグが0になる。また、サンプル毎に、区間4、区間5および区間6のうちの何れか1つのフラグが1になり、他の2つのフラグが0になる。
【0042】
ただし、離散化によって分割された区間それぞれに対して新たな説明変数を追加する代わりに、区間それぞれに対して数値を割り当て、属する区間を示す数値をとる説明変数を追加するようにしてもよい。例えば、温度の値が区間1に属する場合に「1」、区間2に属する場合に「2」、区間3に属する場合に「3」をとる説明変数を追加してもよい。また、薬品量の値が区間4に属する場合に「1」、区間5に属する場合に「2」、区間6に属する場合に「3」をとる説明変数を追加してもよい。また、温度や薬品量などの離散化前の説明変数を残しておいてもよいし削除してもよい。説明変数の取り得る値の範囲を2以上の区間に分割する方法については後述する。
【0043】
次に、機械学習アルゴリズムであるWide Learningについて説明する。
図5は、Wide Learningの例を示す図である。
Wide Learningでは、少数の説明変数の値の組み合わせと目的変数の値との間に成立する可能性がある仮説を示すチャンクが網羅的に生成され、それら多数のチャンクの中から、訓練データのもとで信頼性が高い仮説を示すチャンクが採用される。採用されたチャンクの集合がモデルとなる。チャンクが示す仮説は、ある説明変数の値が特定の値であるならば目的変数の値が特定の値になる、という含意の論理命題である。仮説の仮定部分は、2以上の説明変数に関する条件の論理積であることもある。
【0044】
訓練データに含まれるサンプルのうち、仮説の仮定部分に相当する説明変数の値が合致し、かつ、仮説の結論部分に相当する目的変数の値が合致するサンプルの数が、その仮説のヒット数である。ヒット数が多い仮説を示すチャンクほど信頼性が高いと言える。また、仮説の仮定部分に相当する説明変数の値が合致するサンプルのうち、仮説の結論部分に相当する目的変数の値が合致するサンプルの割合が、その仮説のヒット率である。ヒット率が高い仮説を示すチャンクほど信頼性が高いと言える。チャンクの汎用性を高めて過学習を抑制するため、1つのチャンクに含まれる説明変数の個数は閾値以下に制限されることが好ましい。また、ヒット数が閾値以上でありかつヒット率が閾値以上であるチャンクが有効な仮説として採用されることが好ましい。
【0045】
一例として、訓練データテーブル133に記憶された訓練データを用いてWide Learningを行うことを考える。訓練データテーブル133の訓練データに含まれる各サンプルは、性別、免許の有無、婚姻の有無などの説明変数の値を含み、購入の有無を示す目的変数の値を含む。性別は、「男」または「女」の二値データである。免許の有無は、「所有」または「未所有」の二値データである。婚姻の有無は、「既婚」または「未婚」の二値データである。購入の有無は、「購入」または「未購入」の二値データである。
【0046】
Wide Learningでは、複数の説明変数それぞれの取り得る値および目的変数の取り得る値が列挙される。ここでは、性別、免許、婚姻の有無および購入の有無について、上記の値が列挙される。次に、複数の説明変数の中から閾値以下の個数の説明変数が選択される。例えば、1個以上3個以下の説明変数が選択される。そして、選択した説明変数それぞれから値を1つ選択し、目的変数から値を1つ選択することで、1つの仮説を示す1つのチャンクが生成される。説明変数の選択および値の選択を網羅的に行うことで、様々な仮説を示すチャンクが網羅的に生成される。
【0047】
ここでは、訓練データテーブル133から、チャンク141-1~141-8,142-1~142-8,143-1~143-8を含む複数のチャンクが生成される。チャンク141-1~141-8は、説明変数を1個含む。チャンク142-1~142-8は、説明変数を2個含む。チャンク143-1~143-8は、説明変数を3個含む。
【0048】
チャンク141-1は、性別が「男」ならば「購入」という仮説を示す。チャンク141-2は、性別が「男」ならば「未購入」という仮説を示す。チャンク141-3は、性別が「女」ならば「購入」という仮説を示す。チャンク141-4は、性別が「女」ならば「未購入」という仮説を示す。チャンク141-5は、免許が「所有」ならば「購入」という仮説を示す。チャンク141-6は、免許が「所有」ならば「未購入」という仮説を示す。チャンク141-7は、免許が「未所有」ならば「購入」という仮説を示す。チャンク141-8は、免許が「未所有」ならば「未購入」という仮説を示す。
【0049】
チャンク142-1は、性別が「男」かつ免許が「所有」ならば「購入」という仮説を示す。チャンク142-2は、性別が「男」かつ免許が「所有」ならば「未購入」という仮説を示す。チャンク142-3は、性別が「男」かつ免許が「未所有」ならば「購入」という仮説を示す。チャンク142-4は、性別が「男」かつ免許が「未所有」ならば「未購入」という仮説を示す。チャンク142-5は、性別が「男」かつ婚姻が「既婚」ならば「購入」という仮説を示す。チャンク142-6は、性別が「男」かつ婚姻が「既婚」ならば「未購入」という仮説を示す。チャンク142-7は、性別が「男」かつ婚姻が「未婚」ならば「購入」という仮説を示す。チャンク142-8は、性別が「男」かつ婚姻が「未婚」ならば「未購入」という仮説を示す。
【0050】
チャンク143-1は、性別が「男」かつ免許が「所有」かつ婚姻が「既婚」ならば「購入」という仮説を示す。チャンク143-2は、性別が「男」かつ免許が「所有」かつ婚姻が「既婚」ならば「未購入」という仮説を示す。チャンク143-3は、性別が「男」かつ免許が「未所有」かつ婚姻が「既婚」ならば「購入」という仮説を示す。チャンク143-4は、性別が「男」かつ免許が「未所有」かつ婚姻が「既婚」ならば「未購入」という仮説を示す。チャンク143-5は、性別が「男」かつ免許が「所有」かつ婚姻が「未婚」ならば「購入」という仮説を示す。チャンク143-6は、性別が「男」かつ免許が「所有」かつ婚姻が「未婚」ならば「未購入」という仮説を示す。チャンク143-7は、性別が「男」かつ免許が「未所有」かつ婚姻が「未婚」ならば「購入」という仮説を示す。チャンク143-8は、性別が「男」かつ免許が「未所有」かつ婚姻が「未婚」ならば「未購入」という仮説を示す。
【0051】
このようなチャンク141-1~141-8,142-1~142-8,143-1~143-8それぞれに対して、ヒット数やヒット率が算出される。例えば、チャンク142-1について、性別が「男」かつ免許が「所有」のサンプルが100個あり、このうち「購入」のサンプルが60個あるとする。すると、チャンク142-1のヒット数は60でありヒット率は60%である。同様に、チャンク143-1について、性別が「男」かつ免許が「所有」かつ婚姻が「既婚」のサンプルが10個あり、このうち「購入」のサンプルが9個あるとする。すると、チャンク143-1のヒット数は9でありヒット率は90%である。チャンク143-8について、性別が「男」かつ免許が「未所有」かつ婚姻が「未婚」のサンプルが20個あり、このうち「未購入」のサンプルが18個あるとする。すると、チャンク143-8のヒット数は18でありヒット率は90%である。
【0052】
ヒット数が閾値以上かつヒット率が閾値以上のチャンクが、有効なチャンクとして採用される。ただし、ヒット数が閾値以上のチャンクを全て有効なチャンクとして採用してもよいし、ヒット率が閾値以上のチャンクを全て有効なチャンクとして採用してもよい。また、ヒット数やヒット率による閾値を設けず、ヒット数やヒット率の高い順から所定数のチャンクを有効なチャンクとして採用してもよい。有効なチャンクに対しては、それぞれ重要度が算出される。重要度は、ヒット数、ヒット率、ヒット数またはヒット率に比例する指標などであってもよい。ただし、第2の実施の形態では、ロジスティック回帰分析によって算出される重みを使用する。
【0053】
あるサンプルxに対して、数式(1)に示すように、シグモイド関数を用いて確率p(x)が算出される。確率p(x)は、0より大きく1より小さい実数である。確率p(x)は、サンプルxの目的変数の推定値に対応する。確率p(x)が1に近いほど、目的変数の値が1である(例えば、不良品である)可能性が高いことを表し、確率p(x)が0に近いほど、目的変数の値が0である(例えば、良品である)可能性が高いことを表す。数式(1)のz(x)は、数式(2)のように定義される。z(x)は、サンプルxと関係がある1以上のチャンクの推定結果の線形和に相当する。z(x)の取り得る値の範囲は、-∞から+∞である。数式(1)のシグモイド関数によって、このz(x)が0から1の範囲をもつ確率p(x)に変換されることになる。
【0054】
【0055】
【0056】
数式(2)において、αは定数項としての係数であり、βiはi番目のチャンクの重みとしての係数であり、chunki(x)はサンプルxに対するi番目のチャンクの出力である。i番目のチャンクの説明変数の値とサンプルxの説明変数の値とが合致しない場合、chunki(x)は「0」を出力する。この場合、i番目のチャンクはサンプルxと無関係であり、z(x)の値に影響を与えない。i番目のチャンクの説明変数の値とサンプルxの説明変数の値とが合致する場合、chunki(x)は「1」または「-1」を出力する。i番目のチャンクの目的変数の推定値が「1」(例えば、不良品)である場合、chunki(x)は「1」を出力する。i番目のチャンクの目的変数の推定値が「0」(例えば、良品)である場合、chunki(x)は「-1」を出力する。
【0057】
z(x)の値が大きいほど、サンプルxと関係があるチャンクの多くが目的変数の値を「1」と推定したことになる。z(x)の値が小さいほど、サンプルxと関係があるチャンクの多くが目的変数の値を「0」と推定したことになる。ただし、係数α,βiを変えることでz(x)の値が変化する。z(x)から変換された確率p(x)とサンプルxの目的変数の真値との差が誤差である。そこで、回帰分析により、多数のサンプルについての誤差の合計が最小になるように係数α,βiが決定される。このようにして決定された係数βiが、i番目のチャンクの重要度となる。
【0058】
次に、訓練データの前処理として行う離散化について説明する。
離散化では、説明変数の値の範囲を2以上の区間に分割し、同一区間に属する値を同一視することで、説明変数の値を近似しその取り得る値の個数を減少させる。
【0059】
離散化の1つの単純な方法として、説明変数の値の範囲を等間隔に分割する方法が考えられる。例えば、訓練データに含まれる説明変数の値を昇順にソートし、最小値から最大値までの範囲を算出し、その範囲を所定の区間数で割って1区間当たりの幅を決定し、最小値から最大値までの範囲を当該幅ずつ区切る方法が考えられる。また、離散化の1つの単純な方法として、説明変数の値の範囲を等頻度で分割する方法が考えられる。例えば、訓練データに含まれるサンプルを説明変数の値の昇順にソートし、サンプル総数をカウントし、サンプル総数を所定の区間数で割って1区間当たりのサンプル数を算出し、ソートしたサンプルを当該サンプル数ずつ区切る方法が考えられる。
【0060】
しかし、等間隔または等頻度による離散化は、説明変数の値の分布のみに着目するものであり、サンプルがもつ目的変数の値に着目していない。目的変数の値を考慮した方が、目的変数の値に影響を与える説明変数の値の境界を機械学習によって発見することが容易となる。すなわち、目的変数の値を考慮することで、機械学習の学習結果の精度が向上する。そこで、エントロピーに基づく離散化が考えられる。
【0061】
図6は、エントロピーに基づく離散化の例を示す図である。
エントロピーに基づく離散化(エントロピーベースの離散化)では、訓練データに含まれるサンプルを説明変数の値の昇順にソートし、同一の目的変数の値をもつサンプルが集中している区間を検出する。同一の区間の中では、目的変数の値ができる限り均一であることが好ましい。目的変数の値が「1」であるサンプルの集まりや目的変数の値が「0」であるサンプルの集まりは、できる限り分割しないようにする。目的変数の値が「1」であるサンプルと目的変数の値が「0」であるサンプルとが混在した集合は、できる限り目的変数の値に応じて分かれるようにする。エントロピーに基づく離散化では、同一の目的変数の値をもつサンプルの分布に応じて、複数の区間の境界が決定される。隣接する2つの区間の境界をカットポイントと言うことがある。
【0062】
例えば、薬品量を示す説明変数に着目すると、訓練データに含まれる複数のサンプルが薬品量の昇順にソートされる。これにより、薬品量を示す一次元の直線上に複数のサンプルが並ぶ。この直線上で、目的変数の値の偏りが最も大きくなるように、カットポイント151を決定する。これにより、分割前の数値範囲が、薬品量がカットポイント151未満である区間152(区間X)と、薬品量がカットポイント151以上である区間153(区間Y)とに分割される。区間152は、目的変数の値が「1」(不良品)であるサンプルが多い区間であり、区間153は、目的変数の値が「0」(良品)であるサンプルが多い区間である。区間152のサンプルの目的変数の値が「1」に偏り、区間153のサンプルの目的変数の値が「0」に偏るように、カットポイント151が決定されている。
【0063】
分割前の範囲に属するサンプルの総数がSIZEであり、分割後の区間152に属するサンプルの数がsizeAであり、分割後の区間153に属するサンプルの数がsizeBである。SIZE=sizeA+sizeBである。分割後の区間152,153それぞれの中で、更に再帰的にカットポイントを設定することもできる。再帰的分割は、目的変数の値が偏った区間を効率的に生じさせることができる限り繰り返される。
【0064】
エントロピーに基づく離散化の計算方法を、数式を用いて説明する。分割前の数値範囲の中から1つのカットポイントcutを仮に選択する。すると、分割前のサンプル集合allが、カットポイントcut未満の説明変数の値をもつサンプル集合Aと、カットポイントcut以上の説明変数の値をもつサンプル集合Bとに分割される。
【0065】
サンプル集合AのエントロピーH(A)が、数式(3)のように算出される。数式(3)のP(A)は、サンプル集合Aに属するサンプルのうち、目的変数の値が「1」であるサンプルの割合である。また、サンプル集合BのエントロピーH(B)が、数式(4)のように算出される。数式(4)のP(B)は、サンプル集合Bに属するサンプルのうち、目的変数の値が「1」であるサンプルの割合である。カットポイントcutにおけるエントロピーH(cut)は、数式(5)のように、サンプル集合A,Bのサンプル数の比に応じてエントロピーH(A),H(B)を加重平均したものとなる。このエントロピーH(cut)が最小になるようなカットポイントcutが探索される。
【0066】
【0067】
【0068】
【0069】
エントロピー最小のカットポイントcutが探索されると、次に、このカットポイントcutで区間を分割するか否かが判定される。まず、分割前のサンプル集合allのエントロピーH(all)が、数式(6)のように算出される。数式(6)のP(all)は、サンプル集合allに属するサンプルのうち、目的変数の値が「1」であるサンプルの割合である。次に、数式(7)のように、エントロピーH(all)とエントロピーH(cut)との差が、ゲインとして算出される。また、数式(8)のようにΔが算出される。数式(8)のk0は、サンプル集合allの中に存在する異なる目的変数の個数(教師ラベルのクラス数)である。kAはサンプル集合Aの教師ラベルのクラス数であり、kBはサンプル集合Bの教師ラベルのクラス数である。目的変数の値が「1」または「0」の二値である場合、k0=kA=kB=2であることが多い。
【0070】
【0071】
【0072】
【0073】
そして、数式(9)のように、サンプル集合allのサンプル数SIZEと数式(8)で定義されるΔとを用いて閾値が算出され、数式(7)で定義されるゲインと閾値とが比較される。ゲインが閾値より大きい場合、カットポイントcutを採用し、カットポイントcutで区間を分割すると判定される。ゲインが閾値以下である場合、カットポイントcutを採用せず、カットポイントcutで区間を分割しないと判定される。新たなカットポイントを採用した場合、分割後の区間に属するサンプルの集合をサンプル集合allとみなして、上記の分割判定を再帰的に実行する。分割後の全ての区間に対して分割判定を行い、それ以上区間を細分化しないと判定した時点で、離散化が終了する。
【0074】
【0075】
ここで、説明変数毎に離散化を行った場合の問題点について説明する。
図7は、サンプルの分布と離散化の関係例を示す図である。
ここでは、説明変数として薬品量と温度に着目する。グラフ160は、薬品量を示す横軸と温度を示す縦軸とによって形成される二次元空間にサンプルを配置した分布図である。薬品量に着目すると、サンプル間の薬品量の分布は、グラフ160に含まれるサンプルを横軸に投影したものとなる。また、温度に着目すると、サンプル間の温度の分布は、グラフ160に含まれるサンプルを縦軸に投影したものとなる。
【0076】
薬品量に対してエントロピーに基づく離散化を行うと、カットポイント161が検出される。薬品量がカットポイント161未満の区間では、目的変数の値が「0」のサンプルが大部分を占める。薬品量がカットポイント161以上の区間では、目的変数の値が「0」のサンプルと目的変数の値が「1」のサンプルとが一定割合で混在している。横軸に投影された分布を見る限り、薬品量がカットポイント161以上の区間は、目的変数の値が偏っている集まりが存在しないためこれ以上細分化されない。
【0077】
また、温度に対してエントロピーに基づく離散化を行うと、カットポイント163,164が検出される。温度がカットポイント164未満の区間では、目的変数の値が「0」のサンプルと目的変数の値が「1」のサンプルとが一定割合で混在している。温度がカットポイント164以上かつカットポイント163未満の区間では、目的変数の値が「0」のサンプルが大部分を占める。温度がカットポイント163以上の区間では、目的変数の値が「0」のサンプルと目的変数の値が「1」のサンプルとが一定割合で混在している。
【0078】
このようにカットポイント161,163,164を設定すると、薬品量と温度によって形成される二次元空間が、領域165-1~165-6に分割されることになる。領域165-1には、薬品量がカットポイント161未満かつ温度がカットポイント163以上のサンプルが属する。領域165-2には、薬品量がカットポイント161未満かつ温度がカットポイント163未満かつ温度がカットポイント164以上のサンプルが属する。領域165-3には、薬品量がカットポイント161未満かつ温度がカットポイント164未満のサンプルが属する。領域165-4には、薬品量がカットポイント161以上かつ温度がカットポイント163以上のサンプルが属する。領域165-5には、薬品量がカットポイント161以上かつ温度がカットポイント163未満かつ温度がカットポイント164以上のサンプルが属する。領域165-6には、薬品量がカットポイント161以上かつ温度がカットポイント164未満のサンプルが属する。
【0079】
しかし、領域165-4,165-6は細分化が不十分である。領域165-4は、薬品量が小さい部分領域では目的変数の値が「1」のサンプルが大部分を占め、薬品量が大きい部分領域では目的変数の値が「0」のサンプルが大部分を占めるという偏りをもつ。領域165-6は、薬品量が小さい部分領域では目的変数の値が「0」のサンプルが大部分を占め、薬品量が大きい部分領域では目的変数の値が「1」のサンプルが大部分を占めるという偏りもつ。薬品量についてカットポイントを1つ追加すれば、目的変数の値が「1」のサンプルと目的変数の値が「0」のサンプルとの境界の精度が向上する。
【0080】
このように、離散化を説明変数単位で行い、目的変数の値の分布を一次元で評価すると、好ましいカットポイントを見逃す可能性がある。これに対して、2以上の説明変数の組み合わせを考慮して離散化を行い、目的変数の値の分布を多次元で評価することで、目的変数の値が異なるサンプルの間の境界を検出しやすくなる。その結果、機械学習によって生成されるモデルの精度が向上する可能性がある。
【0081】
ただし、離散化で考慮する説明変数の組み合わせをどの様に絞り込むかが問題となる。様々な説明変数の組み合わせを網羅的に考慮すると、ある説明変数に対して多数のカットポイントが設定され、説明変数の取り得る値の範囲が過剰に細分化されるおそれがある。区間を過剰に細分化すると、離散化の効果が減退してしまい、過学習によって訓練データに過度に依存したモデルが生成されてしまうおそれがある。また、区間を過剰に細分化すると、訓練データの前処理およびその後の機械学習の負荷が高くなる。また、目的変数の値に影響を与える重要な説明変数は、訓練データに含まれる説明変数の一部であるため、多数のカットポイントの全てがモデル精度の向上に寄与するわけではない。
【0082】
そこで、第2の実施の形態では、Wide Learningを仮に実行し、Wide Learningの学習結果に基づいて重要な説明変数の組を推定する。そして、重要な説明変数の組に絞り込んで離散化を行い、Wide Learningを再度実行する。これにより、重要なカットポイントを効率的に検出してモデル精度を効率的に向上させる。
【0083】
図8は、離散化に使用する説明変数の組の選択例を示す図である。
機械学習装置100は、訓練データに対して説明変数毎の離散化を前処理として行い、前処理後の訓練データを用いて1回目のWide Learningを実行する。ただし、離散化を行わない訓練データを用いて1回目のWide Learningを実行するようにしてもよい。機械学習装置100は、1回目のWide Learningの学習結果からチャンクテーブル134を生成する。チャンクテーブル134は、有効な仮説を示す複数のチャンクの情報を記憶する。チャンクの情報には、仮説の仮定部分に相当する説明変数の値の組み合わせと、前述の方法で算出されたチャンクの重要度とが含まれる。チャンクテーブル134に登録された複数のチャンクは、重要度の降順にソートされる。
【0084】
例えば、第1のチャンクは、変数Aの値が3以上かつ変数Bの値が4以上のサンプルについて目的変数の値を推定するものであり、その重要度が2.33である。第2のチャンクは、変数Cの値が3以上かつ変数Dの値が4以上のサンプルについて目的変数の値を推定するものであり、その重要度が1.18である。第3のチャンクは、変数Aの値が0.2以下かつ変数Bの値が3以上のサンプルについて目的変数の値を推定するものであり、その重要度が0.92である。第4のチャンクは、変数Aの値が0.2以下かつ変数Bの値が1以上のサンプルについて目的変数の値を推定するものであり、その重要度が0.86である。第5のチャンクは、変数Aの値が2以下かつ変数Dの値が2以下のサンプルについて目的変数の値を推定するものであり、その重要度が0.77である。第6のチャンクは、変数Aの値が0.2以下かつ変数Dの値が0.1以下のサンプルについて目的変数の値を推定するものであり、その重要度が0.63である。
【0085】
なお、
図8の例ではチャンクテーブル134に登録されたチャンクは全て2個の説明変数をもつが、チャンク1つ当たりの説明変数の個数が同一になるとは限らない。Wide Learningにおいてチャンク1つ当たりの説明変数の個数を3個に制限した場合、チャンクテーブル134には、説明変数の個数が1個のチャンクと2個のチャンクと3個のチャンクとが混在する可能性がある。以下の処理で参照するチャンクは、説明変数の個数が2個以上であればよく、説明変数の個数が不均一であってよい。
【0086】
機械学習装置100は、チャンクテーブル134に出現する説明変数の組を、重要な説明変数の組と推定する。ただし、同じ説明変数に対して多数のカットポイントが設定されるのを抑制するため、1つの説明変数は1回のみ離散化の対象となるようにする。離散化の対象とする説明変数の組は、重要度または出現数に基づいて選別する。
【0087】
重要度基準では、機械学習装置100は、チャンクテーブル134から重要度テーブル135を生成する。重要度テーブル135は、説明変数の組と重要度とを対応付ける。重要度テーブル135の説明変数の組は、チャンクテーブル134に出現する説明変数の組である。重要度テーブル135の説明変数の組は、2個以上の説明変数の集合であればよく、説明変数の個数が不均一でもよい。重要度テーブル135の重要度は、ある説明変数の組を含む1以上のチャンクに付与された重要度のうち、最も高い重要度である。重要度テーブル135の説明変数の組は、重要度の降順にソートされる。
【0088】
例えば、チャンクテーブル134の第1のチャンク、第3のチャンクおよび第4のチャンクが、変数Aと変数Bの組を含む。そこで、変数Aと変数Bの組に対して、最大の重要度である重要度2.33が対応付けられる。また、チャンクテーブル134の第2のチャンクが、変数Cと変数Dの組を含む。そこで、変数Cと変数Dの組に対して、重要度1.18が対応付けられる。また、チャンクテーブル134の第5のチャンクおよび第6のチャンクが、変数Aと変数Dの組を含む。そこで、変数Aと変数Dの組に対して、最大の重要度である重要度0.77が対応付けられる。
【0089】
出現数基準では、機械学習装置100は、チャンクテーブル134から出現数テーブル136を生成する。出現数テーブル136は、説明変数の組と出現数とを対応付ける。出現数テーブル136の説明変数の組は、チャンクテーブル134に出現する説明変数の組である。出現数テーブル136の説明変数の組は、2個以上の説明変数の集合であればよく、説明変数の個数が不均一でもよい。出現数テーブル136の出現数は、チャンクテーブル134に出現するチャンクのうち、ある説明変数の組を含むチャンクの個数である。出現数テーブル136の説明変数の組は、出現数の降順にソートされる。
【0090】
例えば、チャンクテーブル134の第1のチャンク、第3のチャンクおよび第4のチャンクが、変数Aと変数Bの組を含む。そこで、変数Aと変数Bの組に対して、出現数3が対応付けられる。また、チャンクテーブル134の第5のチャンクおよび第6のチャンクが、変数Aと変数Dの組を含む。そこで、変数Aと変数Dの組に対して、出現数2が対応付けられる。また、チャンクテーブル134の第2のチャンクが、変数Cと変数Dの組を含む。そこで、変数Cと変数Dの組に対して、出現数1が対応付けられる。
【0091】
機械学習装置100は、重要度テーブル135または出現数テーブル136に基づいて、離散化の対象とする説明変数の組を列挙した対象変数テーブル137を生成する。対象変数テーブル137では、同一の説明変数は1回のみ出現する。
【0092】
重要度基準では、機械学習装置100は、重要度テーブル135から説明変数の組を重要度の高い順に抽出する。抽出した説明変数の組に含まれる全ての説明変数が未使用である場合、機械学習装置100は、抽出した説明変数の組を採用して対象変数テーブル137に登録する。抽出した説明変数の組に含まれる少なくとも1つの説明変数が使用済みである場合、機械学習装置100は、抽出した説明変数の組を破棄する。
【0093】
例えば、重要度テーブル135から変数Aと変数Bの組が抽出される。変数Aも変数Bも未使用であるため、変数Aと変数Bの組が対象変数テーブル137に登録される。次に、重要度テーブル135から変数Cと変数Dの組が抽出される。変数Cも変数Dも未使用であるため、変数Cと変数Dの組が対象変数テーブル137に登録される。次に、重要度テーブル135から変数Aと変数Dの組が抽出される。変数Aが使用済みであるため、変数Aと変数Dの組は破棄されて対象変数テーブル137に登録されない。重要度基準によれば、重要度の高い説明変数の組み合わせを漏らさず離散化できる。
【0094】
出現数基準では、機械学習装置100は、出現数テーブル136から説明変数の組を出現数の多い順に抽出する。抽出した説明変数の組に含まれる全ての説明変数が未使用である場合、機械学習装置100は、抽出した説明変数の組を採用して対象変数テーブル137に登録する。抽出した説明変数の組に含まれる少なくとも1つの説明変数が使用済みである場合、機械学習装置100は、抽出した説明変数の組を破棄する。
【0095】
例えば、出現数テーブル136から変数Aと変数Bの組が抽出される。変数Aも変数Bも未使用であるため、変数Aと変数Bの組が対象変数テーブル137に登録される。次に、出現数テーブル136から変数Aと変数Dの組が抽出される。変数Aが使用済みであるため、変数Aと変数Dの組は破棄されて対象変数テーブル137に登録されない。次に、出現数テーブル136から変数Cと変数Dの組が抽出される。変数Cも変数Dも未使用であるため、変数Cと変数Dの組が対象変数テーブル137に登録される。出現数基準によれば、目的変数の値と相関が強い説明変数の組み合わせを離散化できる。
【0096】
次に、複数の説明変数の組に対するエントロピーに基づく離散化を説明する。
図9は、複数の説明変数の離散化例を示す図である。
複数の説明変数の離散化は、単一の説明変数の離散化と同様に、数式(3)~(9)に従って行われる。ただし、複数の説明変数の離散化には、組み合わされた複数の説明変数の中から、次にカットポイントを追加する1つの説明変数を選択することが含まれる。
【0097】
具体的には、複数の説明変数それぞれに対して、数式(3)~(5)に従って、エントロピー最小のカットポイントが探索される。複数の説明変数に対応する複数のカットポイントの中から、エントロピー最小のカットポイントが選択される。これにより、次に着目する説明変数と追加するカットポイントの候補とが決まる。1つの説明変数の1つのカットポイントが決まると、数式(6)~(9)に従って、当該カットポイントを採用するか否か判定される。当該カットポイントのゲインが閾値を超える場合は当該カットポイントが採用され、ゲインが閾値以下である場合は当該カットポイントが採用されない。1つの説明変数に1つのカットポイントが追加されると、複数の説明変数によって形成される多次元空間の領域が分割される。更なるカットポイントの追加および領域分割が発生しなくなるまで、上記の領域分割が階層的に実行される。
【0098】
例えば、薬品量と温度の2つの説明変数を組み合わせて離散化を行うことを考える。
図7に示したグラフ160の二次元空間が、次のように複数の領域に細分化される。まず、訓練データに含まれる複数のサンプルの薬品量が昇順にソートされる。また、訓練データに含まれる複数のサンプルの温度が昇順にソートされる。
【0099】
次に、薬品量について、目的変数の値の偏りからエントロピー最小のカットポイントが探索される。これとは独立に、温度について、目的変数の値の偏りからエントロピー最小のカットポイントが探索される。ここでは、薬品量のカットポイント161のエントロピーが、温度のカットポイントより小さいとする。また、カットポイント161のゲインが閾値より大きいとする。すると、薬品量に対してカットポイント161が追加される。これにより、グラフ160の二次元空間が、薬品量がカットポイント161未満である領域166-1と、薬品量がカットポイント161以上である領域とに分割される。
【0100】
次に、領域166-1に着目し、領域166-1に属するサンプルを用いて、薬品量についてエントロピー最小のカットポイントが探索され、温度についてエントロピー最小のカットポイントが探索される。領域166-1に属するサンプルの集合が、前述のサンプル集合allに相当することになる。領域166-1では目的変数の値が「0」のサンプルが大部分を占めるため、何れのカットポイントも採用されない。よって、領域166-1に対しては、これ以上の分割判定は行われない。
【0101】
次に、領域166-1外の領域に着目し、領域166-1外の領域に属するサンプルを用いて、薬品量についてエントロピー最小のカットポイントが探索され、温度についてエントロピー最小のカットポイントが探索される。領域166-1外の領域に属するサンプル、すなわち、薬品量がカットポイント161以上のサンプルの集合が、前述のサンプル集合allに相当することになる。ここでは、温度のカットポイント163のエントロピーが、薬品量のカットポイントより小さいとする。また、カットポイント163のゲインが閾値より大きいとする。すると、温度に対してカットポイント163が追加される。これにより、領域166-1外の領域が、温度がカットポイント163以上である領域166-2と、温度がカットポイント163未満である領域166-3とに分割される。
【0102】
図10は、複数の説明変数の離散化例を示す図(続き)である。
次に、領域166-3に着目し、領域166-3に属するサンプルを用いて、薬品量についてエントロピー最小のカットポイントが探索され、温度についてエントロピー最小のカットポイントが探索される。領域166-3に属するサンプルの集合が、前述のサンプル集合allに相当することになる。ここでは、温度のカットポイント164のエントロピーが、薬品量のカットポイントより小さいとする。また、カットポイント164のゲインが閾値より大きいとする。すると、温度に対してカットポイント164が追加される。これにより、領域166-3が、温度がカットポイント164以上である領域166-6と、温度がカットポイント164未満である領域とに分割される。
【0103】
次に、領域166-2に着目し、領域166-2に属するサンプルを用いて、薬品量についてエントロピー最小のカットポイントが探索され、温度についてエントロピー最小のカットポイントが探索される。領域166-2に属するサンプルの集合が、前述のサンプル集合allに相当することになる。ここでは、薬品量のカットポイント162のエントロピーが、温度のカットポイントより小さいとする。また、カットポイント162のゲインが閾値より大きいとする。すると、薬品量に対してカットポイント162が追加される。これにより、領域166-2が、薬品量がカットポイント162未満である領域166-4と、薬品量がカットポイント162以上である領域166-5とに分割される。
【0104】
同様にして、領域166-3のうち領域166-6外の領域が、カットポイント162によって領域166-7と領域166-8に分割される。領域166-4,166-8では、目的変数の値が「1」のサンプルが大部分を占めるため、何れのカットポイントも採用されない。よって、領域166-4,166-8に対しては、これ以上の分割判定は行われない。また、領域166-5,166-6,166-7では、目的変数の値が「0」のサンプルが大部分を占めるため、何れのカットポイントも採用されない。よって、領域166-5,166-6,166-7に対しては、これ以上の分割判定は行われない。
【0105】
これにより、離散化が終了する。離散化により、薬品量に対してカットポイント161,162が設定され、温度に対してカットポイント163,164が設定される。薬品量の値の範囲は、カットポイント161,162によって3つの区間に分割され、温度の値の範囲は、カットポイント163,164によって3つの区間に分割される。その結果、例えば、
図4に示すように6個の説明変数が訓練データに追加される。
【0106】
次に、機械学習装置100の機能および処理手順について説明する。
図11は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、訓練データ記憶部121、モデル記憶部122、前処理部123および機械学習部124を有する。訓練データ記憶部121およびモデル記憶部122は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。前処理部123および機械学習部124は、例えば、プログラムを用いて実現される。
【0107】
訓練データ記憶部121は、訓練データテーブル131を記憶する。モデル記憶部122は、Wide Learningによって学習されたモデルを記憶する。モデルは、1以上の説明変数の値と目的変数の値とを対応付けた仮説をそれぞれ示す複数のチャンクを含む。複数のチャンクそれぞれには重要度が付与される。
【0108】
前処理部123は、訓練データ記憶部121に記憶された訓練データテーブル131が示す訓練データに対して前処理を行い、前処理後の訓練データを示す訓練データテーブル132を生成する。前処理部123は、訓練データテーブル132を機械学習部124に提供する。前処理には説明変数の値の離散化が含まれる。前処理部123は、単一変数離散化部125、変数選択部126および複数変数離散化部127を含む。
【0109】
単一変数離散化部125は、仮の前処理として、訓練データに含まれる複数の説明変数それぞれに対してエントロピーに基づく離散化を行う。単一変数離散化部125は、例えば、あるオリジナルの説明変数の値が特定の区間に属しているか否かを示す補助的なフラグ型の説明変数を、訓練データに対して追加する。単一変数離散化部125は、説明変数毎の離散化が行われた訓練データを機械学習部124に提供する。ただし、仮の前処理を行わずにオリジナルの訓練データを機械学習部124に提供してもよい。
【0110】
変数選択部126は、仮の前処理を行った訓練データに基づいて学習された仮のモデルを、機械学習部124から取得する。仮のモデルは、それぞれ重要度が付与された複数のチャンクを含む。各チャンクは、仮説に使用される説明変数の組み合わせを含む。変数選択部126は、機械学習部124から取得した仮のモデルを分析し、目的変数との関係で重要である可能性が高い説明変数の組を列挙した対象変数テーブル137を生成する。
【0111】
複数変数離散化部127は、変数選択部126が生成した対象変数テーブル137を参照して、前処理として、少なくとも一部の説明変数に対してエントロピーに基づく離散化を行う。離散化の対象となる訓練データは、訓練データ記憶部121に記憶されたオリジナルの訓練データ、すなわち、仮の前処理を行う前の訓練データである。
【0112】
複数変数離散化部127は、対象変数テーブル137に列挙された説明変数の組毎に、当該説明変数の組によって形成される多次元空間を分割する分割処理を行う。複数変数離散化部127は、分割処理を通じて、当該説明変数の組に含まれる2以上の説明変数それぞれに対して1以上のカットポイントを設定し、カットポイントによって各説明変数の値の範囲を2以上の区間に分割する。複数変数離散化部127は、例えば、あるオリジナルの説明変数の値が特定の区間に属しているか否かを示す補助的なフラグ型の説明変数を、訓練データに対して追加する。複数変数離散化部127は、複数の説明変数を組み合わせた離散化が行われた訓練データを機械学習部124に提供する。
【0113】
機械学習部124は、前処理部123から取得した訓練データを用いてWide Learningを実行し、学習されたモデルをモデル記憶部122に格納する。機械学習部124は、更に、学習されたモデルを表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。ここで、機械学習部124は、前処理部123から仮の前処理を行った訓練データまたは前処理を行わない訓練データを取得し、当該訓練データに対するWide Learningの学習結果を、仮の学習結果として前処理部123に提供する。その後、機械学習部124は、前処理部123から正規の前処理を行った訓練データを取得し、当該訓練データに対する正規の学習結果を生成する。
【0114】
図12は、機械学習の手順例を示すフローチャートである。
(S10)前処理部123は、訓練データ記憶部121から訓練データを取得する。
(S11)単一変数離散化部125は、ステップS10の訓練データに対して、前処理として単一変数離散化を行う。単一変数離散化の詳細は後述する。
【0115】
(S12)機械学習部124は、ステップS11の前処理が行われた訓練データを用いてWide Learningを実行する。Wide Learningの詳細は後述する。
【0116】
(S13)変数選択部126は、ステップS12のWide Learningによって学習されたモデルを取得する。変数選択部126は、学習されたモデルを分析して、離散化対象とする重要な説明変数の組を選択する。変数選択の詳細は後述する。
【0117】
(S14)複数変数離散化部127は、ステップS10の訓練データに対して、前処理として複数変数離散化を行う。複数変数離散化は、ステップS13で選択された説明変数の組に対して行われる。複数変数離散化の詳細は後述する。
【0118】
(S15)機械学習部124は、ステップS14の前処理が行われた訓練データを用いて、ステップS12と同様のWide Learningを実行する。
(S16)機械学習部124は、ステップS15のWide Learningによって学習されたモデルを出力する。例えば、機械学習部124は、学習されたモデルをモデル記憶部122に格納する。また、例えば、機械学習部124は、学習されたモデルに含まれるチャンクを表示装置111に表示する。また、例えば、機械学習部124は、学習されたモデルを他の情報処理装置に送信する。
【0119】
図13は、単一変数離散化の手順例を示すフローチャートである。
単一変数離散化は、前述のステップS11で実行される。
(S20)単一変数離散化部125は、訓練データの中の説明変数を1つ選択する。ここで選択する説明変数は、整数型や実数型など取り得る値の個数が多い「連続値」型の説明変数である。取り得る値の個数が少ない説明変数は、以下の処理の対象外としてよい。
【0120】
(S21)単一変数離散化部125は、訓練データに含まれる複数のサンプルそれぞれからステップS20の説明変数の値を抽出し、説明変数の値を昇順にソートする。
(S22)単一変数離散化部125は、ステップS21でソートされた説明変数の最小値から最大値までの範囲のうち、以下のステップS23~S26の判定をまだ行っていない区間を1つ選択する。最初は、最小値から最大値までの範囲全体が1つの区間とみなされる。当該範囲が分割された場合、分割後の区間が選択対象となる。
【0121】
(S23)単一変数離散化部125は、ステップS22で選択した区間の中で、数式(5)のエントロピーが最小になるカットポイントを検出する。
(S24)単一変数離散化部125は、ステップS23で検出されたカットポイントについて、数式(7)のゲインおよび数式(9)の閾値を算出する。
【0122】
(S25)単一変数離散化部125は、ステップS24で算出されたゲインが、ステップS24で算出された閾値を超えるか判断する。ゲインが閾値を超える場合はステップS26に進み、ゲインが閾値以下である場合はステップS27に進む。
【0123】
(S26)単一変数離散化部125は、ステップS23で検出されたカットポイントを採用し、ステップS22で選択した区間を2つに分割する。なお、ゲインが閾値以下の場合はカットポイントが採用されず、ステップS22の区間はそれ以上分割されない。
【0124】
(S27)単一変数離散化部125は、全ての区間に対してステップS23~S26の判定を行ったか判断する。全ての区間を判定した場合はステップS28に進み、未判定の区間がある場合はステップS22に戻る。
【0125】
(S28)単一変数離散化部125は、ステップS20で選択した説明変数の値の範囲から分割された区間を特定する。そして、単一変数離散化部125は、説明変数の値が各区間に属するか否かを示す新たな説明変数を訓練データに追加する。
【0126】
(S29)単一変数離散化部125は、当初の訓練データに含まれるオリジナルの説明変数を全て選択したか判断する。全ての説明変数を選択した場合は単一変数離散化が終了し、未選択の説明変数がある場合はステップS20に戻る。
【0127】
図14は、Wide Learningの手順例を示すフローチャートである。
Wide Learningは、前述のステップS12,S15で実行される。
(S30)機械学習部124は、訓練データから複数の説明変数および目的変数を抽出し、説明変数および目的変数それぞれの取り得る値を列挙する。
【0128】
(S31)機械学習部124は、ステップS30で抽出された複数の説明変数の中から所定個以下の説明変数を選択する。所定個数は3個など予め決まっている。機械学習部124は、選択した1以上の説明変数それぞれから値を1つ選択し、目的変数から値を1つ選択する。機械学習部124は、選択した1以上の説明変数の値の組み合わせを満たすならば選択した目的変数の値を満たす、という仮説を示すチャンクを生成する。
【0129】
(S32)機械学習部124は、訓練データに含まれる複数のサンプルの中から、説明変数の値がステップS31で生成したチャンクと合致するサンプルを検索する。
(S33)機械学習部124は、ステップS32で検索されたサンプルのうち、目的変数の値がステップS31のチャンクと合致するサンプルの個数をヒット数として算出する。また、機械学習部124は、ステップS32で検索されたサンプルの個数をカウントし、当該個数に対するヒット数の割合をヒット率として算出する。
【0130】
(S34)機械学習部124は、ステップS33で算出されたヒット数が所定の閾値以上であり、かつ、ステップS33で算出されたヒット率が所定の閾値以上であるか判断する。ヒット数の閾値は10個など予め決まっており、ヒット率の閾値は80%など予め決まっている。条件を満たす場合はステップS35に進み、条件を満たさない場合はステップS36に進む。なお、ヒット数とヒット率の何れか一方のみ判定してもよい。
【0131】
(S35)機械学習部124は、ステップS31で生成したチャンクを、有効な仮説を示す有効なチャンクとして採用する。
(S36)機械学習部124は、説明変数の値および目的変数の値の組み合わせを全て選択したか判断する。全ての組み合わせを選択した場合はステップS37に進み、未選択の組み合わせがある場合はステップS31に戻る。
【0132】
(S37)機械学習部124は、訓練データに含まれる複数のサンプルそれぞれに対して、有効な複数のチャンクのうち当該サンプルに該当するチャンクを特定する。該当するチャンクは、説明変数の値が合致するチャンクである。
【0133】
(S38)機械学習部124は、数式(1),(2)のロジスティック回帰分析により、各チャンクに対して適用する重みを算出する。機械学習部124は、ロジスティック回帰分析で算出された重みを、各チャンクの重要度として採用する。
【0134】
(S39)機械学習部124は、有効な複数のチャンクを重要度の降順にソートする。機械学習部124は、チャンクに重要度を付加して出力する。
次に、変数選択の2通りの方法を説明する。
【0135】
図15は、変数選択の手順例を示すフローチャートである。
この変数選択は、前述のステップS13で実行され得る。
(S40)変数選択部126は、重要度の高い方からチャンクを1つ選択する。ここで選択するチャンクは、説明変数が2個以上使用されているチャンクである。説明変数が1個のみであるチャンクは以下の処理の対象外としてよい。
【0136】
(S41)変数選択部126は、チャンクから仮説の仮定部分に出現する説明変数の組を抽出する。説明変数の値については無視してよい。
(S42)変数選択部126は、ステップS41で抽出された説明変数の組が既に出現済みであるか判断する。同じ説明変数の組が出現済みである場合はステップS44に進み、それ以外の場合はステップS43に進む。
【0137】
(S43)変数選択部126は、ステップS41で抽出された説明変数の組に対して、ステップS40で選択したチャンクの重要度を対応付ける。
(S44)変数選択部126は、学習されたモデルに含まれる全てのチャンクを選択したか判断する。全てのチャンクを選択した場合はステップS45に進み、未選択のチャンクがある場合はステップS40に戻る。
【0138】
(S45)変数選択部126は、重要度の高い方から説明変数の組を1つ選択する。
(S46)変数選択部126は、ステップS45で選択した説明変数の組の中に、離散化対象として既に採用された説明変数が含まれるか判断する。採用済みの説明変数が含まれる場合はステップS48に進み、それ以外の場合はステップS47に進む。
【0139】
(S47)変数選択部126は、ステップS45で選択した説明変数の組を、複数変数離散化に使用する離散化対象として採用する。
(S48)変数選択部126は、ステップS40~S43で抽出された説明変数の組を全て選択したか判断する。全ての説明変数の組を選択した場合はステップS49に進み、未選択の説明変数の組がある場合はステップS45に戻る。
【0140】
(S49)変数選択部126は、ステップS47で離散化対象に採用された説明変数の組を列挙したリストを生成し、当該リストを出力する。
図16は、変数選択の他の手順例を示すフローチャートである。
【0141】
この変数選択は、前述のステップS13で実行され得る。
図15の手順と
図16の手順の何れか一方がステップS13で実行されることになる。
(S50)変数選択部126は、学習されたモデルに含まれる複数のチャンクそれぞれから、仮説の仮定部分に出現する説明変数の組を抽出する。
【0142】
(S51)変数選択部126は、ステップS50で抽出された説明変数の組を同一のもの同士でまとめ、説明変数の組毎に出現数をカウントする。
(S52)変数選択部126は、説明変数の組を出現数の降順にソートする。
【0143】
(S53)変数選択部126は、出現数の多い方から説明変数の組を1つ選択する。
(S54)変数選択部126は、ステップS53で選択した説明変数の組の中に、離散化対象として既に採用された説明変数が含まれるか判断する。採用済みの説明変数が含まれる場合はステップS56に進み、それ以外の場合はステップS55に進む。
【0144】
(S55)変数選択部126は、ステップS53で選択した説明変数の組を、複数変数離散化に使用する離散化対象として採用する。
(S56)変数選択部126は、ステップS50~S52で抽出された説明変数の組を全て選択したか判断する。全ての説明変数の組を選択した場合はステップS57に進み、未選択の説明変数の組がある場合はステップS53に戻る。
【0145】
(S57)変数選択部126は、ステップS55で離散化対象に採用された説明変数の組を列挙したリストを生成し、当該リストを出力する。
図15および
図16に示す処理では、チャンクの選択順序について、重要度の高い順(
図15)または出現数の多い順(
図16)でチャンクが選択される。ただし、その他の態様として、例えば、チャンクのヒット数やヒット率に基づいて、ヒット数やヒット率の高い順にチャンクが選択され、変数選択が実行されてもよい。
【0146】
第2の実施の形態で説明した離散化(前処理)について、比較例に対する効果の検証を行った。検証の条件は以下の通りである。なお、以降の説明では、第2の実施の形態で説明した離散化を提案手法と記載することがある。
【0147】
・検証用のデータセットとして、abalone(https://archive.ics.uci.edu/ml/datasets/Abalone)、wine(https://archive.ics.uci.edu/ml/datasets/wine)の2種を用いる。
【0148】
・機械学習アルゴリズムとして、ランダムフォレスト(RF)と、第2の実施の形態で説明したWide Learning(WL)の2種を用いる。
・データセットの80%を訓練用のデータセットとして利用し、残りの20%をラベル推定の精度評価用のデータセットとして利用する。
【0149】
・訓練用のデータセットは、離散化処理におけるカットポイントの決定にも利用する。
・訓練用のデータセットのうちの75%を、カットポイントの決定における学習用のデータセットとして利用し、残りの25%をカットポイントの決定における評価用のデータセットとして利用する。なお、カットポイントの決定における評価用のデータセットは、比較例の場合には、カットポイントの最適化処理に利用される。
【0150】
・まず、訓練用のデータセット(データセットの80%)を用いてカットポイントの決定が実行される。次に、決定されたカットポイントに基づく離散化処理を実行して学習と判定を実行し、判定精度を算出することとする。
【0151】
なお、abaloneは、アワビの性別、各種サイズおよび年齢を対応付けたデータセットである。本検証においては、アワビの年齢が10歳以上か否かを判定する判定を実施した。abaloneのデータセットの件数は、本検証を行った時点で、正例2081件、負例2096件、計4177件である。
【0152】
また、wineは、ワインの度数や甘さ等のワインのステータスを示すデータ項目とワインの査定金額とを対応付けたデータセットである。本検証においては、ワインの査定金額が所定金額より高いか否かを判定する判定を実施した。wineのデータセットの件数は、本検証を行った時点で、正例855件、負例744件、計1599件である。
【0153】
図17は、効果検証の結果を示す図である。
検証結果テーブル171は、効果検証の結果を示す。
図17において、cut、qcut、mdlpおよびmmdlpAllは、比較例の判定精度を示す。また、count_maxおよびweight(abs)_maxは、提案手法の判定精度を示す。
【0154】
cutは、説明変数の値の範囲を等間隔に分割する手法を意味する。qcutは、説明変数の値の範囲を等頻度で分割する手法を意味する。mdlpは、エントロピーベースの離散化を単一の説明変数で行う手法を意味する。mmdlpAllは、エントロピーベースの離散化を複数の説明変数の組合せについて行う手法を意味する。
【0155】
count_maxは、
図16を用いて説明した提案手法を意味する。weight(abs)_maxは、
図15を用いて説明した提案手法を意味する。
図17に示す判定精度は、評価用のデータセットに対する判定処理の全試行に対して、判定が成功した比率を示す。判定精度に示される数値が1の場合、全試行が正解であることを意味し、数値が大きいほど判定精度が高いことを意味する。
【0156】
RFはランダムフォレストを用いた場合の判定精度を意味する。WLはWide Learningを用いた場合の判定精度を意味する。
図17を参照すると、提案手法による前処理を実施した場合の判定精度は、比較例として、実施した何れの手法による精度を上回ることが分かる。また、機械学習アルゴリズムとしてランダムフォレストを利用した場合においても、提案手法による前処理を実施した場合の判定精度が、ほとんどの比較例の精度を上回る。従って、提案手法による前処理の有効性は、機械学習アルゴリズムがWide Learningである場合に限定されないことが分かる。
【0157】
図18は、複数変数離散化の手順例を示すフローチャートである。
複数変数離散化は、前述のステップS14で実行される。
(S60)複数変数離散化部127は、変数選択部126によって離散化対象に採用された説明変数の組のうち、1つの説明変数の組を選択する。
【0158】
(S61)複数変数離散化部127は、訓練データに含まれる複数のサンプルそれぞれから、ステップS60で選択した説明変数の組を構成する説明変数の値を抽出する。複数変数離散化部127は、説明変数毎にその値を昇順にソートする。
【0159】
(S62)複数変数離散化部127は、説明変数毎にステップS61でソートされた最小値から最大値までの範囲を特定し、ステップS60で選択した説明変数の組によって形成される多次元空間を特定する。複数変数離散化部127は、多次元空間のうち、以下のステップS63~S67の判定をまだ行っていない領域を1つ選択する。最初は、説明変数の組によって形成される多次元空間全体が1つの領域とみなされる。多次元空間が分割された場合、分割後の領域が選択対象となる。
【0160】
(S63)複数変数離散化部127は、ステップS62で選択した領域の範囲として、説明変数毎の区間を特定する。複数変数離散化部127は、説明変数毎に当該区間の中で、数式(5)のエントロピーが最小になるカットポイントを検出する。
【0161】
(S64)複数変数離散化部127は、ステップS63で検出された説明変数毎のカットポイントのうち、数式(5)のエントロピーが最小のカットポイントを選択する。また、複数変数離散化部127は、当該カットポイントが属する説明変数を選択する。
【0162】
(S65)複数変数離散化部127は、ステップS64で選択したカットポイントについて、数式(7)のゲインおよび数式(9)の閾値を算出する。
(S66)複数変数離散化部127は、ステップS65で算出されたゲインが、ステップS65で算出された閾値を超えるか判断する。ゲインが閾値を超える場合はステップS67に進み、ゲインが閾値以下である場合はステップS68に進む。
【0163】
(S67)複数変数離散化部127は、ステップS64で選択したカットポイントを採用し、ステップS62で選択した領域を2つに分割する。なお、ゲインが閾値以下の場合はカットポイントが採用されず、ステップS62の領域はそれ以上分割されない。
【0164】
(S68)複数変数離散化部127は、全ての領域に対してステップS63~S67の判定を行ったか判断する。全ての領域を判定した場合はステップS69に進み、未判定の領域がある場合はステップS62に戻る。
【0165】
(S69)複数変数離散化部127は、説明変数毎に分割された区間を特定する。複数変数離散化部127は、説明変数毎に、当該説明変数の値が各区間に属するか否かを示す新たな説明変数を訓練データに追加する。
【0166】
(S70)複数変数離散化部127は、当初の訓練データに含まれるオリジナルの説明変数を全て選択したか判断する。全ての説明変数を選択した場合は複数変数離散化が終了し、未選択の説明変数がある場合はステップS60に戻る。
【0167】
第2の実施の形態の機械学習装置100によれば、簡易的に前処理を行った訓練データまたは前処理を行わない訓練データに対して、仮の機械学習が実行される。仮の機械学習によって学習されたモデルが分析され、目的変数との関連が強い重要な説明変数の組が判定される。そして、重要な説明変数の組に限定して、カットポイントを検出して説明変数の値の区間を設定する離散化が前処理として行われ、当該前処理が行われた訓練データに対して機械学習が実行される。
【0168】
機械学習アルゴリズムとしてWide Learningが用いられる場合は、人にとって理解容易な仮説を示すモデルを生成することができ、モデルの予測結果の根拠を確認することが容易となり予測結果を受け入れやすくなる。また、前処理として説明変数の離散化が行われるため、離散化を行わない場合と比べて過学習を抑制し、汎用性の高いモデルを学習することができる。また、エントロピーに基づく離散化が行われるため、目的変数の値の分布を考慮して説明変数の値の区間が設定されることになる。よって、目的変数の値が変化する境界を検出しやすくなり、学習されたモデルの精度が向上する。
【0169】
また、2以上の説明変数を組み合わせて離散化が行われるため、目的変数の値の分布が多次元空間上で考慮されることになる。よって、説明変数毎に離散化を行う場合と比べて、重要なカットポイントを見逃すリスクを低減できる。また、重要な説明変数の組に限定して離散化が行われるため、様々な説明変数の組に対して網羅的に離散化を行う場合と比べて、前処理や機械学習の負荷を低減できる。また、説明変数の値の範囲が過度に細分化されるのを抑制でき、過学習を抑制してモデル精度を向上できる。また、仮の機械学習の学習結果に基づいて説明変数の組が選択されるため、モデル精度に影響を与える重要なカットポイントを見逃すリスクを低減できる。
【0170】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0171】
10 機械学習装置
11 記憶部
12 処理部
13,14 学習データ集合
13a,13b データ項目
13c ラベル情報
15 モデル
16 特徴情報集合
17 指標値集合