江崎? ライフログをまとめたcsvからhtmlを編集する
1.センサからラズパイで生体・環境データを取得
2.生体・環境データをライフログとしてクラウドに保存
3.PCでライフログをcsvファイルに書き込み、保存
4.実行コードでcsvファイルからデータを搾取
5.とってきたデータをもとに処理
6.出力したコーピング表示テキスト及びhtmlの作成
7.htmlの公開設定
8.別端末から閲覧
1からやるとIoTから始めなければいけないので今回はライフログcsvファイルをあらかじめ用意し,4から始める。
最終的に図のhtmlが別端末からみれればOK(実際の数値や文章は違うかも)
#ref(): File not found: "1.jpg" at page "ライフログからコーピングhtmlを作成"
ライフログ(3日間で研究室の各場所1分程度ぐるぐるした)
開いてみるのは大丈夫ですが絶対に書き加えないでください。絶対に上書き保存しないでください
html(何も書き加えない)
白紙のテキストファイル「opendata.txt」
実行コード
決定木(これを編集するんじゃなくて新規で作ったほうがいいかも)
決定木用csvファイル
これらのファイルを保存しモジュールをpip installしまくった後,processing_data_1.pyを実行すると以下の出力とデンドログラムが得られ、htmlがedgeで開かれる。
1.ライフログcsvファイルから行のラベルを作って読み込む
2.csvファイルのうちGSR、心拍、マイクラベル、時刻のリストを作成
3.デンドログラム制作。マイクラベルがある要素にはそのマイクラベルも表示
4.コマンドプロンプトに各データのクラスター番号を出力(数字はデンドログラムの表示順)
ユーグリッド距離2000で仕分けている。2000以内は同じグループとみなす。
このクラスター番号は行動ごとに与えられた番号と認識しておいてください
5.変数にテキトーな文字列を入れてテキストファイルを作成
6.デンドログラムを表示。テキストファイルを埋め込んだhtmlをedgeで開く
最終的に以下を処理
3人組で分かれて7つの変数を出力させる。残りの一人はコード内で直接htmlを編集できるようにし、stateの値次第で違うpngをファイルhtml内に表示させててください。(そして教えてください)
| 担当 | A | B | B | A | C | C | A |
| コード変数 | now_time | location | situation | total_time | stress_data | state | cope |
| html | Today | 場所 | 状況 | 経過時間 | ストレス予測値 | 状態 | 指令 |
datatimeは時間を扱うライブラリ。
group(クラスター番号)配列は時系列なのでどの行動がどれだけ続いているかが分かる。
ライフログからはだいたい2分くらいと思われる。
行動経過時間(total_time)はgroup配列をもとに行動が開始された時刻(start_time)と最新の時刻(now_time)を単純に引き算すれば求められる
コーピングに関しては本来はストレス予測値も参考にするが経過時間をもとにコーピング内容を変える
今回は基準を「1分」とし経過時間(total_time)が1分以上だった場合指令(cope)を発動する(未満だったら「なし」と表示)
ちなみにtotal_time.total_seconds()で秒単位になる
指令は「経過時間が○○で、行動は○○なので、○○しなさい」の形式で、○○の部分はif文で細かく仕分け。
ライフログは「パソコン作業」なのでそれに応じたストレス対策法をググってひょうじさせる
◎余裕があったら現在の行動よりひとつ前の行動に対しても同じ処理をしてみる
予測に使うのはGSRと心拍、そして自己評価のストレス値(1,5,8)
まずpipでsklearnをインストールし、決定木を可視化するためにgraphvizをインストールする必要がある。
http://ruby.kyoto-wu.ac.jp/info-com/Softwares/Graphviz/
decision_tree.pyはいろいろ書けているので自分で調べて決定木の作成と予測値の算出をする(可視化は問題ない)
processing\data_1.pyで最新のGSRと心拍の値をtre_s関数で予測値を返す。
予測値に応じてstateを決定する。(1だったら”健康”みたいな)