【解決手段】被測定者の睡眠中の体動または圧力変化に基づいた生体振動データを得る。そして、取得した生体振動データから、一定時間ごとに複数の特徴量または周波数スペクトルを算出する。さらに、算出した複数の特徴量または周波数スペクトルから、睡眠段階を判別するための分岐条件を持った複数の決定木を用いて睡眠段階を判別した後、その判断に使用された決定木の分類基準の組み合わせで得られる判別結果に基づいて、睡眠時無呼吸症候群の判定を行う。或いは、生体振動データに含まれる周波数成分のパワースペクトルを算出し、その周波数成分のパワースペクトルについて、それぞれ異なる分岐条件を持った複数の決定木による分類への寄与度を算出し、算出した寄与度に基づいて睡眠時無呼吸症候群の判定を行う。
【発明を実施するための形態】
【0019】
<1.第1の実施の形態例>
以下、本発明の第1の実施の形態例について、
図1〜
図12を参照して説明する。
[1−1.睡眠時無呼吸症候群判定装置の構成]
図1は、本実施の形態例の睡眠時無呼吸症候群判定装置10の構成を示すブロック図である。
図2は、本実施の形態例の睡眠時無呼吸症候群判定装置10を使って睡眠時無呼吸症候群の判定を行う状態の例を示す図である。
【0020】
本実施の形態例の睡眠時無呼吸症候群判定装置10は、被測定者の生体振動(体動)をマットレスセンサ2で圧力データとして取得する。マットレスセンサ2は、例えば
図2に示すように、被測定者Aが睡眠を行うベッド1のマットレスの上あるいは下に敷いて、被測定者Aの睡眠中の上半身の生体振動を圧力の変化として検出する。被測定者Aの下側になるマットレスの上にマットレスセンサ2を配置するのは一例であり、例えばマットレスの中にマットレスセンサ2を内蔵させてもよい。
図2では、ベッド1の脇に睡眠時無呼吸症候群判定装置10を設置し、マットレスセンサ2と睡眠時無呼吸症候群判定装置10をケーブルで接続した例を示すが、例えばマットレスセンサ2が取得した圧力データ(生体振動データ)を、無線伝送で別の部屋の睡眠時無呼吸症候群判定装置10に伝送するようにしてもよい。
なお、以下の説明では、マットレスセンサ2が出力する圧力データを、生体振動データと称する。
【0021】
睡眠時無呼吸症候群判定装置10は、
図1に示すように、生体データ取得部11と、生体データ処理部12と、判定部13と、出力部14と、学習部15とを備える。
生体データ取得部11は、マットレスセンサ2が出力する生体振動データを取得する生体データ取得処理を行う。生体データ取得部11が取得した生体振動データは、生体データ処理部12に供給される。
【0022】
生体データ処理部12は、供給される生体振動データをサンプリングしてデジタルデータ化し、そのデジタルデータ化された生体振動データの所定時間ごとの平均値を算出する。例えば、生体データ処理部12は、生体振動データの平均値を1秒ごとに取得する。それぞれの平均値は、同じ期間のデータに対して平均化したものである。
【0023】
そして、生体データ処理部12は、所定時間ごとに得られた平均値を演算処理して、複数種類の特徴量を算出する。例えば、1秒ごとの生体振動データの平均値xから、以下に示す複数の特徴量SD、Range、SUM、Square、LC、RMSを、30秒ごとに算出する。以下の説明では、生体データ処理部12は、1秒ごとの生体振動データの平均値xから、30秒ごとに特徴量を求めるものとする。
【0024】
各特徴量について順に説明する。
特徴量SDは、1秒ごとの生体振動データの平均値xの30秒間の分散を示す。
特徴量Rangeは、30秒間の平均値xの最大値と最小値の差を示す。
特徴量SUMは、30秒間の平均値xの積算値である。
特徴量Squareは、30秒間の平均値xの二乗値の積算値である。
特徴量LCは、1秒ごとの生体振動データの平均値x
nと、その平均値x
nの1つ前(1秒前)の平均値x
n−1との差分の、30秒間の積算値である。
特徴量RMSは、30秒間の平均値xの二乗値の積算値を30秒間で平均してルートを求めたものである。
【0025】
生体データ処理部12で30秒ごとに得られた、これらの特徴量SD、Range、SUM、Square、LC、RMSは、判定部13および学習部15に供給される。
ここで、生体データ処理部12では、30秒ごとの複数の特徴量SD、Range、SUM、Square、LC、RMSを示すデータに対して、睡眠段階を付与するラベリング処理が行われ、そのラベリング処理が行われた特徴量のデータが、判定部13および学習部15に供給される。
ここで付与される睡眠段階は、既に知られた睡眠段階推定手法を適用して、生体振動データから取得したものである。例えば、生体振動データの特定の周波数成分のレベルと閾値とを比較して、判断した睡眠段階を、その期間の特徴量のデータに対して付与する。なお、ここで生体振動データから睡眠段階を判断する処理は、睡眠時無呼吸症候群の患者であることを考慮しない、いわゆる健常者用の睡眠段階の判断処理でよい。
【0026】
そして、学習部15は、生体データ処理部12で得た生体振動データの特徴量を使って、学習部15が、機械学習の1つであるランダムフォレストを用いて、特徴量のデータから覚醒(WAKE)か否かを分類する複数の決定木を生成する。
学習部15での複数の決定木の生成は、学習フェーズで行われる。学習部15で生成された複数の決定木は、判定フェーズで利用され、判定部13が、複数の決定木を使った判定結果から、睡眠段階を判定して、睡眠時無呼吸症候群か否かを判定する。
【0027】
また、上述したラベリング処理で、生体データ処理部12が30秒ごとの複数の特徴量に睡眠段階を付与する際には、生体振動データとは全く別のデータの解析で、被測定者の睡眠段階を判断して、対応した期間の特徴量のデータに対して付与するようにしてもよい。例えば、被測定者に取り付けた電極から得たデータや呼吸などを検出するセンサのデータに基づいて、被測定者の睡眠段階を判断してもよい。
【0028】
そして、判定フェーズでは、学習部15が学習フェーズで得た複数の決定木を使って、判定部13が、生体データ処理部12で得た生体振動データから、睡眠時無呼吸症候群か否かを判別する。
このときには、生成された複数の決定木で、覚醒(WAKE)と判定されたときのルール、つまり決定木の分類経路を学習部15が抽出し、抽出したルールの種類数によって、判定部13が睡眠時無呼吸症候群か否かを判定する。
【0029】
出力部14は、判定部13が判定した睡眠時無呼吸症候群か否かの結果を出力する。出力部14は、例えば表示装置により構成され、睡眠時無呼吸症候群の判定結果を表示する。あるいは、出力部14を記録装置として構成して、一晩の睡眠状態などと共に睡眠時無呼吸症候群の判定結果を記録するようにしてもよい。また、出力部14が表示または記録を行う際には、睡眠時無呼吸症候群の判定結果だけでなく、睡眠段階の判定結果の表示または記録を同時に行うようにしてもよい。
【0030】
[1−2.睡眠時無呼吸症候群判定装置のハードウェア構成例]
図3は、睡眠時無呼吸症候群判定装置10をコンピュータ装置で構成した場合のハードウェア構成例を示す。
コンピュータ装置Cは、バスC8に接続されたCPU(Central Processing Unit:中央処理装置)C1、ROM(Read Only Memory)C2、およびRAM(Random Access Memory)C3を備える。さらに、コンピュータ装置Cは、不揮発性ストレージC4、ネットワークインターフェイスC5、入力装置C6、および表示装置C7を備える。
【0031】
CPU C1は、睡眠時無呼吸症候群判定装置10の生体データ処理部12や判定部13が備える各機能を実現するソフトウェアのプログラムコードをROM C2から読み出して実行する。圧力データを周波数解析するFFT処理についても、該当する処理を実行するプログラムをROM C2から読み出して、CPU C1が実行する。RAM C3には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。
【0032】
不揮発性ストレージC4としては、例えば、HDD(Hard disk drive)、SSD(Solid State Drive)、フレキシブルディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリ等が用いられる。この不揮発性ストレージC4には、OS(Operating System)、各種のパラメータの他に、コンピュータ装置Cを睡眠時無呼吸症候群判定装置10として機能させるためのプログラムが記録されている。また、判定部13が判定した睡眠段階についてのデータが、不揮発性ストレージC4に記録される。
【0033】
ネットワークインターフェイスC5には、例えば、NIC(Network Interface Card)等が用いられ、端子が接続されたLAN(Local Area Network)、専用線等を介して各種のデータを送受信することが可能である。例えば、コンピュータ装置Cは、マットレスセンサ2が出力する圧力データを、ネットワークインターフェイスC5を介して取得する。入力装置C6は、例えばキーボード等の機器で構成され、この入力装置C6により、睡眠時無呼吸症候群判定装置10で睡眠時無呼吸症候群を判定する期間の設定や、判定結果の表示形態の指示等が行われる。表示装置C7には、睡眠時無呼吸症候群判定装置10で睡眠時無呼吸症候群の判定結果が表示される。
なお、睡眠時無呼吸症候群判定装置10を、プログラム(ソフトウェア)の実行で判定装置として機能するコンピュータ装置から構成するのは一例であり、睡眠時無呼吸症候群判定装置10の一部または全ての処理を実行する専用のハードウェアを用意してもよい。
【0034】
[1−3.睡眠時無呼吸症候群を判定する原理]
次に、睡眠時無呼吸症候群判定装置10が睡眠時無呼吸症候群を判定する原理について、
図4および
図5を参照して説明する。
図4は、ある時間の間、健常者が睡眠段階を測定した例(a)と、睡眠時無呼吸症候群の患者が睡眠段階を測定した例(b)を比較した図である。なお、以下の説明では、睡眠時無呼吸症候群の患者は、SAS患者とも称する。
【0035】
図4のそれぞれの例は、横軸が睡眠時間を示し、縦軸が睡眠段階を示す。縦軸の睡眠段階は、最も上側が、最も睡眠段階が浅い覚醒(WAKE)を示し、下側に行くほど、レム睡眠(REM)、ステージ1のノンレム睡眠(NREM1)、ステージ2のノンレム睡眠(NREM2)、ステージ3のノンレム睡眠(NREM3)、ステージ4のノンレム睡眠(NREM4)と順に変化して、深い睡眠段階になることを示す。
但し、
図4の例では、(a)に示す健常者と、(b)に示すSAS患者のいずれの場合も、最も深い睡眠段階は、ステージ3のノンレム睡眠(NREM3)であり、ステージ4のノンレム睡眠(NREM4)には到達していない。
図4の健常者(a)とSAS患者(b)とを比較すると判るように、SAS患者は無呼吸が原因での覚醒(WAKE)が多発している。
【0036】
図5は、健常者とSAS患者とで、マットレスセンサ2が出力する生体振動データの相違を示すものである。
図5の(a)は、睡眠段階が覚醒(WAKE)時に、健常者に多く現れる生体振動データの例である。
図5の(b)は、睡眠段階が覚醒(WAKE)時に、SAS患者に多く現れる生体振動データの例を示す。
図5に示す各特性のグラフの横軸は時間、縦軸は生体振動のレベルを示す。
【0037】
健常者の場合、
図5の(a)に示すように、睡眠段階が覚醒(WAKE)時には、寝返り等の体動に連動して、一時的に比較的高いレベルの生体振動が検出されることが多い。例えば、
図5の(a)の左側に示す特性は、大きな寝返りがあった場合であり、
図5の(a)の右側に示す特性は、比較的小さな体の動きがあった場合である。
一方、SAS患者の場合、睡眠段階が覚醒(WAKE)時には、様々な変化状態の生体振動が検出される。すなわち、
図5の(b)の左端の特性で示すように、健常者と同様な一時的に高いレベルの生体振動となることもあるが、
図5の(b)の右側の3つの特性で示すように、無呼吸による小さな体動が検出される。
SAS患者の場合、覚醒(WAKE)時には、舌が気道を塞ぐことにより無呼吸が起こり、その影響が拍動(心拍)の変化に現れる。そして、健常者では検出されない無呼吸による小さな体動が周期的に検出される。但し、
図5の(b)の右端に示すように、健常者と同等の動きが覚醒(WAKE)時に検出される場合もある。
【0038】
本実施の形態例では、このような
図5の(a)に示す健常者の覚醒(WAKE)時における生体振動と、
図5の(b)に示すようなSAS患者の覚醒(WAKE)時における様々な生体振動とを、ランダムフォレストを利用した学習処理で区別することで、睡眠時無呼吸症候群の判定を行うものである。
【0039】
[1−4.睡眠時無呼吸症候群の判定処理の流れ]
図6は、本実施の形態例の睡眠時無呼吸症候群判定装置10が睡眠時無呼吸症候群を判定する処理の流れを示すフローチャートである。
睡眠時無呼吸症候群を判定する際には、最初に、
図6の(a)に示す学習フェーズで学習を行って、ランダムフォレストモデルを構築する処理が行われる。その後、
図6の(b)に示す判定フェーズで、被測定者の生体振動を取得して、ランダムフォレストモデルを使って、睡眠時無呼吸症候群を判定する処理が行われる。
まず、
図6の(a)に示す学習フェーズについて説明すると、生体データ取得部11が被測定者の睡眠中の生体振動データの取得を開始し、生体データ処理部12は、一定時間ta秒ごとに、マットレスセンサ2が出力する生体振動データ(圧力データ)の平均値を算出し、算出した平均値を記録する(ステップS11)。ここでのta秒は、例えば1秒とする。
【0040】
そして、生体データ処理部12は、ta秒ごとの平均値から、tb秒ごとに複数の特徴量を算出する(ステップS12)。tb秒は、ta秒よりも十分に長い時間であり、例えば30秒とする。ここでの複数の特徴量の一例としては、先に説明した分散量を示す特徴量SD、最大値と最小値の差の特徴量Range、積算値の特徴量SUM、積算値の二乗の特徴量Square、ta秒ごとの生体振動データの平均値x
nとその平均値xの1つ前の平均値x
n−1との差分の積算値LC、ta秒間ごとの平均値の二乗値の積算値をtb秒間で平均してルートを求めた値であるRMSがある。
【0041】
次に、生体データ処理部12は、tb秒ごとの特徴量のデータに対して、該当する特徴量の生体振動データを取得した期間での被測定者の睡眠段階のデータを取る。ここで、被測定者の睡眠段階のデータは、生体データ処理部12による生体振動データの解析から取得される。あるいは、睡眠時無呼吸症候群判定装置10とは別の測定装置を使って、被測定者の睡眠段階のデータを取得してもよい。
このようにして被測定者の睡眠段階のデータを取得すると、生体データ処理部12は、tb秒ごとの特徴量のデータに、睡眠段階を付与するラベリング処理を行う(ステップS13)。ここでのラベリング処理で付与する睡眠段階は、少なくとも睡眠段階が、覚醒(WAKE)か、または覚醒以外(Non−WAKE)かの2段階である。
生体データ処理部12で得られた睡眠段階がラベリングされた特徴量のデータは、学習部15に送られる。
【0042】
そして、学習部15は、機械学習の1つであるランダムフォレストモデル(RFモデル)を用いた学習で、複数の特徴量から睡眠段階を判定するための、それぞれ異なる分岐条件を持った複数の決定木を構築する(ステップS14)。ここで、複数の決定木を構築する際には、それぞれの決定木の深さ(分岐条件の段階数)と、構築する決定木の数を予め決めておく。例えば、決定木の深さ(分岐数)を10段階、構築する決定木の数を300本とする。
また、分岐条件を決める際には、2つに分岐する処理を、例えばジニ係数と称される指標を使って、覚醒(WAKE)と覚醒以外(Non−WAKE)の2つに大きく分かれるような条件とする。
また、学習部15が、複数の決定木の組み合わせの学習を行う際には、複数の特徴量の組み合わせの種類数と、特徴量の重要度と、各特徴量の出現回数とを判断して行う。例えば、睡眠時無呼吸症候群を判定する上で、どの特徴量を使うのが重要かを学習する。
ここまでが学習フェーズで行われ、学習部15は、構築したランダムフォレストモデル(RFモデル)を記憶する。
【0043】
次に、
図6の(b)に示す判定フェーズでの、被測定者の生体振動から睡眠時無呼吸症候群を判定する処理の流れを説明する。
判定フェーズでは、学習フェーズと同様に、ステップS11でのta秒ごとの被測定者の生体振動の取得処理と、ステップS12でのtb秒間ごとの特徴量の算出処理が行われる。
その後、判定部13は、学習フェーズでのステップS14で学習部15が生成したランダムフォレストモデルの複数の決定木に、覚醒(WAKE)とラベリング処理が行われた特徴量のデータを入力する(ステップS15)。
この複数の決定木に入力されたデータに基づいて、判定部13は、各特徴量のデータの分類処理が行われ、分岐結果が覚醒(WAKE)となる際に使用された経路(根ノードから葉ノードまでの一連の特徴量)を抽出する(ステップS16)。このとき、判定部13は、決定木の各分岐時においてどの種類の特徴量のデータを用いていずれに分岐するかを判断したのかに基づいて、特徴量の種類ごとに判断回数をカウントする。
【0044】
さらに、判定部13は、ステップS16で抽出された経路の各分岐で使用した特徴量を比較して、特徴量の種類と数で、被測定者がSAS患者か否かを判定する(ステップS17)。ここでの特徴の比較とは、例えば上述した複数の特徴量SD、Range、SUM、Square、LC、RMSの各々を分岐時に判断した回数(出現回数)、分岐時に判断した特徴量の種類の合計の数、などがある。出現回数については、全ての特徴量の出現回数を判断してもよいが、複数の種類の特徴量の内で重要と思われる特徴量を判断した回数を、SAS患者か否かを判定する上で優先して扱う、などの様々な条件を付けて、判別に使用された決定木を使って分類した際の分類基準の組み合わせを設定することが考えられる。
特徴の数の多数決で判定する具体例については後述する。そして、出力部14が、ステップS17での判定結果を出力する。
【0045】
[1−5.判別処理の詳細]
次に、
図6のフローチャートに示す流れの各処理の詳細について、
図7〜
図12を参照して説明する。
図7は、睡眠時無呼吸症候群の患者(SAS患者)の生体振動データの例を示す。
図7の横軸は時間であり、
図7の(a)は長時間の測定データを示し、
図7の(b)は、その長時間の測定データの一部の区間を拡大して示す。
【0046】
図7の(a),(b)に示すグラフの横軸は時間であり、縦軸は、6段階の睡眠段階の変化PSGと、生体振動データのレベルMを示す。6段階の睡眠段階の変化PSGは、本実施の形態例の睡眠時無呼吸症候群判定装置10とは別の測定装置で、睡眠ポリグラフ検査法(polysomnography)によって、被測定者の睡眠段階を計測したものである。ここでは、この6段階の睡眠段階の変化PSGを、正解の睡眠段階とも称する。
図7に示す6段階の睡眠段階は、上側から順に、覚醒(W)、レム睡眠(R)、ノンレム睡眠のステージ1(NR1)、ノンレム睡眠のステージ2(NR2)、ノンレム睡眠のステージ3(NR3)、ノンレム睡眠のステージ4(NR4)である。
【0047】
図7の(a),(b)に示す生体振動データのレベルMは、体動などで高くなるが、例えば健常者の場合には、閾値TH1をレベルMが超えたとき、睡眠段階が覚醒であると判別することができる。
ところが、
図7の例は、SAS患者の生体振動データであり、
図5で説明したように、生体振動データが低い状態であっても、睡眠段階が覚醒となることがある。
【0048】
図7の(a)の覚醒(W)の箇所に、丸の印(○)を付けた箇所は、正解の睡眠段階PSGで覚醒(W)が検出された箇所が、生体振動データのレベルMと閾値TH1との比較でも、覚醒(W)と判別された箇所である。
一方、
図7の(a)の覚醒(W)の箇所に、バツの印(×)を付けた箇所は、正解の睡眠段階PSGで覚醒(W)が検出された箇所が、生体振動データのレベルMと閾値TH1との比較で、覚醒(W)と判別されなかった箇所である。
この
図7の(a)に示すように、SAS患者の場合、睡眠段階が覚醒(W)であっても、多様な生体振動状態が存在する。
本実施の形態では、ランダムフォレストモデルでの学習で、この多様な生体振動状態を捉えるようにして、SAS患者か否かを判別するようにしたものである。
【0049】
図8は、ランダムフォレストモデルの決定木の概要を示す。
ランダムフォレストモデルの決定木は、学習データ集合Sから、部分集合S
1,S
2,・・・,S
Ntreeをランダムに抽出することで構築される。S
Ntreeは、構築される決定木の数である。決定木の分岐箇所に示すy
iは、i番目の特徴量を示す。すなわち、分岐箇所では、複数個の特徴量の内のどの特徴量を判断するのかを示す。
複数の決定木は、データを部分的に学習することで、決定木ごとに異なる学習を行うデータとなっており、複数のルールを生成したことになる。つまり、SAS患者の場合における多様な覚醒時の生体振動データの波形を捉えることになる。
【0050】
図8の例について説明すると、例えば
図8の左端に示す部分集合S
1の決定木としては、最初の分岐で、特徴量y
8が1未満か否かが判断され、特徴量y
8が1未満である(True)とき、次の分岐で、特徴量y
7が6未満か否かが判断される。そして、この判断で、特徴量y
7が6未満のものが、睡眠段階が覚醒(W)のもの(○印)と、睡眠段階が覚醒(W)以外のもの(×印)に分離される。
また、特徴量y
8が1未満でない場合(False)には、次の分岐で、特徴量y
2が8未満か否かが判断される。そして、この判断で、特徴量y
2が8未満のものが、睡眠段階が覚醒(W)のもの(○印)と、睡眠段階が覚醒(W)以外のもの(×印)に分離される。
このようにして、それぞれの決定木の最終的な分岐で、睡眠段階が覚醒(W)のもの(○印)と、睡眠段階が覚醒(W)以外のもの(×印)に分離されて行く。なお、
図8の例では、説明を簡単にするために分岐箇所が2つのものを示すが、これは一例であり、1つの決定木がより多くの分岐箇所を持ってもよい。
【0051】
ここで、このように複数の決定木が構築されるとき、決定木で分岐する際の条件に使用した特徴量の寄与度を算出する。
特徴量の寄与度Imp(y)は、例えば次の式で算出される。
【0053】
[数1]式において、y
iはi番目の特徴量、N
treeは決定木の数、Δ(T
j(y
i))は、決定木T
jにおける特徴量y
iを用いたノードとそのノードの分岐後のジニ係数の差を示す。
ここでのジニ係数は、
図8に示すように、該当する分岐点で分岐したことで、睡眠段階が覚醒のもの(○印)と、睡眠段階が覚醒(W)以外のもの(×印)に明確に分離されるとき高くし、そうでない場合に低くする係数値である。ここでの睡眠段階は、
図6のステップS13でラベリングした睡眠段階を利用する。
【0054】
ジニ係数の差が大きいとき、
図8の左下に示すように、該当する分岐点での分岐で、睡眠段階が覚醒のもの(○印)と、睡眠段階が覚醒(W)以外のもの(×印)に明確に分離される状態を示す。
一方、ジニ係数の差が小さいとき、
図8の左下に示すように、該当する分岐点での分岐で、睡眠段階が覚醒のもの(○印)と、睡眠段階が覚醒(W)以外のもの(×印)に明確に分離される状態を示す。
【0055】
このようにして、ジニ係数の差に基づいて、睡眠段階が覚醒のものと覚醒以外のものに判別するために必要な特徴量の寄与度を、それぞれの特徴量ごとに算出することで、どの特徴量を使った分岐を行う決定木を利用することが、睡眠段階が覚醒か否かを判別できるのか判るようになる。
【0056】
次に、生体振動データから特徴量の寄与度の判別を使った判定の流れを、
図9〜
図11を参照して説明する。
図9は、1人の被測定者の睡眠開始(入眠)から起床までの数時間の生体振動データの波形の例を示す。
本実施の形態例の場合、
図9に示すような数時間の生体振動データから、30秒間ごとに特徴量を算出する処理が行われる。例えば、特徴量SD、Range、SUM、Square、LC、RMSを、30秒ごとに算出する。
そして、30秒ごとの各特徴量を示すデータに、その時点での睡眠段階(WAKEまたはNon−WALKE)をラベリングする処理が行われる。
【0057】
次に、
図10に示すように、睡眠段階がラベリングされた30秒ごとの各特徴量を示すデータから、ランダムフォレストモデル(RFモデル)の決定木を構築する処理が行われる。
このとき、各決定木の深さ(分岐数)と、構築する決定木の合計数を予め決めておく。例えば、決定木の深さを10段階、決定木の合計数を300とする。
【0058】
そして、構築したランダムフォレストモデル(RFモデル)の複数の決定木に、睡眠段階が覚醒(WAKE)にラベリングされた特徴量のデータを入力する。
【0059】
次に、
図11に示すように、各決定木で、覚醒(WAKE)と分類する際に通過した決定木の経路を抽出し、1つの決定木の経路の途中で分岐を判断した特徴量の組み合わせを、種類ごとにカウントする。
図11の下側に示す特徴量ごとに示す値は、そのカウント値の一例である。
例えば、
図11の例では、特徴量SD,SUMの組み合わせが80回、特徴量LC,RMSの組み合わせが100回、特徴量SD,Rangeの組み合わせが8回、特徴量Square,SUMの組み合わせが79回、・・・とカウントする。なお、ここで、10回を超えた組み合わせを1個とカウントする。そして、例えば、経路の特徴量の組み合わせの種類のカウント数が閾値を超えるとき、SAS患者であると判別する。
【0060】
図12は、本実施の形態例によるSAS患者か否かの判別結果の一例を示す。
図12の縦軸は、経路の特徴量の組み合わせの種類のカウント数を示している。
図12の例は、9名のSAS患者A,B,C,・・・,Iと、9名の健常者(SAS患者でない者)a,b,c,・・・,iとを判定した結果である。
図12に示す18名の内で、×印を付与した者は、正しく判定できなかった場合を示している。
図12では、経路の特徴量の組み合わせの種類のカウント数が100を閾値とし、カウント数が100以上であるとき、SAS患者であると判別し、カウント数が100未満のとき、SAS患者でないと判別している。
【0061】
本実施の形態例の場合、
図12から判るように、SAS患者9名の内で、6名をSAS患者であると正しく判別することができ、3名をSAS患者でないと誤判定した。一方、健常者については、7名を健常者と正しく判定し、2名をSAS患者と誤判定した。
この
図12から判るように、高い精度でSAS患者か否かを判別することができる。なお、
図12に示す結果は判定についての1つのシミュレーション結果であり、決定木による学習を繰り返すことで、判定の精度をより高くすることができるようになる。
【0062】
<2.第2の実施の形態例>
以下、本発明の第2の実施の形態例について、
図13〜
図19を参照して説明する。
第2の実施の形態例においても、睡眠時無呼吸症候群判定装置10の構成については、第1の実施の形態例で
図1〜
図3で説明した構成をそのまま適用する。
本実施の形態例では、睡眠時無呼吸症候群判定装置10の生体データ処理部12での生体データ処理、判定部13での判定処理、及び学習部15での学習処理が、第1の実施の形態例と異なる。
【0063】
[2−1.睡眠段階判定処理の流れ]
図13は、本実施の形態例の睡眠時無呼吸症候群判定装置10が睡眠時無呼吸症候群を判定する処理の流れを示すフローチャートである。
睡眠時無呼吸症候群を判定する際には、最初に、
図13の(a)に示す学習フェーズで学習を行って、ランダムフォレストモデルを構築する処理が行われる。その後、
図13の(b)に示す判定フェーズで、被測定者の生体振動を取得して、ランダムフォレストモデルを使って、睡眠時無呼吸症候群を判定する処理が行われる。
まず、
図13の(a)に示す学習フェーズについて説明すると、生体データ取得部11が被測定者の睡眠中の生体振動データの取得を開始し、生体データ処理部12は、一定時間tc秒ごとに、マットレスセンサ2が出力する生体振動データ(圧力データ)を取得し、取得した生体振動データを記録する。ここでのtc秒は、例えば1秒とする。
ここで、生体振動データをtc秒ごと(1秒ごと)に算出する際には、過去の所定時間(例えば64秒間)の生体振動データをフーリエ変換して、所定時間での周波数ごとのパワースペクトルを算出する(ステップS21)。
【0064】
そして、生体データ処理部12は、フーリエ変換した周波数ごとのパワースペクトルのデータに、睡眠段階をラベリングする(ステップS22)。ここでのラベリング処理で付与する睡眠段階は、少なくとも睡眠段階が、覚醒(WAKE)か、または覚醒以外(Non−WAKE)かの2段階である。このラベリングする睡眠段階は、第1の実施の形態例でラベリングした睡眠段階と同様に、生体データ処理部12による生体振動データの解析から取得される。あるいは、睡眠時無呼吸症候群判定装置10とは別の測定装置を使って、被測定者の睡眠段階のデータを取得してもよい。
生体データ処理部12で得られた睡眠段階がラベリングされたパワースペクトルのデータは、学習部15に送られる。
【0065】
そして、学習部15は、機械学習の1つであるランダムフォレストモデル(RFモデル)を用いた学習で、複数のパワースペクトルから睡眠段階を判定するための、それぞれ異なる分岐条件を持った複数の決定木を構築する(ステップS23)。ここで、複数の決定木を構築する際には、それぞれの決定木の深さ(分岐条件の段階数)と、構築する決定木の数を予め決めておく。
ここまでが学習フェーズで行われ、学習部15は、構築したランダムフォレストモデル(RFモデル)を記憶する。
【0066】
次に、
図13の(b)に示す判定フェーズでの、被測定者の生体振動から睡眠時無呼吸症候群を判定する処理の流れを説明する。
判定フェーズでは、学習フェーズと同様に、ステップS21での所定時間での周波数ごとのパワースペクトルの算出処理が行われる。
その後、判定部13は、睡眠段階が覚醒(WAKE)とラベリングされたデータについて、学習フェーズでのステップS23で学習部15が生成したランダムフォレストモデル(RFモデル)から、各周波数成分の寄与度を算出する(ステップS24)。
その後、判定部13は、ジニ係数を利用して、各周波数成分の寄与度の分布を大小に分割する(ステップS25)。
【0067】
さらに、判定部13は、各周波数成分の寄与度の分布を大小に分割した関係(厳密にはx軸で大小,y軸で上下の2つの関係)から睡眠時無呼吸症候群を判定して、睡眠時無呼吸症候群か否かを判別する(ステップS26)。
判定部13が判別した結果は、出力部14が出力する。
【0068】
[2−2.周波数ごとのパワースペクトルから判別する原理]
次に、
図14を参照して、睡眠時無呼吸症候群の患者(SAS患者)と、健常者との周波数ごとのパワースペクトルの寄与度の相違を説明する。
図14の(a)は、睡眠段階が覚醒(WAKE)とラベリングされたデータで、SAS患者の場合のパワースペクトルの寄与度を示し、
図14の(b)は、睡眠段階が覚醒(WAKE)とラベリングされたデータで、SAS患者でない健常者の場合のパワースペクトルの寄与度を示す。
【0069】
ここでは、生体データ処理部12は、16Hzで検出される生体振動データの64秒間のセンサ値をフーリエ変換して、[16×64s=1024]のパワースペクトルを算出し、その1024のパワースペクトルの内の0〜8Hzの成分を、512次元のベクトル成分に変換する処理を行う。ここで、0番目から11番目の次元のベクトル成分は0とする。
【0070】
図14の縦軸は、この512次元のベクトル成分を示し、0〜8Hzの周波数位置を示す。例えば、
図14の縦軸の100の位置は、[100÷64]=約1.56Hzの周波数位置を示す。横軸は、それぞれの周波数成分のパワースペクトルの寄与度を示す。
なお、
図14の例の場合、生体振動の内で、例えば呼吸に伴った生体振動は、主として10〜40の位置に現れ、心拍に伴った生体振動は、主として40〜120の位置に現れる。
【0071】
ここで、
図14の(a)に示すSAS患者の場合には、図中の周波数位置100(周波数約1.56Hz)よりも低い周波数成分の寄与度が大きく、それよりも高い周波数成分の寄与度が小さいことが判る。
一方、
図14の(b)の健常者の場合には、図中の周波数位置100(周波数約1.56Hz)よりも高い周波数成分の寄与度が大きく、それよりも低い周波数成分の寄与度が小さいことが判る。
本実施の形態例の場合には、この
図14に示すSAS患者と健常者との周波数成分のパワースペクトルの寄与度の相違に着目して、ランダムフォレストモデルを使った学習で、SAS患者と健常者を判別するようにしたものである。
【0072】
[2−3.判別処理の詳細]
次に、
図15〜
図18を参照して、SAS患者を判別する処理の詳細について説明する。
図15は、1人の被測定者の睡眠開始(入眠)から起床までの数時間の生体振動データの波形の例を示す。
本実施の形態例の場合、
図15に示すような数時間の生体振動データから、64秒ごとに生体振動データ(圧力データ)の周波数を算出し、パワースペクトルを得る。但し、64秒単位でパワースペクトルを得る際に、そのパワースペクトルを算出する幅は、1秒ごとに動かすようにしている。周波数成分のパワースペクトルを得る処理の詳細は、
図14の説明で述べた通りである。
【0073】
生体データ処理部12は、周波数成分のパワースペクトルのそれぞれについて、覚醒(WAKE)か覚醒以外(Non−WAKE)かにラベリングする。
そして、ラベリングされた周波数成分のパワースペクトルから、ランダムフォレストモデル(RFモデル)を構築する。
【0074】
図16に示すように、生体データ処理部12は、ランダムフォレストモデルから、各周波数の寄与度を算出する。ランダムフォレストモデルは、第1の実施の形態例で説明したように、複数の決定木を持ち、それぞれの決定木が1つ又は複数の分岐を持つ。但し、第2の実施の形態例の場合には、分岐条件が周波数になる。
ランダムフォレストモデルから、各周波数の寄与度を算出する際には、例えば次の[数2]式から、寄与度Imp
(y
i)を求める。
【0076】
[数2]式において、y
iはi番目の周波数(
図14の縦軸の数値)、N
treeは決定木の数、Δ(T
j(y
i))は、決定木T
jにおける周波数y
iを用いたノードとそのノードの分岐後のジニ係数の差である。
【0077】
例えば、
図16にジニ係数の差が大の場合を示すように、y
10の周波数位置では、決定木での分岐で、y
10<6の判別を行うことで、○印で示す覚醒(WAKE)か、×印データ示す覚醒以外(Non−WAKE)かを明確に区別できている。
【0078】
一方、
図16にジニ係数の差が小の場合を示すように、y
512の周波数位置では、決定木での分岐で、y
512<3の判別を行うことで、○印で示す覚醒(WAKE)と、×印データ示す覚醒以外(Non−WAKE)とが、決定木では区別できない状態である。
【0079】
なお、それぞれのノードrでのジニ係数I
G(r)は、例えば次の[数3]式から求める。
【0081】
[数3]式において、cは、クラスの数(分類数)であり、p(i|r)は、ノードr内のクラスiに属する要素の割合を示す。
また、ジニ係数の差は、例えば次の[数4]式から求める。
【0083】
[数4]式において、r
Lはノードrを分割したときの左側であり、r
Rはノードrを分割したときの右側であり、p(r
x)は、分割後のノードr
xに属する要素数の割合である。
【0084】
図17は、周波数分布を、ジニ係数を利用して大小(上下)に分割する例を示す。
図17(a)は、SAS患者の場合であり、
図17(b)は健常者の場合である。
図17の例の場合には、横軸の寄与度xが、特定位置aよりも少ないか多いかで(つまりx=aの寄与度を境界として)、大小の要素で分割する。さらに、縦軸の周波数yが、特定位置bよりも大きい要素か小さい要素かで、上下(高い周波数か低い周波数か)に分割する。
【0085】
ここで、本実施の形態例の場合には、ランダムフォレストモデルの複数の決定木による学習で、寄与度xと周波数yが、最もきれいに分割される特定位置a,bの値を探索する処理を行う。
このようにして特定位置a,bの値が定まることで、
図14で説明したSAS患者の周波数特性と、健常者の周波数特性とを区別できるようになり、被測定者の生体振動データがいずれに該当するか判別できるようになる。
【0086】
図18は、SAS患者か否かを判定する指標SIFの例を示す。
SAS患者判定指標SIF(Spectrum Importance Feature)は、次の[数5]式で定義される。
【0088】
[数5]式において、Over
aveは上側の平均であり、Over
widhtは上側の幅であり、Under
maxは、下側の最大値である。
【0089】
図19は、本実施の形態例によるSAS患者か否かの判別結果の一例を示す。
図19の縦軸は指標SIFの値を示す。
ここでは、指標SIFの閾値を6000とし、閾値6000以上であるとき、SAS患者と判別し、閾値6000未満としたとき、SAS患者でないと判別したものである。
図19の例では、9名のSAS患者A,B,C,・・・,Iと、9名の健常者(SAS患者でない者)a,b,c,・・・,iとを判定した結果を示す。この
図19の場合には、SAS患者A〜Iと健常者a〜iを、指標SIFの数値順に示している。
【0090】
図19に示す例では、9名のSAS患者A〜Iを全てSAS患者と判別し、9名の健常者a〜iを非SAS患者と判別している。
この
図19から判るように、本実施の形態例によると、非常に精度の高い睡眠時無呼吸症候群の患者の判別でできるようになる。
【0091】
<3.変形例>
なお、上述した各実施の形態例で説明した特徴量や周波数の数値などは、好適な一例を示したものであり、これらの特徴量や周波数の数値に限定されるものではない。