理乃美

ソフトとハードと論理の覚え書き

血圧データの異常検知 その2

2018-05-13 00:39:00 | AI
初期の50サンプルへフィットさせた結果に対して、その後のデータの適合具合(score) をとって、時系列で変化を見たのが前回。

今回は、 score を最高血圧-最低血圧の分布図で見てみる。


期せずして、全体データをまとめてGaussianMixtureで2クラスターに分けた結果とほぼ類似した様相になった。
(再録)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

血圧データの異常検知

2018-05-12 01:03:02 | AI
これまでは、全期間のデータを対象にしてクラスター分類をしてきた。しかし、本来の興味は異常検知/変化検知である。
次の、最高血圧の時系列プロットを見ても分かるように、時間がたつにつれて分散が広がると共に平均があがっているのが見て取れる。それをAI的に捕らえたい。



そこで、最初の50点をGaussianMixtureに当てはめて、それ以降のデータをそのGaussianMixtureモデルに当てはめてどうかを見てみよう。

import pandas as pd
df = pd.read_csv('data2.csv')
import matplotlib.pyplot as plt
initialSamples = 50

gm_pred = gm.predict(df.iloc[:initialSamples,[2,3]])

// このときの、BICは、およそ 690

score = gm.score_samples(df.iloc[:,[2,3]])
gm_sc = []
for value in score:
if value < -9.5:
gm_sc.append(0)
else:
gm_sc.append(1)

それぞれのデータについて、仮にそのscore -9.5 を境に色分けして正常(当初の50サンプルと同じ) か異常 (離れた値) かで色分けしてみた。で、時系列でみたスコアが以下のとおり。時間が経つにつれて、異常値が起きることが増えていること、異常の程度も大きくなっていることが図で見てとれる。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

血圧のデータを分析する。その4

2018-05-01 00:24:10 | AI
血圧測定データを、最高血圧、最低血圧、経過日時の3次元でクラスター解析すると経過日時でスライスされる傾向であったが、それはなぜだろう。
それは、最高・最低血圧と経過日時ではデータの性質が異なるからだろう。
最高・最低血圧は、ある値を中心にばらついているデータであることが想定される。
ところが、経過日時は一様に増してゆく値で、平均や分散と考える意味がないデータである。
クラスター分析は、どの軸においてもある値を中心にばらついているデータの群れを想定しているので、経過日時を含めて分類ことは不適当だったのである。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする