理乃美

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

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

2018-04-23 23:42:57 | AI
血圧のデータは、時系列データなので日時データもいれた3次元でクラス分けを試みる。

日時データは、経過日数を数値で表すこととする。例えば計測2日目の正午のデータは、2.5。 OpenOfficeのcalcであらかじめ数字にして用意した。data2.csvで、3列目が最高血圧、4列目が最低血圧、6列目が経過日時である。


import pandas as pd
df = pd.read_csv('data2.csv')


なお、最高/最低血圧には強い相関があるので、最高血圧だけを時系列でみるとこんな感じ

import matplotlib.pyplot as plt
plt.scatter(df.iloc[:,6],df.iloc[:,2])



これを、最高血圧、最低血圧、経過日時の3次元データとして GaussianMixtureで2クラスタに分けるとこうなる。

from sklearn.mixture import GaussianMixture
gm = GaussianMixture(n_components=2)
gm.fit(df.iloc[:,[2,3,6]])
gm_pred = gm.predict(df.iloc[:,[2,3,6]])


計測の前半の血圧の分散の小さい塊と後半の血圧の分散が大きい塊とに分割されている。

同じデータを最高血圧、最低血圧の2次元データとして GaussianMixtureで2クラスタに分けるとこうなる。

gm2 = GaussianMixture(n_components=2)
gm.fit(df.iloc[:,[2,3]])
gm_pred = gm.predict(df.iloc[:,[2,3]])


こちらは、最高血圧がせいぜい160までの塊とそれからはみ出した塊とに分け、測定日時の1/3頃からはみ出した塊があらわれだしたということが見える。

あるデータを全て使えば良いということではない事を示しているのだろう。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

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

2018-04-22 23:42:43 | AI
実データとして、血圧計のデータから最高血圧、最低血圧からなる測定値の分類を試みた続きで、クラスターの数を変更してみる。

scikit learnの KMeansを使って、クラスター数 n_clusters を 2から5まで変えた結果が以下のとおり。
なにかこう、最高血圧でスライスしてn_clusters個に等分した感じ。



scikit learnのGaussianMixtureでクラスター数 n _componentsを2から5まで変えた結果は以下のとおり。
こちらは、KMeansほどスライスしたという感はないけど、一つ固まりを見つけて、あとを等分したという感がある。



いずれにしろ、最高血圧・最低血圧のペアデータ全体を見ると、楕円の一塊とはずれ値がちょぼちょぼ、なので分けるのに無理があるのだろうが... 別の軸を入れるとどうなるだろう (続く)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

血圧データをクラスター分析してみる

2018-04-21 23:27:52 | AI
実験用のデータを使ってKMeanを試したあとは、実データで試してみる。

データはCSVファイル(data1.csv)で用意した。これを、Pandasを使って読み込む。



これの最高血圧/最低血圧の組のクラス分けを試みる。

まずは、KMeansで2クラスに分けてみた。



人間の目からみれば、「棒状の塊が一つと右のほうにはずれ値がぱらっとある」という感じ。だが、KMeansの結果は、「最高血圧130を境に二つに分けました」とでも言った結果になった。

GaussianMixtureをつかって2クラスに分けるとこうなる。



「右下に塊が一つ、あと残りを全部」という感じ。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「K-means」を動かす

2018-04-18 01:19:10 | AI
インターフェース誌 2018年5月号 の特集 第2章 をWindows7 で試してみた。

二つの散布図のうち、上がK-menasで3クラスタに分類した結果で、下はもともとのクラスタ構造。
よく見比べてみると、左の二つのクラスタの境目にある点の中には、本来の所属とK-meanで推定した所属とが異なるものがいくつかある。
いずれも、クラスタの中では中心から大きくはずれた点でたままた別のクラスタに近かった点である。
人の目からみても、推論した所属のほうがまとまりが良い。さらに言うと、最左のクラスタは本来の中心より推論した中心が少し右よりなのだろう。

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