(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-26
(45)【発行日】2024-12-04
(54)【発明の名称】判定プログラム、判定方法、および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241127BHJP
G06F 16/906 20190101ALI20241127BHJP
G16H 50/50 20180101ALI20241127BHJP
【FI】
G06N20/00
G06F16/906
G16H50/50
(21)【出願番号】P 2021028087
(22)【出願日】2021-02-25
【審査請求日】2023-11-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】田中 幹大
(72)【発明者】
【氏名】當眞 重天
(72)【発明者】
【氏名】勝田 江朗
【審査官】山本 俊介
(56)【参考文献】
【文献】特表2020-502658(JP,A)
【文献】国際公開第2019/167556(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 16/906
G16H 50/50
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
機械学習による学習済みのモデルの生成に使用した第1データセットに含まれる複数の第1レコードの項目を、前記複数の第1レコードの前記項目に設定されている第1項目値に基づいて、複数のカテゴリのいずれかに分類し、
前記複数の第1レコードの前記項目に設定されている項目値に基づいて、前記項目が属するカテゴリに応じた手順で第1統計量を算出し、
前記第1データセットと同じ前記項目を有する第2データセットに含まれる複数の第2レコードの前記項目に設定されている第2項目値に基づいて、前記項目が属するカテゴリに応じた手順で第2統計量を算出し、
前記第1統計量と前記第2統計量との類似度に基づいて、前記第2データセットが前記モデルに適合しているか否かを判定する、
処理を実行させる判定プログラム。
【請求項2】
前記第1統計量の算出では、前記複数の第1レコードの前記項目に設定されている前記第1項目値に基づいて、種別の異なる複数の前記第1統計量を算出し、
前記第2統計量の算出では、前記複数の第2レコードの前記項目に設定されている前記第2項目値に基づいて、種別の異なる複数の前記第2統計量を算出し、
前記第1統計量と前記第2統計量との類似度は、複数の前記第1統計量それぞれを要素とする第1特徴ベクトルと、複数の前記第2統計量それぞれを要素とする第2特徴ベクトルとの類似度である、
請求項1記載の判定プログラム。
【請求項3】
前記複数のカテゴリへの分類では、前記項目に設定されている前記第1項目値が数値か否かによって異なるカテゴリに分類し、
前記項目に設定されている前記第1項目値が数値ではない場合、前記第1統計量の算出では、前記第1項目値の種類ごとの出現回数を前記第1統計量として算出し、前記第2統計量の算出では、前記第2項目値の種類ごとの出現回数を前記第2統計量として算出する、
請求項1または2に記載の判定プログラム。
【請求項4】
前記複数のカテゴリへの分類では、前記第1項目値の種類数が2未満か否かによって異なるカテゴリに分類し、
前記項目に設定されている前記第1項目値の種類数が2未満の場合、前記第1統計量の算出では、前記第1項目値を種類に応じて0または1に変換し、変換後の値に基づいて前記第1統計量を算出し、前記第2統計量の算出では、前記第2項目値を種類に応じて0または1に変換し、変換後の値に基づいて前記第2統計量を算出する、
請求項1ないし3のいずれかに記載の判定プログラム。
【請求項5】
前記複数のカテゴリへの分類では、前記第1項目値の種類数の第1レコード数に対する比の値が所定値以上か否かによって異なるカテゴリに分類し、
前記比の値が前記所定値未満の場合、
前記第1統計量の算出では、前記第1データセットの前記項目を前記第1項目値の種類ごとの第1分割項目に分割し、前記複数の第1レコードそれぞれの前記第1分割項目に、対応する種類の前記第1項目値の有無を示す値を設定し、前記第1分割項目ごとに前記第1統計量を算出し、
前記第2統計量の算出では、前記第2データセットの前記項目を前記第1分割項目に分割し、前記複数の第2レコードそれぞれの前記第1分割項目に、対応する種類の前記第2項目値の有無を示す値を設定し、前記第1分割項目ごとに前記第2統計量を算出する、
請求項1ないし4のいずれかに記載の判定プログラム。
【請求項6】
前記比の値が前記所定値以上の場合、
前記第1統計量の算出では、前記第1データセットの前記項目を前記第1項目値に含まれる単語ごとの第2分割項目に分割し、前記複数の第1レコードそれぞれの前記第2分割項目に、対応する単語の有無を示す値を設定し、前記第2分割項目ごとに前記第1統計量を算出し、
前記第2統計量の算出では、前記第2データセットの前記項目を前記第2分割項目に分割し、前記複数の第2レコードそれぞれの前記第2分割項目に、対応する単語の有無を示す値を設定し、前記第2分割項目ごとに前記第2統計量を算出する、
請求項5記載の判定プログラム。
【請求項7】
コンピュータが、
機械学習による学習済みのモデルの生成に使用した第1データセットに含まれる複数の第1レコードの項目を、前記複数の第1レコードの前記項目に設定されている第1項目値に基づいて、複数のカテゴリのいずれかに分類し、
前記複数の第1レコードの前記項目に設定されている項目値に基づいて、前記項目が属するカテゴリに応じた手順で第1統計量を算出し、
前記第1データセットと同じ前記項目を有する第2データセットに含まれる複数の第2レコードの前記項目に設定されている第2項目値に基づいて、前記項目が属するカテゴリに応じた手順で第2統計量を算出し、
前記第1統計量と前記第2統計量との類似度に基づいて、前記第2データセットが前記モデルに適合しているか否かを判定する、
処理を実行させる判定方法。
【請求項8】
機械学習による学習済みのモデルの生成に使用した第1データセットに含まれる複数の第1レコードの項目を、前記複数の第1レコードの前記項目に設定されている第1項目値に基づいて、複数のカテゴリのいずれかに分類し、前記複数の第1レコードの前記項目に設定されている項目値に基づいて、前記項目が属するカテゴリに応じた手順で第1統計量を算出し、前記第1データセットと同じ前記項目を有する第2データセットに含まれる複数の第2レコードの前記項目に設定されている第2項目値に基づいて、前記項目が属するカテゴリに応じた手順で第2統計量を算出し、前記第1統計量と前記第2統計量との類似度に基づいて、前記第2データセットが前記モデルに適合しているか否かを判定する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、判定プログラム、判定方法、および情報処理装置に関する。
【背景技術】
【0002】
昨今ではAI(Artificial Intelligence)技術の発達により、機械学習で学習したモデルを用いたデータ解析や予測が大きな社会的ニーズになっている。そのため、企業や医療施設など様々な業種において有用なモデルが求められている。例えば医療施設であれば、患者の病状に応じた適切な治療方針の決定に学習済みのモデルを利用することができる。
【0003】
学習済みのモデルが複数用意されているとき、どのモデルを利用するのが適切なのかの判断が難しい場合がある。そこで、例えばデータベースに予め保管されている複数の学習済みモデルから、ユーザ側装置での利用に最適な学習済みモデルを選択して提供する学習済みモデル提供方法が提案されている。また、短時間で評価モデルを選択することができる学習方法も提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2018/142766号
【文献】特許第6751955号
【発明の概要】
【発明が解決しようとする課題】
【0005】
入力データと予測結果との因果関係が複雑な場合、十分に学習させたモデルを用いても期待した精度の予測結果が得られない可能性がある。しかし、従来技術では、ユーザは、既存のモデルにユーザ自身のデータを入力したときに期待通りの精度の予測結果が得られるか否かを、そのモデルを用いた予測を実行する前に知ることができない。
【0006】
1つの側面では、本件は、期待した精度の予測が可能か否かを事前に判別できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、以下の処理をコンピュータに実行させる判定プログラムが提供される。
コンピュータは、機械学習による学習済みのモデルの生成に使用した第1データセットに含まれる複数の第1レコードの項目を、前記複数の第1レコードの前記項目に設定されている第1項目値に基づいて、複数のカテゴリのいずれかに分類する。次にコンピュータは、前記複数の第1レコードの前記項目に設定されている項目値に基づいて、前記項目が属するカテゴリに応じた手順で第1統計量を算出する。さらにコンピュータは、前記第1データセットと同じ前記項目を有する第2データセットに含まれる複数の第2レコードの前記項目に設定されている第2項目値に基づいて、前記項目が属するカテゴリに応じた手順で第2統計量を算出する。そしてコンピュータは、前記第1統計量と前記第2統計量との類似度に基づいて、前記第2データセットが前記モデルに適合しているか否かを判定する。
【発明の効果】
【0008】
1態様によれば、期待した精度の予測が可能か否かを事前に判別可能となる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態に係る判定方法の一例を示す図である。
【
図3】DBサーバのハードウェアの一例を示す図である。
【
図4】各サーバが有する機能の一例を示すブロック図である。
【
図5】DBサーバが有する適用対象データセットの一例を示す図である。
【
図6】クラウドサーバが有する学習用データセットの一例を示す図である。
【
図7】適用対象データセットが適合するモデルを利用した予測値計算手順の一例を示す図である。
【
図8】分類処理の手順の一例を示すフローチャートである。
【
図9】カラムの統計量算出の第1の例を示す図である。
【
図10】カラムの統計量算出の第2の例を示す図である。
【
図11】カラムの統計量算出の第3の例を示す図である。
【
図12】カラムの統計量算出の第4の例を示す図である。
【
図13】カラムの統計量算出の第5の例を示す図である。
【
図14】統計量算出処理の手順の一例を示すフローチャート(その1)である。
【
図15】統計量算出処理の手順の一例を示すフローチャート(その2)である。
【
図16】統計量算出処理の手順の一例を示すフローチャート(その3)である。
【
図17】統計量算出処理の手順の一例を示すフローチャート(その4)である。
【
図18】特徴ベクトル生成処理の一例を示す図である。
【
図19】類似度算出処理の手順の一例を示すフローチャートである。
【
図20】適合判定処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、機械学習で生成されたモデルにユーザが有するデータセットが適合しているか否かを判定する判定方法である。モデルにデータセットが適合しているとは、そのモデルにデータセットを入力した場合に、精度の高い予測結果が得られることを意味する。
【0011】
図1は、第1の実施の形態に係る判定方法の一例を示す図である。
図1には、適合するか否かを判定する判定方法を、情報処理装置10を用いて実施した場合の例を示している。情報処理装置10は、例えば判定プログラムを実行することにより、判定方法を実施することができる。
【0012】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサ、または演算回路である。
【0013】
記憶部11は、機械学習により学習済みのモデル1、モデル1の学習に使用された第1データセット2、およびモデル1を用いた推論処理の適用対象となる第2データセット3を記憶する。
【0014】
処理部12は、第1データセット2と第2データセット3とを比較することで、第2データセット3がモデル1に適合しているか否かを判定する。すなわちモデル1の学習に用いた第1データセット2のデータ分布と近しいデータ分布を持つデータセットを用いれば、モデル1を用いて精度の高い予測結果が得られるものと考えられる。そこで処理部12は、第1データセット2と第2データセット3それぞれのデータ分布に応じた第1特徴ベクトル4と第2特徴ベクトル5を生成し、ベクトル間の類似度が一定の閾値を超えた場合、第2データセット3がモデル1に適合していると判断する。
【0015】
そのために処理部12は、まず第1データセット2の項目の分類と第1統計量の算出とを行う。例えば処理部12は、モデル1の生成に使用した第1データセット2に含まれる複数の第1レコードの項目を、複数の第1レコードの項目に設定されている第1項目値に基づいて、複数のカテゴリのいずれかに分類する。次に処理部12は、複数の第1レコードの項目に設定されている項目値に基づいて、項目が属するカテゴリに応じた手順で第1統計量を算出する。例えば処理部12は、複数の第1レコードの項目に設定されている第1項目値に基づいて、平均や中央値などの種別の異なる複数の第1統計量を算出する。
【0016】
また処理部12は、第1データセット2と同じ項目を有する第2データセット3の項目の分類と第2統計量の算出とを行う。例えば処理部12は、第2データセット3に含まれる複数の第2レコードの項目に設定されている第2項目値に基づいて、項目が属するカテゴリに応じた手順で第2統計量を算出する。例えば処理部12は、複数の第2レコードの項目に設定されている第2項目値に基づいて、種別の異なる複数の第2統計量を算出する。
【0017】
そして処理部12は、第1統計量と第2統計量との類似度に基づいて、第2データセット3がモデル1に適合しているか否かを判定する。類似度は、例えば複数の第1統計量それぞれを要素とする第1特徴ベクトル4と、複数の第2統計量それぞれを要素とする第2特徴ベクトル5との類似度である。処理部12は、例えば類似度が予め設定された閾値以上であれば、適合していると判定する。
【0018】
このように項目を、その項目に設定された項目値に応じたカテゴリに分類し、そのカテゴリに応じた手順で統計量を算出することで、第1データセット2と第2データセット3とに設定された項目値の特徴をよく表す統計量が得られる。その結果、高精度に類似度を算出することができ、適合するか否かの判定を正しく行うことができる。
【0019】
項目のカテゴリには、例えば名義尺度二項、名義尺度多項、数値データ、フリーテキストなどがある。名義尺度二項は、数値データか否かで別カテゴリにすることもできる。
例えば処理部12は、項目に設定されている第1項目値が数値か否かによって異なるカテゴリに分類する。
【0020】
処理部12は、項目に設定されている第1項目値が数値ではない場合、第1項目値の種類ごとの出現回数を第1統計量として算出する。そして処理部12は、第2統計量の算出では、第2項目値の種類ごとの出現回数を第2統計量として算出する。これにより、数値以外の項目値の分布を数値に変換し、適切な統計量を算出することが可能となる。
【0021】
また処理部12は、第1項目値の種類数が2未満か否かによって異なるカテゴリに分類してもよい。この場合、処理部12は、項目に設定されている第1項目値の種類数が2未満の場合、第1項目値を種類に応じて0または1に変換し、変換後の値に基づいて第1統計量を算出する。また処理部12は、変換後の値に基づいて第1統計量を算出し、第2項目値を種類に応じて0または1に変換し、変換後の値に基づいて第2統計量を算出する。これにより項目値の種類数が2未満の場合に、統一した尺度で統計量を求めることができ、類似度の判定精度を向上させることができる。
【0022】
また処理部12は、第1項目値の種類数の第1レコードの数に対する比の値が所定値以上か否かによって異なるカテゴリに分類してもよい。例えば処理部12は、比の値が所定値未満の場合、第1データセット2の項目を第1項目値の種類ごとの第1分割項目に分割する。そして処理部12は、複数の第1レコードそれぞれの第1分割項目に、対応する種類の第1項目値の有無を示す値を設定し、第1分割項目ごとに第1統計量を算出する。また処理部12は、第2データセット3の項目を第1分割項目に分割する。そして処理部12は、複数の第2レコードそれぞれの第1分割項目に、対応する種類の第2項目値の有無を示す値を設定し、第1分割項目ごとに第2統計量を算出する。これにより、数値以外の項目値について適切に数値化して特徴を算出可能となる。
【0023】
さらに処理部12は、比の値が所定値以上の場合、第1データセット2の項目を第1項目値に含まれる単語ごとの第2分割項目に分割する。そして処理部12は、複数の第1レコードそれぞれの第2分割項目に、対応する単語の有無を示す値を設定し、第2分割項目ごとに第1統計量を算出する。また処理部12は、第2データセット3の項目を第2分割項目に分割する。そして処理部12は、複数の第2レコードそれぞれの第2分割項目に、対応する単語の有無を示す値を設定し、第2分割項目ごとに第2統計量を算出する。これにより、フリーテキストについても適切に数値化して特徴量を算出可能となる。
【0024】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、クラウドコンピューティングシステム(以下、クラウドと呼ぶ)により提供されたモデルを利用して、ユーザ自身のデータから任意の情報を予測するシステムである。
【0025】
図2は、システム構成の一例を示す図である。DBサーバ100は、モデルを用いた推論の適用対象となるデータセットを管理する。DBサーバ100は、ネットワーク20を介してクラウドサーバ200に接続されている。クラウドサーバ200は、クラウド上に設けられたサーバコンピュータである。クラウドサーバ200は、学習済みのモデルを複数有しており、DBサーバ100からの要求に応じてモデルを提供する。
【0026】
クラウドサーバ200は、DBサーバが有するデータセットのモデルへの適合度合いを、モデルの学習に用いた学習用データセットとの類似度に基づいて判断する。すなわち、学習済みのモデルは、学習に使用したデータセットを入力したときに正しい推論結果を得られるように最適化されている。モデルがニューラルネットワークであれば、ニューロン間の結合強度を示す重みの値が調整され、学習に使用したデータセットをモデルに入力すれば、正しい予測結果を得ることができる。従って、学習に使用したデータセットと類似するデータセットであれば、同じモデルへ入力したときに正しい予測結果が得られる可能性が高い。
【0027】
そこでDBサーバ100は、自身が有するデータセットを入力データとして推論処理を行うのに適切なモデルを選択するため、そのデータセットの特徴を示す統計量を計算する。DBサーバ100は、計算した統計量をクラウドサーバ200に送信する。またDBサーバ100は、モデルの生成に使用されたデータセットについても特徴を示す統計量を計算し、クラウドサーバ200に送信する。
【0028】
クラウドサーバ200は、自身が有する複数のモデルそれぞれの生成に使用したデータセットの特徴量と、DBサーバ100が有するデータセットの特徴量との比較により、データセット間の類似度を計算する。クラウドサーバ200は、複数のモデルそれぞれの生成に使用したデータセットごとに算出した類似度を、DBサーバ100に送信する。
【0029】
DBサーバ100は、クラウドサーバ200から取得した類似度に基づいて、DBサーバ100が有するデータセットが複数のモデルそれぞれへ適合するか否かを判定する。そしてDBサーバ100は、データセットの適合度合いが閾値より高いモデルをクラウドサーバ200から取得し、そのモデルを用いて推論処理を行う。
【0030】
図3は、DBサーバのハードウェアの一例を示す図である。DBサーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0031】
メモリ102は、DBサーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0032】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0033】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0034】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0035】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0036】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0037】
機器接続インタフェース107は、DBサーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0038】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0039】
DBサーバ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。クラウドサーバ200もDBサーバ100と同様のハードウェアにより実現することができる。また第1の実施の形態に示した情報処理装置10も、DBサーバ100と同様のハードウェアにより実現することができる。
【0040】
DBサーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。DBサーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、DBサーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またDBサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0041】
次にDBサーバ100が有するデータセットが適合するモデルを用いて推論処理を行うための各サーバの機能について説明する。
図4は、各サーバが有する機能の一例を示すブロック図である。DBサーバ100は、記憶部110、分類部120、統計量計算部130、適合判定部140、モデル取得部150、および推論部160を有する。
【0042】
記憶部110は、推論処理の適用対象となる適用対象データセット111およびクラウドサーバ200から取得したモデル112を記憶する。適用対象データセット111は例えばテーブル形式のデータであり、各行にレコードが登録される。各レコードにはカラムごとに項目が割り当てられ、そのカラム内に該当項目の項目値が設定される。例えばDBサーバ100が医療機関のシステムであれば、患者ごとのレコードが適用対象データセット111に含まれる。カラムには、登録される項目値の属性(氏名、性別、病名など)が設定される。記憶部110は、例えばDBサーバ100のメモリ102またはストレージ装置103の記憶領域の一部によって実現される。
【0043】
分類部120は、適用対象データセット111の各カラムを、設定される項目値の種別に応じたカテゴリに分類する。例えば分類部120は、数値が設定されるカラムと、文字列が設定されるカラムとを別のカテゴリに分類する。また分類部120は、設定される項目値の種類数が2種類のみか3種類以上あるのかにより、別のカテゴリに分類する。分類部120は、各カラムが属するカテゴリを示す情報を統計量計算部130に送信する。
【0044】
また分類部120は、クラウドサーバ200に格納されている複数のモデルそれぞれの生成に利用した学習用データセットを取得する。そして分類部120は、学習用データセットについても、適用対象データセット111と同様にカラムごとにカテゴリに分類する。
【0045】
統計量計算部130は、モデルの生成に使用されたデータセットおよび推論処理の適用対象とする適用対象データセット111の統計量を計算する。例えば統計量計算部130は、適用対象データセット111のカラムごとに、すべてのレコードの該当カラムの項目値に基づいて、該当カラムが属するカテゴリに応じた方法で所定の統計量を計算する。同様に、統計量計算部130は、クラウドサーバ200から取得した学習用データセットのカラムごとの統計量を計算する。統計量計算部130は、適用対象データセット111または学習用データセット41,42,・・・ごとに算出した統計量をまとめた統計量集合61,62,・・・をクラウドサーバ200にアップロードする。
【0046】
適合判定部140は、モデルを用いた予測処理の適用対象データセット111がモデル51,52,・・・のいずれかに適合しているか否かを判定する。例えば適合判定部140は、類似度判定要求をクラウドサーバ200に送信する。適合判定部140は、類似度判定要求の応答として、学習用データセット41,42,・・・それぞれと適用対象データセット111との間の類似度をクラウドサーバ200から取得する。適合判定部140は、類似度が所定の閾値以上の学習用データセットに対応するモデルの識別番号をモデル取得部150に送信する。
【0047】
モデル取得部150は、適用対象データセット111が適合しているモデルをクラウドサーバ200から取得する。例えばモデル取得部150は、適合判定部140から取得した識別番号を指定したモデル取得要求をクラウドサーバ200に送信する。クラウドサーバ200からは、指定された識別番号に対応する学習済みのモデルが送り返される。モデル取得部150は、取得したモデルを記憶部110に格納する。
【0048】
推論部160は、適用対象データセット111をモデル112への入力データとして推論処理を行い、所定の項目の予測値を得る。推論部160は、取得した予測値を予測結果として出力する。
【0049】
クラウドサーバ200は、記憶部210、学習用データセット提供部220、類似度計算部230、およびモデル提供部240を有する。
記憶部210は、複数の学習用データセット41,42,・・・、複数のモデル51,52,・・・、および複数の統計量集合61,62,・・・を記憶する。複数の学習用データセット41,42,・・・は、それぞれいずれかのモデルの生成に使用されたデータセットである。複数の統計量集合61,62,・・・は、それぞれ複数の学習用データセット41,42,・・・または適用対象データセット111から算出された統計量の集合である。記憶部210は、クラウドサーバ200が有するメモリまたはストレージ装置の記憶領域の一部を用いて実現される。
【0050】
学習用データセット提供部220は、DBサーバ100からの要求に応じて、複数の学習用データセット41,42,・・・を記憶部210から取得し、DBサーバ100に送信する。
【0051】
類似度計算部230は、DBサーバ100から送られた類似度判定要求に基づいて、学習用データセット41,42,・・・それぞれとDBサーバ100が有する適用対象データセット111との類似度を算出する。例えば類似度計算部230は、適用対象データセット111のカラムごとに計算した統計量の数値を要素とする、適用対象データセット111の特徴ベクトルを生成する。また類似度計算部230は、複数の学習用データセット41,42,・・・それぞれについても、カラムごとに計算した統計量の数値を要素とする特徴ベクトルを生成する。そして類似度計算部230は、適用対象データセット111の特徴ベクトルと学習用データセット41,42,・・・それぞれの特徴ベクトルとの類似度を計算する。類似度計算部230は、算出した学習用データセット41,42,・・・ごとの類似度をDBサーバ100に送信する。
【0052】
モデル提供部240は、DBサーバ100からのモデル取得要求に応じて、モデル取得要求で指定されたモデルを記憶部210から取得し、取得したモデルをDBサーバ100に送信する。
【0053】
なお、
図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、
図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0054】
図5は、DBサーバが有する適用対象データセットの一例を示す図である。例えば適用対象データセット111には、患者ごとのレコードが登録される。適用対象データセット111は、患者ID、氏名、病名コード、検体検査情報などの属性が設定されたカラムを有する。各レコードは、カラムに設定された属性の項目値を含む。適用対象データセット111は、
図5に示したもの以外に、例えば処置コード、生体検査情報、臨床検査項目分類コード、分類別コード、識別コード、材料コード、測定法コード、結果識別コード、医薬品コードなどのカラムを有する。
【0055】
図6は、クラウドサーバが有する学習用データセットの一例を示す図である。クラウドサーバ200が有する学習用データセット41には、その学習用データセット41を用いて生成されたモデル51の識別番号が付与されている。学習用データセット41は、適用対象データセット111と同様に患者ごとのレコードを有する。学習用データセット41の各レコードは、適用対象データセット111内のレコードと同種のカラムを有する。
【0056】
学習用データセット41を用いて生成されたモデル51は、例えばニューラルネットワークである。学習用データセット41内の1または複数のカラムに設定された項目値をモデル51の入力層へ入力し、モデル51に従って計算を行うことで、出力層の出力として精度の高い予測値を得ることができる。
【0057】
DBサーバ100を有するユーザが、クラウドサーバ200が有する複数のモデル51,52,・・・のいずれかを利用して、適用対象データセット111に基づく所定の項目の予測値を得たい場合がある。この場合、複数のモデル51,52,・・・のうち、正しい予測値が得られるモデルを利用するのが適切である。複数のモデル51,52,・・・それぞれは、学習時に使用された学習用データセットに適合するようにパラメータの値などが調整されている。そのため適用対象データセット111に類似する学習用データセットがある場合、適用対象データセット111は、その学習用データセットを用いて生成されたモデルに適合していると考えられる。そこでクラウドサーバ200では、例えば学習用データセット41,42,・・・それぞれと適用対象データセット111との類似度に基づいて、適用対象データセット111が適合しているモデルを判定する。
【0058】
図7は、適用対象データセットが適合するモデルを利用した予測値計算手順の一例を示す図である。DBサーバ100の分類部120は、モデル取得を指示する入力に応じて、クラウドサーバ200から、複数のモデル51,52,・・・の生成に使用された学習用データセット41,42,・・・を取得する。例えば分類部120は、クラウドサーバ200へ学習用データセット41,42,・・・の取得要求を送信する(ステップS11)。クラウドサーバ200の学習用データセット提供部220は、複数の学習用データセット41,42,・・・をDBサーバ100に送信する(ステップS12)。
【0059】
DBサーバ100の分類部120は、取得した学習用データセット41,42,・・・のカラムを、複数のカテゴリのいずれかに分類する(ステップS13)。例えば分類部120は、学習用データセット41,42,・・・に含まれる各カラムを名義尺度二項、数値データ、名義尺度多項、フリーテキストのいずれかに分類する。
【0060】
具体的には、分類部120は、カラムに設定される項目値が、数値かつ種類が2パターンのみ(例えば0と1)の場合は、カテゴリ名義尺度二項に分類する。分類部120は、カラムに設定される項目値が、数値かつ種類が3パターン以上ある場合、数値データに分類する。分類部120は、カラムに設定される項目値が、数値データではなく種類が2パターンの場合、名義尺度二項に分類する。分類部120は、カラムに設定されている項目値の種類数が、数値データではなく、処理対象の学習用データセットに登録されたレコード数に対して、設定される項目値の種類数の割合が1割未満(比の値が0.1未満)の場合、名義尺度多項に分類する。分類部120は、カラムに設定される項目値が、数値データではなく、処理対象の学習用データセットに登録されたレコード数に対して、設定される項目値の種類数が1割以上の場合、名義尺度多項に分類する。統計量計算部130は、複数の学習用データセット41,42,・・・それぞれのカラムごとに、そのカラムが属するカテゴリに応じた手順で統計量を算出する(ステップS14)。統計量計算部130は、学習用データセット41,42,・・・ごとに生成された統計量を集めた統計量集合を、クラウドサーバ200にアップロードする(ステップS15)。
【0061】
複数の学習用データセット41,42,・・・に対する統計量の算出が終了すると、分類部120は、記憶部110から推論処理対象の適用対象データセット111を取得する(ステップS16)。そして分類部120は、学習用データセット41,42,・・・の場合と同様に、適用対象データセット111の各カラムを複数のカテゴリのいずれかに分類する(ステップS17)。統計量計算部130は、適用対象データセット111のカラムごとに、そのカラムが属するカテゴリに応じた手順で統計量を算出する(ステップS18)。統計量計算部130は、適用対象データセット111に基づいて生成された統計量を集めた統計量集合をクラウドサーバ200にアップロードする(ステップS19)。
【0062】
適合判定部140は、類似度判定要求をクラウドサーバ200に送信する(ステップS20)。クラウドサーバ200の類似度計算部230は、予めアップロードされた統計量集合61,62,・・・に基づいて、適用対象データセット111と学習用データセット41,42,・・・それぞれの特徴ベクトルを生成する(ステップS21)。次に類似度計算部230は、生成した特徴ベクトルに基づいて、学習用データセット41,42,・・・それぞれと適用対象データセット111との類似度を算出する(ステップS22)。
【0063】
類似度計算部230は、学習用データセット41,42,・・・ごとの類似度をDBサーバ100に送信する(ステップS23)。DBサーバ100の適合判定部140は、類似度が所定の閾値以上の学習用データセットに対応するモデルを、適用対象データセット111が適合するモデルであると判定する(ステップS24)。適合判定部140は、適合するモデルの識別番号をモデル取得部150に送信する。モデル取得部150は、推奨モデルの識別番号を指定したモデル取得要求をクラウドサーバ200に送信する(ステップS25)。クラウドサーバ200のモデル提供部240は、モデル取得要求で指定された識別番号のモデルをDBサーバ100に送信する(ステップS26)。
【0064】
DBサーバ100のモデル取得部150は、クラウドサーバ200から取得したモデル112を記憶部110に格納する。その後、推論部160は、適用対象データセット111に設定されている項目値をモデル112への入力値として、モデル112に従った推論処理を実行する(ステップS27)。推論処理により、所定の項目の予測値が得られる。
【0065】
以上のような手順で適用対象データセット111が適合するモデルを利用した予測値の算出が可能となる。このときDBサーバ100では、学習用データセット41,42,・・・および適用対象データセット111それぞれのカラムのカテゴリに応じた手順で該当カラムの統計量を算出している。
【0066】
次にカラムの分類処理について詳細に説明する。
図8は、分類処理の手順の一例を示すフローチャートである。以下、
図8に示す処理をステップ番号に沿って説明する。
【0067】
[ステップS101]分類部120は、処理対象の学習用データセット41,42,・・・または適用対象データセット111のカラムを1つ選択する。
[ステップS102]分類部120は、選択したカラムに設定されているのが数値データか否かを判断する。例えば分類部120は、カラム内のすべての項目値が数値であれば数値データであると判断する。分類部120は、数値データであれば処理をステップS103に進める。また分類部120は、数値データでなければ処理をステップS106に進める。
【0068】
[ステップS103]分類部120は、選択したカラムに設定されている項目値が2パターンのみか否かを判断する。分類部120は、2パターンのみであれば処理をステップS104に進める。また分類部120は、3パターン以上の項目値が設定されていれば処理をステップS105に進める。
【0069】
[ステップS104]分類部120は、選択したカラムを名義尺度二項(数値データ)に分類する。その後、分類部120は処理をステップS111に進める。
[ステップS105]分類部120は、選択したカラムを数値データに分類する。その後、分類部120は処理をステップS111に進める。
【0070】
[ステップS106]分類部120は、選択したカラムに設定されている項目値が2パターンのみか否かを判断する。分類部120は、2パターンのみであれば処理をステップS107に進める。また分類部120は、3パターン以上の項目値が設定されていれば処理をステップS108に進める。
【0071】
[ステップS107]分類部120は、選択したカラムを名義尺度二項(テキストデータ)に分類する。その後、分類部120は処理をステップS111に進める。
[ステップS108]分類部120は、処理対象の学習用データセット41,42,・・・または適用対象データセット111に含まれるレコード数に対する選択したカラムに設定されている項目値の種類数が1割未満か否かを判断する。分類部120は、項目値の種類数が1割未満であれば処理をステップS109に進める。また分類部120は、項目値の種類数が1割以上であれば処理をステップS110に進める。
【0072】
[ステップS109]分類部120は、選択したカラムを名義尺度多項に分類する。その後、分類部120は処理をステップS111に進める。
[ステップS110]分類部120は、選択したカラムをフリーテキストに分類する。
【0073】
[ステップS111]分類部120は、処理対象の学習用データセット41,42,・・・または適用対象データセット111のカラムのうち、未選択のカラムがあるか否かを判断する。分類部120は、未選択のカラムがある場合、処理をステップS101に進める。分類部120は、すべてのカラムが選択済みであれば分類処理を終了する。
【0074】
カラムを複数のカテゴリに適切に分類することにより学習用データセット41,42,・・・および適用対象データセット111それぞれの特徴を、統計量に正しく反映させることができる。以下、
図9~
図13を参照して、カテゴリごとの統計量の算出方法について説明する。
【0075】
図9は、カラムの統計量算出の第1の例を示す図である。
図9には、数値データであり、かつ2パターンの項目値しか設定されないカラムの統計量の計算例が示されている。例えば学習用データセット41の各レコードのカラム「V1」には、「10」または「20」の2つの数値のいずれかのみが設定されている。この場合、分類部120は、カラム「V1」をカテゴリ「名義尺度二項(数値データ)」に分類する。
【0076】
統計量計算部130は、カテゴリ「名義尺度二項(数値データ)」に分類されたカラム「V1」の項目値を「0」と「1」の2値に変換する。
図9の例では統計量計算部130は、「10」を「0」に変換し、「20」を「1」に変換している。そして統計量計算部130は、変換後の値を用いて、カラム「V1」の統計量として、平均値、標準偏差、不偏標準偏差、中央値、1Q値(第一四分位数)、および3Q値(第三四分位数)を算出する。
【0077】
図10は、カラムの統計量算出の第2の例を示す図である。
図10には、数値データであり、かつ3パターン以上の項目値が設定されるカラムの統計量の計算例が示されている。例えば学習用データセット41の各レコードのカラム「V2」には、3種類以上の整数の項目値が設定されている。この場合、分類部120は、カラム「V2」をカテゴリ「数値データ」に分類する。
【0078】
統計量計算部130は、カテゴリ「数値データ」に分類されたカラム「V2」のそのままの項目値を用いて、カラム「V2」の統計量として、平均値、標準偏差、不偏標準偏差、中央値、1Q値、および3Q値を算出する。
【0079】
図11は、カラムの統計量算出の第3の例を示す図である。
図11には、数値データ以外であり、かつ2パターンの項目値しか設定されないカラムの統計量の計算例が示されている。例えば学習用データセット41の各レコードのカラム「V3」には、「男」と「女」の2種類のいずれかのみが設定されている。この場合、分類部120は、カラム「V3」をカテゴリ「名義尺度二項(テキストデータ)」に分類する。
【0080】
統計量計算部130は、カテゴリ「名義尺度二項(テキストデータ)」に分類されたカラム「V3」の項目値を「0」と「1」の2値に変換する。
図11の例では統計量計算部130は、「男」を「0」に変換し、「女」を「1」に変換している。そして統計量計算部130は、変換後の値を用いて、カラム「V3」の統計量として、平均値、標準偏差、不偏標準偏差、中央値、1Q値、3Q値、および項目値ごとの出現回数を算出する。また統計量計算部130は、カラム「V3」に設定されている項目値のリスト「男、女」を生成する。
【0081】
図12は、カラムの統計量算出の第4の例を示す図である。
図12には、数値データ以外であり、かつ設定される項目値の種類の数がレコード数の1割未満であるカラムの統計量の計算例が示されている。例えば学習用データセット41の各レコードのカラム「V4」には、4種類の血液型(「A型」、「B型」、「O型」、「AB型」)のいずれかが設定されている。学習用データセット41のレコード数は40以上あるものとする。この場合、分類部120は、カラム「V4」をカテゴリ「名義尺度多項」に分類する。
【0082】
統計量計算部130は、カテゴリ「名義尺度多項」に分類されたカラム「V4」を、設定されている項目値ごとのカラムに分割する。
図12の例では、「A型」、「B型」、「O型」、「AB型」の各項目値に対応する「V4_A型」、「V4_B型」、「V4_O型」、「V4_AB型」のカラムに分割されている。各レコードの分割後の各カラムには、分割元のカラム「V4」において分割後のカラムに対応する項目値が設定されていれば「1」、設定されていなければ「0」の項目値が設定される。そして統計量計算部130は、分割後のカラムそれぞれの統計量として、平均値、標準偏差、不偏標準偏差、中央値、1Q値、3Q値、および項目値ごとの出現回数を算出する。また統計量計算部130は、分割後のカラムそれぞれの統計量の集合に、そのカラムに対応する項目値を付与する。
【0083】
図13は、カラムの統計量算出の第5の例を示す図である。
図13には、数値データ以外であり、かつ設定される項目値の種類の数がレコード数の1割以上であるカラムの統計量の計算例が示されている。例えば学習用データセット41の各レコードのカラム「V5」には、任意の文字列が設定されている。この場合、分類部120は、カラム「V5」をカテゴリ「フリーテキスト」に分類する。
【0084】
統計量計算部130は、カテゴリ「フリーテキスト」に分類されたカラム「V5」に設定されている文字列の形態素解析を行い、名詞などの所定の品詞の単語を抽出する。統計量計算部130は、カラム「V5」を抽出された単語ごとのカラムに分割する。
図13の例では、「V5_1型糖尿病」、「V5_アトピー」、「V5_2型糖尿病」などのカラムに分割されている。各レコードの分割後の各カラムには、分割元のカラム「V5」において分割後のカラムに対応する文字を含む項目値が設定されていれば「1」、設定されていなければ「0」の項目値が設定される。そして統計量計算部130は、分割後のカラムそれぞれの統計量として、平均値、標準偏差、不偏標準偏差、中央値、1Q値、3Q値、および項目値ごとの出現回数を算出する。また統計量計算部130は、分割後のカラムそれぞれの統計量の集合に、そのカラムに対応する単語を付与する。
【0085】
次に統計量算出処理の手順について、
図14~
図16を参照して詳細に説明する。
図14は、統計量算出処理の手順の一例を示すフローチャート(その1)である。以下、
図14に示す処理をステップ番号に沿って説明する。
【0086】
[ステップS201]統計量計算部130は、名義尺度二項(数値データ)に分類されたカラムを1つ選択する。
[ステップS202]統計量計算部130は、選択したカラムに設定されている2種類の項目値を「0」と「1」に2値化する。
【0087】
[ステップS203]統計量計算部130は、2値化後の値を用いて、選択したカラムの統計量を計算し、計算した統計量を含む該当カラムの統計情報を生成する。
[ステップS204]統計量計算部130は、名義尺度二項(数値データ)に分類されたカラムのうち、未選択のカラムがあるか否かを判断する。統計量計算部130は、未選択のカラムがあれば処理をステップS201に進める。統計量計算部130は、未選択のカラムがなければ処理をステップS205に進める。
【0088】
[ステップS205]統計量計算部130は、数値データに分類されたカラムを1つ選択する。
[ステップS206]統計量計算部130は、選択したカラムに設定されている項目値の統計量を計算し、計算した統計量を含む該当カラムの統計情報を生成する。
【0089】
[ステップS207]統計量計算部130は、数値データに分類されたカラムのうち、未選択のカラムがあるか否かを判断する。統計量計算部130は、未選択のカラムがあれば処理をステップS205に進める。統計量計算部130は、未選択のカラムがなければ処理をステップS211(
図15参照)に進める。
【0090】
図15は、統計量算出処理の手順の一例を示すフローチャート(その2)である。以下、
図15に示す処理をステップ番号に沿って説明する。
[ステップS211]統計量計算部130は、名義尺度二項(テキストデータ)に分類されたカラムを1つ選択する。
【0091】
[ステップS212]統計量計算部130は、選択したカラムに設定されている2種類の項目値を「0」と「1」に2値化する。
[ステップS213]統計量計算部130は、2値化後の値を用いて、選択したカラムの統計量を計算し、計算した統計量を含む該当カラムの統計情報を生成する。
【0092】
[ステップS214]統計量計算部130は、選択したカラムの統計量情報に、そのカラムに対応する項目値の文字列を追加する。
[ステップS215]統計量計算部130は、名義尺度二項(テキストデータ)に分類されたカラムのうち、未選択のカラムがあるか否かを判断する。統計量計算部130は、未選択のカラムがあれば処理をステップS211に進める。統計量計算部130は、未選択のカラムがなければ処理をステップS221(
図16参照)に進める。
【0093】
図16は、統計量算出処理の手順の一例を示すフローチャート(その3)である。以下、
図16に示す処理をステップ番号に沿って説明する。
[ステップS221]統計量計算部130は、名義尺度多項に分類されたカラムを1つ選択する。
【0094】
[ステップS222]統計量計算部130は、選択したカラムを、項目値の種別ごとのカラムに分割する。分割後の各レコードのカラムには、該当カラムに対応する項目値の存否を示す「1」または「0」の値が設定される。
【0095】
[ステップS223]統計量計算部130は、項目値の種別に対応するカラムを1つ選択する。
[ステップS224]統計量計算部130は、選択したカラムに設定されている項目値の統計量を計算し、計算した統計量を含む該当カラムの統計情報を生成する。
【0096】
[ステップS225]統計量計算部130は、選択したカラムの統計情報に、そのカラムに対応する項目値の文字列を追加する。
[ステップS226]統計量計算部130は、分割によって生成された項目値の種別ごとのカラムのうち、未選択のカラムがあるか否かを判断する。統計量計算部130は、未選択のカラムがあれば処理をステップS223に進める。統計量計算部130は、未選択のカラムがなければ処理をステップS227に進める。
【0097】
[ステップS227]統計量計算部130は、名義尺度多項に分類されたカラムのうち、未選択のカラムがあるか否かを判断する。統計量計算部130は、未選択のカラムがあれば処理をステップS221に進める。統計量計算部130は、未選択のカラムがなければ処理をステップS231(
図17参照)に進める。
【0098】
図17は、統計量算出処理の手順の一例を示すフローチャート(その4)である。以下、
図17に示す処理をステップ番号に沿って説明する。
[ステップS231]統計量計算部130は、フリーテキストに分類されたカラムを1つ選択する。
【0099】
[ステップS232]統計量計算部130は、選択したカラムに設定されている文字列の形態素解析によって単語を抽出する。
[ステップS233]統計量計算部130は、選択したカラムを、抽出した単語ごとのカラムに分割する。分割後の各レコードのカラムには、該当カラムに対応する単語の存否を示す「1」または「0」の値が設定される。
【0100】
[ステップS234]統計量計算部130は、抽出した単語に対応するカラムを1つ選択する。
[ステップS235]統計量計算部130は、選択したカラムに設定されている項目値の統計量を計算し、計算した統計量を含む該当カラムの統計情報を生成する。
【0101】
[ステップS236]統計量計算部130は、選択したカラムの項目値から算出された統計量を含む統計情報に、そのカラムに対応する単語の文字列を追加する。
[ステップS237]統計量計算部130は、抽出した単語ごとのカラムのうち、未選択のカラムがあるか否かを判断する。統計量計算部130は、未選択のカラムがあれば処理をステップS234に進める。統計量計算部130は、未選択のカラムがなければ処理をステップS238に進める。
【0102】
[ステップS238]統計量計算部130は、フリーテキストに分類されたカラムのうち、未選択のカラムがあるか否かを判断する。統計量計算部130は、未選択のカラムがあれば処理をステップS231に進める。統計量計算部130は、未選択のカラムがなければ統計量算出処理を終了する。
【0103】
図14~
図17の処理が、適用対象データセット111と複数の学習用データセット41,42,・・・それぞれについて行われる。適用対象データセット111および複数の学習用データセット41,42,・・・それぞれから得られた統計量は、適合判定部140によってクラウドサーバ200に送信される。クラウドサーバ200の類似度計算部230は、取得した統計量に基づいて、適用対象データセット111と複数の学習用データセット41,42,・・・それぞれの特徴ベクトルを生成する。
【0104】
図18は、特徴ベクトル生成処理の一例を示す図である。学習用データセット41に基づいて生成された統計量集合70には、各カラムの統計量が含まれる。例えば学習用データセット41のカラム「V1」は名義尺度二項に分類されている。この場合、カラム「V1」の項目値を二値化した値から得られた複数の統計量(a1,a2,・・・)が統計量集合70に含まれる。カラム「V1」の複数の統計量(a1,a2,・・・)それぞれが、学習用データセット41の特徴を示す特徴ベクトルの要素として設定される。
【0105】
また学習用データセット41の別のカラム「V4」は名義尺度多項に分類されている。この場合、カラム「V4」が項目値ごとの複数のカラムに分割され、分割後のカラムそれぞれについて複数の統計量(b1,b2,・・・,c1,c2,・・・,)が得られる。カラム「V4」の複数の統計量(b1,b2,・・・,c1,c2,・・・,)それぞれが、学習用データセット41の特徴を示す特徴ベクトルの要素として設定される。例えば項目値「A型」に対応する分割後のカラムの統計情報(b1,b2,・・・)は、特徴ベクトルにおける項目値「A型」に対応する要素として設定される。
【0106】
このようにして、適用対象データセット111と複数の学習用データセット41,42,・・・それぞれの特徴ベクトルが生成される。類似度計算部230は、適用対象データセット111の特徴ベクトルと、複数の学習用データセット41,42,・・・それぞれの特徴ベクトルとの類似度を算出する。この類似度は、複数の学習用データセット41,42,・・・それぞれと適用対象データセット111との類似度でもある。
【0107】
図19は、類似度算出処理の手順の一例を示すフローチャートである。以下、
図19に示す処理をステップ番号に沿って説明する。
[ステップS301]類似度計算部230は、適用対象データセット111の統計量集合を選択する。
【0108】
[ステップS302]類似度計算部230は、選択した統計量集合に基づいて特徴ベクトルを生成する。
[ステップS303]類似度計算部230は、学習用データセットの統計量集合を選択する。
【0109】
[ステップS304]類似度計算部230は、選択した統計量集合に基づいて特徴ベクトルを生成する。
[ステップS305]類似度計算部230は、ステップS302で生成した特徴ベクトルとステップS304で生成した特徴ベクトルとのコサイン類似度を計算する。
【0110】
[ステップS306]類似度計算部230は、未選択の統計量集合があるか否かを判断する。類似度計算部230は、未選択の統計量集合がある場合、処理をステップS303に進める。また類似度計算部230は、すべての統計量集合が選択済みであれば、処理をステップS307に進める。
【0111】
[ステップS307]類似度計算部230は、複数の学習用データセット41,42,・・・それぞれの類似度をDBサーバ100に送信する。
類似度を受信したDBサーバ100では、適合判定部140が、類似度に基づいて、複数のモデル51,52,・・・それぞれについて、適用対象データセット111が適合しているか否かを判定する。
【0112】
図20は、適合判定処理の手順の一例を示すフローチャートである。以下、
図20に示す処理をステップ番号に沿って説明する。
[ステップS401]適合判定部140は、学習用データセットを1つ選択する。
【0113】
[ステップS402]適合判定部140は、選択した学習用データセットと適用対象データセット111との類似度が閾値(例えば0.8)以上か否かを判断する。適合判定部140は、類似度が閾値以上であれば処理をステップS403に進める。また適合判定部140は、類似度が閾値未満であれば処理をステップS404に進める。
【0114】
[ステップS403]適合判定部140は、ステップS402で選択した学習用データセットに対応するモデルを、適用対象データセット111が適合している適合モデルであると判定し、そのモデルの識別情報を適合モデルのリストに登録する。
【0115】
[ステップS404]適合判定部140は、未選択の学習用データセットがあるか否かを判断する。適合判定部140は、未選択の学習用データセットがある場合、処理をステップS401に進める。また適合判定部140は、すべての学習用データセットが選択済みであれば、適合判定処理を終了する。
【0116】
このようにしてDBサーバ100は、適用対象データセット111が適合する適合モデルのリストを取得することができる。DBサーバ100のモデル取得部150は、適合モデルのリストに基づいて、該当するモデル112をクラウドサーバ200から取得し、記憶部110に格納する。そして推論部160が、例えばWebAPI(Application Programming Interface)などの技術を用いて、適用対象データセット111内の項目値をモデル112への入力とした推論処理サービスを提供する。
【0117】
取得したモデル112の生成に使用した学習用データセットと適用対象データセット111とは内容が類似しており、適用対象データセット111を入力データとしてモデル112を用いた推論処理を行えば、高精度の予測値が得られる。また推論部160は、複数のモデルを用いて予測値を算出することもできる。複数のモデルを用いて予測値を計算する場合においても、それぞれから高精度(例えばモデルAの予測精度95%、モデルBの予測精度87%)で、予測値を得ることができる。
【0118】
なおDBサーバ100からクラウドサーバ200へ送信する情報は、適用対象データセット111などの統計量集合である。そのため適用対象データセット111に個人情報が含まれていても、DBサーバ100を運用している組織(例えば病院)は、適用対象データセット111に含まれる個人情報を秘匿したまま、適合モデルの判定が可能である。
【0119】
DBサーバ100のユーザは、例えばクラウドサーバ200から取得したモデル112を、AIを利用した推論処理の検証に利用することができる。検証によって高精度の高い予測値が得られることが確認できた場合、ユーザは、例えば取得したモデル112のチューニングを行い、予測精度を向上させることもできる。これにより、予測精度の高いモデルを生成するための工数の大幅な削減が期待できる。
【0120】
〔その他の実施の形態〕
第2の実施の形態では、DBサーバ100とクラウドサーバ200とが協働して適合判定が行われているが、DBサーバ100とクラウドサーバ200との機能を1つの装置にまとめてもよい。
【0121】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0122】
1 モデル
2 第1データセット
3 第2データセット
4 第1特徴ベクトル
5 第2特徴ベクトル
10 情報処理装置
11 記憶部
12 処理部