特許第6270216号(P6270216)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許6270216クラスタリング装置、方法及びプログラム
<>
  • 特許6270216-クラスタリング装置、方法及びプログラム 図000008
  • 特許6270216-クラスタリング装置、方法及びプログラム 図000009
  • 特許6270216-クラスタリング装置、方法及びプログラム 図000010
  • 特許6270216-クラスタリング装置、方法及びプログラム 図000011
  • 特許6270216-クラスタリング装置、方法及びプログラム 図000012
  • 特許6270216-クラスタリング装置、方法及びプログラム 図000013
  • 特許6270216-クラスタリング装置、方法及びプログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6270216
(24)【登録日】2018年1月12日
(45)【発行日】2018年1月31日
(54)【発明の名称】クラスタリング装置、方法及びプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20180122BHJP
   G06Q 50/22 20180101ALI20180122BHJP
【FI】
   G06F17/30 210D
   G06F17/30 350C
   G06Q50/22
【請求項の数】7
【全頁数】20
(21)【出願番号】特願2014-195107(P2014-195107)
(22)【出願日】2014年9月25日
(65)【公開番号】特開2016-66269(P2016-66269A)
(43)【公開日】2016年4月28日
【審査請求日】2017年1月30日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】小川 圭介
(72)【発明者】
【氏名】橋本 真幸
(72)【発明者】
【氏名】松本 一則
【審査官】 齊藤 貴孝
(56)【参考文献】
【文献】 特開2006−163932(JP,A)
【文献】 特開2012−018450(JP,A)
【文献】 特開2007−034871(JP,A)
【文献】 特開2000−262479(JP,A)
【文献】 畠山 豊、外5名,問診データに対する潜在トピックモデルに基づく健診データ解析,医療情報学,日本,一般社団法人日本医療情報学会 株式会社篠原出版新社,2013年12月26日,第33巻,第5号,p.267−277
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06Q 10/00−99/00
(57)【特許請求の範囲】
【請求項1】
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング部と、を備えることを特徴とするクラスタリング装置。
【請求項2】
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、
前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データDに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、
前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、
当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング部と、を備え、
前記クラスタリング部は、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とするクラスタリング装置。
【請求項3】
前記重み計算部は、前記重み計算用の医療データを解析して、
特定年代において前記疾病名が存在する対象者に関し、当該特定年代より前記発症期間だけ戻った年代に存在する単語についてそれぞれ、当該対象者を共起に寄与するものとしてカウントし、
特定年代において前記疾病名が存在しない対象者に関し、当該特定年代より前記発症期間だけ戻った年代に存在する単語についてそれぞれ、当該対象者を非共起に寄与するものとしてカウントし、
前記カウントされた共起の総数の、前記カウントされた共起及び非共起の総数に対する割合として、前記単語ごとの重みを計算することを特徴とする請求項1または2に記載のクラスタリング装置。
【請求項4】
前記重み計算部はさらに、前記重み計算用の医療データを解析して、
特定年代において前記疾病名が存在する対象者に関し、当該特定年代より前記発症期間だけ戻った年代に存在する単語についてそれぞれ、当該対象者を共起に寄与するものとしてカウントすると共に、当該対象者の前記発症年代だけ戻った年代に既に前記疾病名が存在する場合、当該対象者を既発症者としてカウントし、
前記カウントされた共起の総数より前記カウントされた既発症者の総数を減じた数の、前記カウントされた共起及び非共起の総数に対する割合として、前記単語ごとの重みを計算することを特徴とする請求項3に記載のクラスタリング装置。
【請求項5】
コンピュータによって実行されるクラスタリング方法であって、
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング段階と、を備えることを特徴とするクラスタリング方法。
【請求項6】
コンピュータによって実行されるクラスタリング方法であって、
ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、
分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、
前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、
前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、
当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング段階と、を備え、
前記クラスタリング段階では、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とするクラスタリング方法。
【請求項7】
コンピュータを請求項1ないし4のいずれかに記載のクラスタリング装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、医療データにおいて特定疾病のリスクを予測するのに適したクラスタリングを行うことのできるクラスタリング装置、方法及びプログラムに関する。
【背景技術】
【0002】
医療データに基づいて、対象者をクラスタリングしたい場合がある。特許文献1や特許文献2に代表されるように、健康管理システム等が大きな広がりを見せている。このような健康管理システムでは、利用者に対して健康上のアドバイス等を行う場合が多いが、特許文献3に示すように、利用者を実際の健康データを元に分類した上でアドバイスを行った方が、より行動変容につながりやすく、効果的なアドバイスが可能となる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2013-085626号公報
【特許文献2】特開2010-264088号公報
【特許文献3】特開2010-170534号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、近年、潜在トピック分析(特に、潜在的ディリクレ配分法:Latent dirichlet allocation:LDA)に代表される、高精度な分類手法が注目を浴びている。このLDAを用いて、健康要因の似通った人を分類し、将来健康状態が悪化するハイリスク者を抽出することも可能である。
【0005】
一般的に教師無し学習では、得られたデータから特徴の似通ったもの同士を類型化し、LDAに代表されるトピック分類では、教師無し学習により複数トピックの混合としてデータを表現して類型化を行う。医療データを対象とする場合、トピックは、健康状態を表す単語の発生確率の混合として表現されることとなる。
【0006】
一般的に、レセプトデータ(診療明細情報)や健診データ等の医療データを用いて類型化を行い、糖尿病等の特定の疾病リスクを予測したいとき、教師なし学習では不要な特徴(当該特定の疾病とは関係のない特徴)を取り扱ってしまうことから精度が低下してしまうという課題がある。
【0007】
図1は、当該課題を模式的に説明するための例を示す図であり、同一の医療データに対して類型化を行った2つの結果R10,R20が示されている。当該医療データにおいて糖尿病の疾病リスクを予測したい場合の類型化の結果として、結果R10は教師無し学習により不要な特徴が現れてしまった望ましくない例を、結果R20は糖尿病の予測に適した望ましい例を、それぞれ示している。
【0008】
すなわち、結果R10においては医療データ内の一連の患者は、健常者のクラスタC11と、骨折の患者のクラスタC12と、風邪の患者のクラスタC13と、糖尿病の患者のクラスタC14と、に類型化(すなわち、分類)されてしまっている。ここで特に、「骨折」や「風邪」は基本的には「糖尿病」とは独立であるので、このような結果R10の類型化は、「糖尿病」のリスク予測に用いるものとしては不適切である。「不要な特徴」である「骨折」や「風邪」が現れることで、「糖尿病」自体の分析を精密に行うことができない結果となっている。
【0009】
一方、結果R20は、医療データ内の一連の患者を、「糖尿病」の疾病リスク予測に関して適切に類型化したものとなっている。すなわち、健常者のクラスタC21と、糖尿病予備軍AのクラスタC22と、糖尿病予備軍BのクラスタC23と、糖尿病患者のクラスタC24と、に類型化されている。結果R20は全て糖尿病についての観点からの類型化であり、結果R10のように「骨折」や「風邪」といった「不要な特徴」は現れていないことから、適切に糖尿病の疾病リスクの検討が可能な結果となっている。
【0010】
本発明は、上記従来技術の課題に鑑み、特定疾病のリスクを予測するのに適したクラスタリングを行うことが可能なクラスタリング装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明は、クラスタリング装置であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング部と、を備えることを特徴とする。
【0012】
また、本発明は、クラスタリング装置であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算部と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング部と、を備え、前記クラスタリング部は、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とする。
【0013】
また、本発明は、クラスタリング方法であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、当該特徴ベクトルの各単語頻度に対して前記単語ごとに計算された重みを付与したうえで、前記分析対象の一連の対象者を潜在トピック分析によりクラスタリングするクラスタリング段階と、を備えることを特徴とする。
【0014】
また、本発明は、クラスタリング方法であって、ユーザより分析対象とする疾病名及び当該疾病の発症期間の指定を受け付け、各対象者における複数年代に渡る健康を各年代において評価した結果の単語リストとしての重み計算用の医療データを解析して、単語ごとに、前記発症期間を経て前記疾病が発症することへの関連度を重みとして計算する重み計算段階と、分析対象の一連の対象者についてそれぞれ、健康評価に関連する単語によるバグオブワーズの形式により、当該対象者の健康状態に関する特徴ベクトルを受け取り、前記分析対象の一連の対象者の特徴ベクトルを列挙した行列データに対して潜在トピック分析を施すことで、当該行列データを対象者及びトピックの関係行列θとトピック及び単語の関係行列Φとの積に分解し、前記行列データDに対して前記単語ごとに計算された重みWを付与した行列データW*Dに対して潜在トピック分析を施して得られる、対象者及びトピックの修正された関係行列θ'とトピック及び単語の修正された関係行列Φ'とを、潜在トピック分析を施すことなく近似値として求め、当該近似値として求められた修正された関係行列θ'を前記分析対象の一連の対象者のクラスタリング結果とするクラスタリング段階と、を備え、前記クラスタリング段階では、前記近似値として求めるに際して、前記重みWを恒等変換に微小変換を加えたものと判定される複数の変換の積に分解し、当該複数の変換を逐次的に前記関係行列θ及び前記関係行列Φに対して摂動として加えることにより、前記修正された関係行列θ'及び前記修正された関係行列Φ'をそれぞれ近似値として求めることを特徴とする。
【0015】
さらに、本発明は、コンピュータを前記クラスタリング装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【0016】
本発明によれば、単語ごとに、発症期間を経て疾病が発症することへの関連度を重みとして計算し、バグオブワーズの形式で与えられている分析対象の一連の対象者をクラスタリングするに際して当該単語重みを考慮するので、特定疾病のリスクを予測するのに適したクラスタリング結果を得ることができる。
【図面の簡単な説明】
【0017】
図1】特定の疾病リスクの予測を行いたい場合に、教師無し学習による類型化では無関係な特徴を取り扱うことから精度が低下してしまうという課題を模式的に説明する例を示す図である。
図2】一実施形態に係るクラスタリング装置の機能ブロック図である。
図3】重み算出部が読み込む医療データの模式的な例を示す図である。
図4】共起率としての重みを各単語について計算した例を示す図である。
図5】医療データにおいて共起又は非共起を調べる年代を説明するための図である。
図6】潜在トピック分析によるクラスタリングを説明するための図である。
図7】第二実施形態における修正計算を説明するための図である。
【発明を実施するための形態】
【0018】
図2は、一実施形態に係るクラスタリング装置の機能ブロック図である。クラスタリング装置10は、重み計算部11、分析対象文書化部12及びクラスタリング部13を備える。各部の概要は以下の通りである。
【0019】
重み計算部11では、重み計算用の全患者・年代のデータとしての医療データを読み込むと共に、データ分析を実施するユーザより分析対象の疾病名及び発症期間の指定を受け付け、その詳細を後述する処理によって単語ごとの重みを求めて、クラスタリング部13に渡す。当該単語ごとの重みの情報を利用することにより、当該指定された疾病が当該指定された発症期間の経過後(例えば発症期間に1年を指定した場合は1年後)に発症するリスクを抱えた患者をクラスタリング部13において高精度に抽出すると共に、クラスタリング結果を参照することで当該リスク要因を詳細に分析することが可能となる。
【0020】
図3は、重み計算部11が当該読み込む医療データの模式的な例を示す図である。図3の例では、全医療データは患者Aさん〜Fさんに関するものであり、当該各患者の各年代における医療データが与えられている。すなわち、患者Aさんについて40歳〜43歳の各年代における医療データと、患者Bさんについて42歳〜45歳の各年代における医療データと、患者Cさんについて41歳〜43歳の各年代における医療データと、患者Dさんについて50歳〜53歳の各年代における医療データと、患者Eさんについて51歳〜53歳の各年代における医療データと、患者Fさんについて52歳〜55歳の各年代における医療データと、が与えられている。
【0021】
このような各患者の各年代につき与えられる医療データの具体的な内容としては、レセプトデータ(診療明細情報)及び/又は健診データを利用することができる。レセプトデータには、各患者につき診断された病名や症状、また、処方された薬及びその量などが日時と共に記載されている。健診データには、各患者につき血圧、体重その他といった健康診断の各項目とその評価値とが、診断の日時と共に記載されている。
【0022】
従って、当該医療データは、各患者の各年代につき、その健康状態を反映した特定の単語を列挙したものとなっている。また、単語の種類によっては、数値が紐付けられることとなる。例えば、レセプトデータにおいて処方された薬の名前を表す単語には、その量が紐付けられる。健診データにおいて血液検査の各項目には、その評価値が紐付けられる。
【0023】
また、当該医療データは、参照することで、各患者につき、特定の年代において特定の疾病の発症がある場合は、その旨の情報を得ることができるように構成されている。図3の例では、患者Aさんは43歳において高脂血症を発症しており、患者Dさんは51歳において脂肪肝を発症しており、患者Fさんは52歳において糖尿病腎症を発症している。なお、こうした情報を得ることが可能なように、医療データは疾病の診断の旨の情報が含まれるレセプトデータを含んで構成されていることが好ましいが、特定疾病の特定年代における発症の旨の情報が得られさえすれば、必ずしもレセプトデータを含んでいなくともよい。
【0024】
なお、医療データの記載項目の具体例として、後述する図4における欄C2における各記載を挙げることができる。
【0025】
分析対象文書化部12では、健康分析対象の一連の患者の医療データを読み込み、各患者の医療データを文書化して、クラスタリング部13に渡す。
【0026】
分析対象文書化部12にて当該読み込む医療データは、重み計算部11で読み込んだのと同種のものであり、レセプトデータ及び/又は健診データを含んで構成されるものである。ここで、重み計算部11で読み込んだデータとは別の患者についてのデータを読み込んでもよいし、重み計算部11で読み込んだデータの一部又は全部の患者のデータを含めて分析対象として読み込むようにしてもよい。
【0027】
ただし、重み計算部11で読み込んだデータは図3に例示したように、各患者につき一連の年代に渡るものであったが、分析対象文書化部12で読み込むデータは、各患者につき、1つの年代のみで構成されている。図3の例で、各患者A〜Fの現在(例えば2014年)の年齢における医療データが図示する最後の部分であるとすると、分析対象文書化部12では例えば、各患者A〜Fの当該現在の年代における医療データ(Aの43歳、Bの45歳、…、Fの55歳の医療データ)を読み込むことができる。
【0028】
分析対象文書化部12では、以上のような各患者の各1つの年代の医療データを、文書化する。当該文書化は、後段のクラスタリング部13において潜在トピック分析によるクラスタリングが可能な形式へと予め変換しておく前処理に相当する。
【0029】
分析対象文書化部12では具体的には、周知の形式であるBag of Words(バグオブワーズ)の形式で文書化する。すなわち、健康状態を表す複数m個の単語i1, i2, ,…, imをそれぞれ何回用いるかという単語頻度のm次元ベクトルの形で、文書化する。当該複数の単語は、医療データ内に現れたものから作成することができる。
【0030】
すなわち、レセプトデータであれば診断された病名や症状、また、処方された薬等の、記載されている健康状態や健康関連品目、健康関連事項を表す各単語をそのまま、バグオブワーズにおける単語頻度ベクトルの各要素となる単語として利用する。健診データであっても同様に、検査項目を表す各単語をそのまま、バグオブワーズにおける単語の各々として利用する。また、記載項目がフレーズで構成されていれば、所定の単語抽出フィルタで単語のみを抽出して利用してもよい。
【0031】
頻度に関しては、単語に対して上記例示した薬の量や血液検査の項目の場合のように数値が紐付けられている場合は、単語ごとに予め設定しておく変換規則に従って、紐付けられている数値を頻度としての値に変換することができる。また、各単語における数値の紐付けの有無によらず、当該単語が医療データ内にあれば頻度「1」、なければ頻度「0」とするといった形で文書化してもよい。
【0032】
また、頻度の対応づけを含む分析対象文書化部12における当該文書化には、本出願人による特願2013-159323号(数値データ解析装置及びプログラム)、特願2013-163207号(数値データ解析装置及びプログラム)、特願2013-217817号(数値データ文書化装置及びプログラム)などを利用してもよい。また、バグオブワーズにおける単語頻度ベクトルの各要素の単語ごとに、以上説明した頻度を対応付ける手法を使い分けるようにしてもよい。
【0033】
クラスタリング部13では、分析対象文書化部12から送られる分析対象の各患者の単語頻度ベクトル(分析対象の各患者の特徴ベクトルに相当)に対して、LDA等の潜在トピック分析を行うことにより、各患者のクラスタリング結果を得る。
【0034】
当該実施形態では特に、分析対象の各患者の特徴ベクトルをそのままクラスタリングするのではなく、重み計算部11で得られた単語ごとの重みを予め掛け合わせたうえでクラスタリング部13がクラスタリングを行うことにより、特定疾病が特定期間内において発症しうるか否かという観点に特化したクラスタリング結果を得ることができる。
【0035】
すなわち、分析対象文書化部12より得られる、各患者Aについて所定の複数m個の単語i1, i2, ,…, imのそれぞれの頻度を与えた特徴ベクトルをV[A]=(f1[A], f2[A], …, fm[A])とすると、クラスタリング部13は当該特徴ベクトルV[A]をそのままクラスタリングするのではなく、重み計算部11で得られる、当該各単語i1, i2, ,…, imのそれぞれの重みw1, w2, …, wmを掛け合わせた、V'[A]=(w1* f1[A], w2*f2[A], …, wm*fm[A])をクラスタリング対象として、LDA等の潜在トピック分析を行う。
【0036】
ここで、重み計算部11の詳細説明で後述するように、当該掛け合わせる各単語i1, i2, …, imのそれぞれの重みw1, w2, …, wmは、特定疾病が特定期間内に発症することに関連した単語についてその単語頻度を大きくさせ、関連しない単語についてその単語頻度を小さくさせるような値として、求められている。従って、各患者Aにつき当該重みを掛け合わせた特徴ベクトルV'[A]を特徴ベクトルとしてクラスタリングすることで、特定疾病が特定期間内において発症しうるか否かという観点に特化したクラスタリング結果を得ることができる。
【0037】
図1の例であれば、重みw1, w2, …, wmを用いることで、分析しようとしている「糖尿病」とは関係ない要因として、結果R10に現れる「骨折」や「風邪」に関連する単語の頻度を小さくし、同時に、「糖尿病」に関連する単語の頻度を大きくすることができる。こうして、クラスタリング対象の特徴ベクトルを、原データV[A]をそのまま用いるのではなく、予め「糖尿病」に関する特徴を大きく反映したものV'[A]へと変換しておくことにより、結果R20として示すような、「糖尿病」に特化したクラスタリング結果を得ることができる。
【0038】
次に、上記のような各単語i1, i2, …, imの重みw1, w2, …, wmを求める重み計算部11の詳細について説明する。
【0039】
ここで、データ分析を行うユーザが、重み計算部11に対する指定入力として、1年後に糖尿病を発症する人を予測したいという旨を入力した場合を例として説明する。すなわち、ユーザは分析対象の疾病名として「糖尿病」を指定し、発症期間として、「1年後」を指定した場合を例とする。
【0040】
この場合、重み計算部11に対する入力としての図2で例示したような各患者の各年代における医療データ内の単語のうち、「1年後」に「糖尿病」を発症している事例に関連する単語を優先的に残すような重みが、求めるべきものとなる。
【0041】
具体的に当該重みを計算するには、1年前(n-1歳の時点)の医療データと1年後(n歳の時点)の医療データでの糖尿病疾病との「共起」関係を見れば良い。すなわち、患者Aさんの1年前(n-1歳の時点)の医療データに薬剤名「a」が記載されており、1年後(n歳の時点)の医療データに診断結果としての「糖尿病」が記載されている場合には、「共起」が発生しており、関連性があると考え、当該薬剤名「a」についてのベクトルv[a]=(関連度、非関連度)=(共起数、非共起数)のベクトル要素のうち関連度に、患者Aさんからの共起件数に対する寄与分として「1」を加える。同様に、患者Bさんの1年前(m-1歳の時点)の医療データに薬剤名「a」の記載があるが、1年後(m歳の時点)の医療データに診断結果としての「糖尿病」の記載がない場合には、上記ベクトルv[a]の非関連度に、患者Bさんからの非共起件数に対する寄与として「1」を加える。
【0042】
なお、上記で寄与として関連度または非関連度に「1」を「加える」とは、次の操作を意味している。すなわち、薬剤名「a」についてのベクトルv[a]に初期値として(関連度、非関連度)=(0, 0)を設定したうえで、全ての患者についてそれぞれ関連度(共起)又は非関連度(非共起)のいずれに該当するかを調べ、関連度に該当する患者総数と非関連度に該当する患者総数とを「集計」することにより最終的なベクトルv[a]の値を求める際の、当該「集計」の操作が、「1」を「加える」という操作である。
【0043】
こうして、分析対象文書化部12で得る特徴ベクトルの要素をなしている全ての単語i(上記の説明では当該単語iの一例として薬剤名「a」を用いた)に関して、重み計算部11に入力される医療データに含まれる全患者のそれぞれにつき、共起に該当する(n歳に「糖尿病」を発症しており、且つ、n-1歳データに単語iが存在する)か、あるいは非共起に該当する(n歳に「糖尿病」を発症しておらず、且つ、n-1歳データに単語iが存在する)か、を調べることで、共起となる患者の総数と非共起となる患者の総数とを求める。ここで、n歳で「糖尿病」を発症しているか否かは、n歳データに単語として「糖尿病」があるか否かによって判定すればよい。「糖尿病」以外の特定疾病をユーザが指定した場合も同様に、当該指定された特定疾病を表す単語の有無により判定すればよい。
【0044】
なお、n歳において「糖尿病」を発症しており、且つ、n-1歳データに単語iが存在しない患者と、n歳において「糖尿病」を発症しておらず、且つ、n-1歳データに単語iが存在しない患者と、も医療データ内に存在しうる。このような患者については、単語iにおける共起・非共起のいずれの患者総数においてもカウントしないものとして扱う。
【0045】
そして、当該求めた総数により、単語iについてのベクトルv[i]=(関連度[i]、非関連度[i])=(共起の患者総数、非共起の患者総数)を構成する。当該構成されたベクトルv[i]により、当該単語iに関する重みwiを以下の式(1)にて求めることができる。
【0046】
【数1】
【0047】
当該式(1)より明らかなように、重みwiは、単語iに関して特定疾病を特定期間に発症すること(糖尿病を1年で発症すること)に関する共起率という意味合いを有している。
【0048】
図4は、当該共起率としての重みを各単語について計算した実際の例を表形式で示す図である。欄C1には説明の際に参照するための行数が、欄C2には各単語iに対応する医療データ内の記載内容のそれぞれが、欄C3には式(1)における関連度[i]すなわち1年後に「糖尿病」を発症し且つ1年前の医療データに単語iが存在する患者数(共起数)が、欄C4には式(1)における非関連度[i]すなわち1年後に「糖尿病」を発症せず且つ1年前の医療データに単語iが存在する患者数(非共起数)が、欄C5は当該欄C3,C4の関連度[i],非関連度[i]から式(1)を用いて計算される共起率(重みwi)が、それぞれ記載されている。図4では、共起率の高いデータの順にソートすることで、医療データの一部分のみを表示してある。
【0049】
なお、欄C2は、各患者の各年代における医療データの記載項目の例を示すものでもある。特定の疾病が診断されたことを表す疾病名に関する単語iとして、16行目の「2型糖尿病性腎症第1期」や、30行目の「食道ヘルニア」、31行目の「2型糖尿病・腎合併症あり」、33行目の「重症感染症」が挙げられる。分析ユーザが重み計算部11に対して指定する特定疾病の名称としては、「糖尿病」の他、こうしたものも指定可能であり、分析したい所定の疾病名を指定すればよい。
【0050】
また、欄C2にて20行目や34行目は処方や処置に関する単語i、22行目及び25〜27行目は処置に用いる器具に関する単語iが示されている。その他の行は用いた薬剤名とその量とが示されている。例えば1行目には「A剤 0.3mg」と記載され「A剤」を「0.3mg」だけ用いたことを表している。単語iとしては「A剤」のみを利用してよい。
【0051】
なお、重み計算部11において入力される全医療データを解析することで以上のように各単語iにつき、特定期限で発症する特定疾病との関係が、各患者において共起又は非共起であるかを判定するに際しては、各患者の医療データのうちいずれの年代(糖尿病の発症有無を確認する年代nとその1年前であるn-1)を調べて判定するかという点で自由度があるが、これに関しては、種々の実施形態が可能である。図5は当該調べる年代に関する各実施形態を説明するための、重み計算部11に入力される医療データの一部の例を示す図である。なお、以上の説明と同じく、1年後に糖尿病を発症する人を予測しようとする場合を例に説明する。図5では患者A〜Cが存在するが、これは図3の例とは独立の患者A〜Cである。
【0052】
図5では、最上段側に各患者の各年代(年齢)において取得した医療データの取得年代(西暦)が時間軸として示され、患者Aについては2010年〜2014年の各年において41歳〜45歳の医療データが取得されており、患者Bについては2011年〜2014年の各年において47歳〜50歳の医療データが取得されており、患者Cについては2010年〜2014年の各年において45歳〜49歳の医療データが取得されている場合を例示している。そして、破形マークで示しているように、患者Aは45歳(2014年)の時点で糖尿病を発症し、患者Bは48歳(2012年)の時点で糖尿病を発症し、患者Cは糖尿病を発症していないものとする。
【0053】
共起又は非共起の判定を行うための対象年代の設定の一実施形態として、枠F1で囲んでいるように、糖尿病を発症しているか否かを調べる年代nと、その一年前で各単語iの共起/非共起を調べる年代n-1とを、暦に従って全ての受診者で共通となるように設定してもよい。
【0054】
枠F1の例では、各患者につき、西暦2014年の時点の医療データで糖尿病を発症しているかをまず調べた後、1年手前の西暦2013年の時点の医療データ内の各単語iを調べ、2014年時点で糖尿病を発症している患者の医療データに含まれる単語iは共起としてカウント(当該単語iに関し、当該患者からの寄与分を共起としてカウント)し、2014年時点で糖尿病を発症していない患者の医療データに含まれる単語iは非共起としてカウント(当該単語iに関し、当該患者からの寄与分を非共起としてカウント)する。
【0055】
図5の患者A〜Cの例では、患者A,Bの2013年の医療データ内の単語iが共起としてカウントされ、患者Cの2013年の医療データ内の単語iは非共起としてカウントされることとなる。なお、患者Bに関しては2012年に初めて糖尿病を発症するが、その後2014年まで当該症状が継続しており、その旨が2014年の医療データより判断可能であるという前提で、共起としてカウントしている。
【0056】
なお、当該暦に従って全患者で共通の年代n, n-1を調査する場合は、当該年代n(及びn-1)の設定に関しては、現在を年代nとするといった所定設定を用いてもよいし、分析を行うユーザが重み計算部11に疾病名及び発症期間を指定する際に併せて年代nを指定するようにしてもよい。
【0057】
また、共起又は非共起の判定を行うための対象年代の設定の別の一実施形態として、各患者につきまずその医療データが存在している全年齢範囲の医療データを重み計算部11において調べることにより、糖尿病の発症があるか否かを確認し、発症があった患者については初めて発症した年代(年齢)をn歳とし、n-1歳の医療データに含まれる単語iを全て共起としてカウントすることができる。逆に、発症がなかった患者については、医療データが存在している任意の年代をn歳とし、n-1歳の医療データに含まれる単語iを全て非共起としてカウントすることができる。
【0058】
図5の例であれば、患者Aについては範囲R1として示すように、糖尿病を初めて発症した年齢としてn=45歳を設定し、n-1=44歳の医療データ内の単語iを共起としてカウントする。患者Bについては範囲R2として示すように、糖尿病を初めて発症した年齢としてn=48歳を設定し、n-1=47歳の医療データ内の単語iを共起としてカウントする。患者Cについては範囲R3やR4その他といったように、任意にn,n-1歳を設定し、n-1歳の医療データ内の単語iを非共起としてカウントする。
【0059】
以上、1年後に特定疾病の一例としての糖尿病を発症するか否かという観点に特化したクラスタリングをクラスタリング部13において行うための、重み計算部11における重みの計算の手法を説明した。分析ユーザからの指定入力を受けて、2年後、3年後、また一般にN年後に特定疾病を発症するか否かという観点に特化したクラスタリングを行うための重み計算も、同様に可能である。
【0060】
すなわち、1年後に発症する場合は年代n,n-1の医療データにおいて、年代nで特定疾病が発症しているか否かと、年代n-1の医療データ内の単語iと、の情報から患者ごとに共起/非共起を判定し、式(1)に従って各単語iの重みを求めた。
【0061】
全く同様にして、N年後に発症する場合は年代n,n-Nの医療データにおいて、年代nで特定疾病が発症しているか否かと、年代n-Nの医療データ内の単語iと、の情報から患者ごとに共起/非共起を判定し、式(1)に従って各単語iの重みを求めることができる。年代n,n-Nの患者ごとの設定も、図5で説明したのと同様にすればよい。
【0062】
また、重み計算部11では、分析ユーザからの指定入力を受けてN年以内に特定疾病を発症するか否かという観点に特化したクラスタリングをクラスタリング部13にて行うための重みを求めることも可能である。この場合1年後からN年後までの各k年後(k=1, 2, …, N)に特定疾病を発症するか否かについての、各単語i1, i2, …, imのそれぞれの重みw1(k), w2(k), …, wm(k)を計算したうえで式(2)のように当該各年の平均を取ることで、N年以内に特定疾病を発症するか否かの観点に特化したクラスタリングのための重みw1(N年以内), w2(N年以内), …, wm(N年以内)を求めることができる。
【0063】
【数2】
【0064】
また、重み計算部11では、分析ユーザからの指定入力を受けて、N年後に複数の特定疾病の中のいずれか(少なくとも1つ)を発症するか否かという観点に特化したクラスタリングをクラスタリング部13にて行うための重みを求めることも可能である。この場合、N年後に複数の中の個別の特定疾病を発症することに関する重みをそれぞれ求めて、上記の式(2)と概ね同様に、当該個別の特定疾病ごとの重みを複数の疾病で平均すればよい。
【0065】
さらに、重み計算部11では、分析ユーザからの指定入力を受けて、特定疾病が完治せずその治療が複数年に渡って継続されるものであるとき、特定疾病が(既に発症済みではなく)特定期間後に初めて発症することに関してより特化したクラスタリングをクラスタリング部13において行うための重みを求めることも可能である。
【0066】
例えば、糖尿病は完治しないため、複数年にわたって治療が続けられる。この際、特定の糖尿病治療薬が継続的に使用されることになるので、当該薬を表す単語は糖尿病を既に発症している多くの患者において自ずと共起する傾向が強いこととなる。従って、以上説明した手法でそのまま計算すると、当該特定の糖尿病治療薬を表す単語iの関連性[i]は大きな値となり、重みwiも大きな値となる。
【0067】
しかしながら、このような特定疾病の発症後に継続的に使用される薬を表す単語の重みを大きくしてしまうと、特定疾病を初めて発症する患者を高精度にクラスタリングし、そのリスク要因を分析したい場合に、クラスタリングの精度を下げてしまうこととなる。
【0068】
そこで、糖尿病治療薬といったような、特定疾病の発症後に継続的に現れることとなる単語の影響を排除するような形で重みを計算するようにしてもよい。影響を排除するためには、各単語iにつき同一年代における関連性[i](同一年代)を計算し、以上説明した手法で計算した重みから減算すればよい。具体的には、次の通りである。
【0069】
ここで、説明例として、ユーザからの分析指定が第一指定として特定疾病を1年後に発症し、且つ、第二指定として1年後に当該特定疾病を初めて発症する場合を用いる。この場合、以上の手法では第一指定のみを考慮することで、各患者につき、n歳で特定疾病を発症しているか否かを確認し、n-1歳における各単語iを調べることで、各単語iの共起/非共起を判定した。ここでさらに、第二指定を考慮することで、各患者につき、n-1歳の時点で既に特定疾病(n歳で発症したか否かを確認した特定疾病)を発症しているか否かを調べ、各単語iに関して、n-1歳の時点で既に特定疾病を発症している患者の数(既発症者数)を関連性[i](同一年代)として求めればよい。
【0070】
そして、前述の式(1)においてさらに当該求めた関連性[i](同一年代)を減ずるようにすることで、以下の式(3)のようにして、重みwiを計算すればよい。なお、当該式(3)を用いる場合、前提となる式(1)における関連度[i]の算出においては、n-1歳時点で当該特定疾病の発症の有無を考慮しない実施形態を適用するものとする。
【0071】
【数3】
【0072】
なお、n-1歳の時点で既に特定疾病を発症しているか否かは、n歳の時点でその医療データを参照して特定疾病の単語の有無を調べたのと全く同様に、n-1歳の時点の医療データ内における特定疾病の単語の有無によって判定することができる。以下説明するその他の年齢の時点での特定疾病の発症の判定も同様に可能である。
【0073】
上記の説明では1年後に初めて特定疾病を発症する場合を説明したが、N年以内に初めて特定疾病を発症する場合をユーザ指定によって扱う際は、次のようにすればよい。すなわち、n歳で特定疾病を発症しているか否かを確認し、n-N歳における各単語iを調べることで関連度[i]及び非関連度[i]を求めると共に、n-N歳において特定疾病を既に発症している患者総数を関連性[i](同一年代)として、上記の式(3)から重みを求めればよい。
【0074】
同様に、N年「以内」ではなくN年「後」に初めて特定疾病を発症する場合をユーザ指定によって扱う際は、n-N歳、n-N+1歳、n-N+2歳、…、n-1歳のいずれかの時点において特定疾病を既に発症している患者総数を関連性[i](同一年代)として求めて、上記の式(3)から重みを求めればよい。
【0075】
次に、クラスタリング装置10の動作の別の一実施形態として、以上説明してきた実施形態(第一実施形態とする)よりも計算量を抑制することが可能な実施形態(第二実施形態とする)を説明する。
【0076】
すなわち、第一実施形態では、重み計算部11に対して分析ユーザが特定疾病及び発症期間その他の、自身が高精度にリスク要因を分析したい内容を指定することで、これに特化した単語iごとの重みが計算された。クラスタリング部13では、ユーザ指定条件より計算された重みを、分析対象の一連の患者の文書化された医療データに掛け合わせたうえでLDA等の潜在トピック分析を実施し、ユーザ指定条件に特化したクラスタリング結果を得ていた。従って、第一実施形態では、クラスタリング部13において個別のユーザ指定条件ごとにそれぞれ、LDA等の相応の計算量を伴う潜在トピック分析を行う必要があった。ユーザ指定条件が何種類もの多数に渡れば、その数だけLDA等の相応の計算量を伴う計算を実施する必要があった。
【0077】
これに対して、第二実施形態においては、クラスタリング部13におけるLDA等の相応の計算量を伴う潜在トピック分析は、多種類存在しうるユーザ指定条件に依存しない共通の計算処理として1回のみ行うようにすることで計算量を抑制し、得られたクラスタリング結果を、ユーザ指定条件により計算された重みによってそれぞれ修正することで、ユーザ指定条件に特化したクラスタリング結果を求める。当該修正処理は簡素な計算により可能であるため、第一実施形態にてLDAを個別に何回も適用するのと異なり、第二実施形態では計算量を抑制することが可能となる。具体的には、次の通りである。
【0078】
まず、第二実施形態では、クラスタリング部13でユーザ指定条件に依存しない形で行うLDA等による潜在トピック分析によるクラスタリングは、分析対象文書化部12より得られた一連の患者の特徴ベクトルをそのままの形でクラスタリングする。すなわち、前述のように、第一実施形態では患者Aの特徴ベクトルV[A]に重みを掛け合わせたV'[A]がクラスタリング対象であったのに対して、第二実施形態では、V[A]がそのままクラスタリングされる。
【0079】
図6は、クラスタリング部13における当該潜在トピック分析によるクラスタリングの結果及びその意味合いを説明するための図である。後述する第二実施形態における重みによるクラスタリング結果の修正の説明の前提事項として、まず図6を説明する。
【0080】
図6にて、分析対象文書化部12より得られる分析対象の全データがDであり、各患者Aの特徴ベクトルV[A]を行ベクトルとして列挙した行列形式のデータである。すなわち、行列Dの各行は各患者の健康状態を表現したバグオブワーズとしての「文書」であり、その列方向に並ぶ要素は各単語i1, i2, …, imの頻度数となる。
【0081】
LDA等の潜在トピック分析では、文書(各患者に対応する文書)をこのようにバグオブワーズ、つまり単語とその出現頻度として取り扱い、文書においてそのトピックを推定する。例えば、「経済」トピックからは、「株価」、「増収増益」・・・といった単語が出現するだろうし、「スポーツ」トピックからは「野球」、「サッカー」といった単語が出現することになる。
【0082】
これは、観測されたバグオブワーズ表現、つまり単語i(列成分)と文書u(行成分)との関係行列Dを、図6に示すように、単語i(列成分)とトピックk(行成分)の関係行列Φと、文書u(行成分)とトピックk(列成分)の関係行列θとの積に分解することを意味している。このトピックkを推定するのがLDAであり、クラスタリング部13の計算により当該図6に示すような「D=θ×Φ」の分解結果が得られる。
【0083】
このようにLDAに代表されるトピックモデルでは、各文書が固有のトピック比率を持ち、単語はこのトピック比率に従いトピックを選択したあと、そのトピックに固有の比率で生成されるという仮定をおいている。
【0084】
そして、各患者のクラスタリング結果は、文書(患者)uとトピックkとの関係行列θとして表現されているが、具体的にどう解釈するかは種々の態様が可能である。
【0085】
例えば、K個の各トピックkiがそれぞれクラスタに対応しており、各患者はそのトピック比率(k1, k2, …, kK)の値が最大となるトピックに対応するクラスタに属するという解釈を与えることで、クラスタリング結果を得ることができる。あるいは、K個の各トピックkiがそれぞれクラスタに対応しており、各患者はそのトピック比率(k1, k2, …, kK)の寄与分の人数(1人や0人といった整数ではなく、小数で表現される人数)に分かれて、各クラスタに分かれて所属しているという解釈により、クラスタリング結果を得ることもできる。
【0086】
以上、図6のような潜在トピック分析におけるクラスタリングの詳細を前提として、第二実施形態における、クラスタリング部13での重みの利用を説明する。なお、ユーザからの特定疾病等の指定入力を受けての重み計算部11における単語iごとの重みの計算自体は、第一実施形態と全く同様である。
【0087】
クラスタリング部13では、重みを掛けない各患者Aのそのままの特徴ベクトルV[A]で構成された全データDの分解結果「D=θ×Φ」において、ユーザからの指定入力に従って重み計算部11にて得られた各単語i1, i2, …, imの重みw1, w2, …, wmの情報を用いて簡素な修正計算(後述)を行うことで、クラスタリング結果を表す行列「θ」を「θ'」へと修正すると共に、行列「Φ」を「Φ'」へと修正したものとして、最終的なクラスタリング結果を得る。
【0088】
当該修正計算の説明のため、まず、全データDの分解結果「D=θ×Φ」を以下の式(4)のように、要素表示する。すなわち、行列Dはn行m列であり、患者数がn、単語数がmである。行列θはn行K列であり、同じく患者数がnであり、トピック数がKである。行列ΦはK行m列であり、同じくトピック数がKであり、単語数がmである。
【0089】
【数4】
【0090】
図7は、当該修正計算を説明するために、計算の主要な各段階を列挙した図である。まず、欄[10]に示すように、式(10)は上記要素表示した式(4)と同一であって、重み付与しない全データDが「D=θ×Φ」と分解された結果を表している。当該修正計算の方針は矢印で示すように、当該式(10)を出発点として式(20)に示すように、重み付与されたデータW*Dの分解結果「W*D=θ'×Φ'」へと逐次近似の繰り返しによって到達するというものである。ここで、逐次近似の際の各ステップの計算が順次、欄[1],[2], …, [i], …, [M]に示され、最終的に欄[10]における式(10)と式(20)とをつなげる関係式が欄[20]に示されている。
【0091】
なお、式(20)その他の箇所において「*」はアダマール積であり、行列Wは重み計算部11にて得られた各単語i1, i2, …, imの重みw1, w2, …, wmを各患者につき共通の重みの行ベクトルとしたものを、全患者数nだけ並べて得られる重み行列Wである。すなわち、式(4)の成分表示に倣って式(20)の右辺を成分表示すると以下の式(5)となる。
【0092】
【数5】
【0093】
逐次計算の各段階は以下の通りであり、欄[1],[2], …, [i], …, [M]に示す計算がこの順番に実行される。まず、欄[1]では、式(1-1)〜(1-4)がこの順番に計算される。
【0094】
まず、式(1-1)では、出発点である式(10)を近似変形している。すなわち、式(5),(20)における重み行列Wと共通サイズ(n行m列)であり、その全ての要素が十分に1に近い行列W1を式(10)に対してアダマール積として乗じたもの「D1=W1*D」をLDA等潜在トピック分析(以下、「LDA等」と称する)により分解した結果の近似値を、既にLDA等による分解結果が得られている「D=θ×Φ」に対する微小変化として、「Φ」の部分は変化せずに「θ」の部分のみが「θ1」へと変化したものとして「D1≒θ1×Φ」とする。なお、記号「≒」は「近似的に等しい」を意味する。図7では、当該記号「≒」を通常の「=」の上に「〜」(チルダ)を付与したものとして描いているが、同じ意味である。
【0095】
当該式(1-1)の近似により、近似値「θ1」は、式(1-2)に示すように「D1」に対してΦの逆行列Φ-1を右から乗ずることで、「θ1= D1×Φ-1」として求めることができる。なお、ここで逆行列Φ-1は行列Φに対する周知の擬似逆行列(ムーアペンローズの擬似逆行列)として求めればよい。
【0096】
そして、以上の式(1-1),(1-2)の結果を引き継いで同様の近似計算を「Φ」について実施するのが続く式(1-3),(1-4)である。すなわち、式(1-3)では式(1-1)で定義した行列「D1」に対して、式(5),(20)における重み行列Wと共通サイズ(n行m列)であり、その全ての要素が十分に1に近い行列W2を式(1-1)に対してアダマール積として乗じたもの「D2=W2* D1」をLDA等潜在トピック分析(以下、「LDA等」と称する)により分解した結果の近似値を、既にLDA等による分解結果が式(1-1),(1-2)にて近似値として得られている「D11*Φ」に対する微小変化として、「θ1」の部分は変化せずに「Φ」の部分のみが「Φ1」へと変化したものとして「D2≒θ1×Φ1」とする。
【0097】
当該式(1-3)の近似により、近似値「Φ1」は、式(1-4)に示すように「D2」に対してθ1の逆行列θ1-1を左から乗ずることで、「Φ11-1×D2」として求めることができる。なお、ここで逆行列θ1-1は行列θ1に対する周知の擬似逆行列(ムーアペンローズの擬似逆行列)として求めればよい。
【0098】
以上、欄[1]に示す1段階目の計算では、出発点の式(10)「D=θ×Φ」に対する近似の適用により、LDA等で実際に行列分解を行うことなく、データ行列「D」を微小変化したデータ行列「D2」について、LDA等による行列分解の近似結果「D2≒θ1×Φ1」を得た。2段階目以降も、1段階目と全く同様の近似計算を継続的に実施すればよい。従って、欄[i]に示す任意のi段階目(i=2, 3 ,…, M)の計算を説明する。
【0099】
すなわち、i-1段階目の計算が完了した時点(i段階目の計算を開始する時点)では近似分解結果「D2(i-1)≒θi-1×Φi-1」が得られている。従って、欄[i]の式(i-1)において「θi-1」が微小変化した「θi」を導入して、「D2(i-1)」にn行m列サイズであり全ての要素が1に十分近い行列「W2i-1」をアダマール積として乗じたもの「D2i-1= W2i-1* D2(i-1)」の近似分解結果「D2i-1i×Φi-1」とする。そして、微小変化した「θi」の具体的な値は、式(i-2)に示すように「Φi-1」の擬似逆行列「Φi-1-1」を乗ずることで「θi = D2i-1×Φi-1-1」として求める。
【0100】
続いて同様に式(i-3)では、式(i-1),(i-2)の「Φi-1」が微小変化した「Φi」を導入して、「D2i-1」にn行m列サイズであり全ての要素が1に十分近い行列「W2i」をアダマール積として乗じたもの「D2i= W2i* D2i-1」の近似分解結果「D2ii×Φi」とする。そして、微小変化した「Φi」の具体的な値は、式(i-4)に示すように「θi」の擬似逆行列「θi-1」を乗ずることで「Φii-1×D2i」として求める。
【0101】
以上、一般のi段階目の場合を説明した。なお、上記の説明は、「D=D0」、「θ=θ0」、「Φ=Φ0」と文字を設定すればi=1段階目についてもあてはまる。
【0102】
以上のような近似計算をi=1,2,…,M段階目まで繰り返した結果、図7の欄[M]の式(M-3)として示すように、近似分解結果「D2MM×ΦM」が得られる。最終的に求めるべき式(20)の分解結果「W*D=θ'×Φ'」は、当該M段階の計算結果により欄[20]に式(13)として示すように、「θ'=θM」及び「Φ'=ΦM」として得られる。その根拠が欄[20]に式(11),(12)として示されている。特に、式(11)は当該得られることを可能とする条件の式であり、式(12)は当該式(11)の条件のもとで分解結果が当該得られる根拠となる式である。
【0103】
すなわち、式(11)に示すように、i=1,2,…,M段階目まで繰り返す近似計算の各段階で用いた全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mは、それらの全てのアダマール積が、式(20)における重み行列Wに等しくなるようなものとして用意しておく。従って式(20)に対して、式(11)と、欄[1],[2], …, [i], …,[M]に示す式(1-3),(2-3), …, (i-3), …, (M-3)と、を代入することにより、式(12)が得られるため、近似的な分解結果として式(13)に示すような「θ'=θM」及び「Φ'=ΦM」を採用することができる。
【0104】
なお、近似計算を可能としている各段階で用いた全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mのそれぞれの具体的な値及び当該計算を繰り返す回数2Mは、式(11)を満たし且つ各行列が所定基準で全ての要素が1に近いと判定されるような任意のものを、所定手法によって設定すればよい。
【0105】
例えば、以下の式(6)に示すように、行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mは互いに全て値が等しく、重み行列Wの「2M乗根」となるように設定することができる。
【0106】
【数6】
【0107】
なお、式(6)に示すように、重み行列Wの「2M乗根」とは、アダマール積の意味での2M乗根として、各要素wi(i=1, 2, …, m)が2M乗根wi1/2Mとなっているものとして定義すればよい。繰り返し回数2Mは、各2M乗根の要素wi1/2M (i=1, 2, …, m)がそれぞれ、所定基準で十分に1に近いと判定される数として設定すればよい。
【0108】
以上のように、第二実施形態においては重み行列Wを、全ての要素を1として得られる恒等変換に微小変換を加えた変換と判定することのできる複数の行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mの積(アダマール積)に分解し、当初、重みWを付与せずに得られている分解結果「D=θ×Φ」の「θ」及び「Φ」に対して、分解された行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mの各々を逐次的に摂動として加えていくことにより、重みを付与した際の分解結果「W*D=θ'×Φ'」における「θ'」及び「Φ'」を、実際にLDA等の高負荷な計算を行うことなく、近似値として得ることができる。ここで、逐次的な摂動の各段階は、図7に欄[1]〜[M]として示す通りである。
【0109】
なお、恒等変換に加える「微小変換」とは、恒等変換に対して差分値として微小変化を伴うようにするものである。例えば単語数m=3の場合全ての要素が1の重み(1, 1, 1)によって恒等変換が定義されるが、これに微小変換(+0.01, -0.02, +0.03)を加えることで重み(1.01, 0.98, 1.03)が得られる。このような重みにより分解された行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2Mの各々を構成(重み行列Wと同様に、(1.01, 0.98, 1.03)等の共通の行ベクトルを全患者数nだけ並べることで構成)して、逐次的な摂動計算が可能となる。ここで、微小変換か否かの判定は、その各要素が所定基準で0に近いか否かによって判定すればよい。例えば±0.1以内に値がある場合に微小変換と判定すれば、当該例示した変換(+0.01, -0.02, +0.03)は微小変換である。
【0110】
以下、本発明における補足的事項(1)〜(4)を述べる。
【0111】
(1)分析対象の一連の患者の医療データにおいて、各患者のデータは、分析対象文書化部12において健康評価に関連する単語によるバグオブワーズの形式により、当該患者の健康状態に関する特徴ベクトルへと変換(文書化)するものとして説明した。予め分析対象の一連の患者の医療データに当該変換が施されていれば、分析対象文書化部12は省略してもよい。
【0112】
(2)医療データの取得対象は「患者」として説明したが、同様のデータが取得できさえすれば、医師に対する「患者」のみに限らず一般の「対象者」について全く同様に、本発明を適用可能である。
【0113】
(3)本発明は、コンピュータをクラスタリング装置10として機能させるプログラムとしても提供可能である。当該コンピュータは、CPU(中央演算装置)、メモリ及び各種I/Fといった周知のハードウェアで構成することができ、当該プログラムを読み込んで実行するCPUがクラスタリング装置10の各部として機能することとなる。
【0114】
(4)第二実施形態に関する図7の説明では、繰り返し回数を2Mとして偶数回であるものとして説明したが、当該説明の趣旨より明らかなように、奇数回2M+1や2M-1であってもよい。前者(奇数回2M+1)の場合は、全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-1, W2M, W2M+1を用いて、近似的な分解結果として「θ'=θM+1」及び「Φ'=ΦM」を採用すればよい。後者(奇数回2M-1)の場合は、全ての要素が1に近い行列W1,W2,W3,W4, …, W2i-1,W2i, …, W2M-2, W2M-1を用いて、近似的な分解結果として「θ'=θM」及び「Φ'=ΦM-1」を採用すればよい。また同様に、図7の説明では「θ1」→「Φ1」→「θ2」→「Φ2」→…のように「θ」→「Φ」の順番で近似値を求めたが、逆に「Φ」→「θ」の順番で求めるようにしてもよい。当該順番(「θ」→「Φ」又は「Φ」→「θ」)が各段階i毎に定まっていてもよい。
【符号の説明】
【0115】
10…クラスタリング装置、11…重み計算部、12…分析対象文書化部、13…クラスタリング部
図1
図2
図3
図4
図5
図6
図7