ナビゲーションをスキップする
All Places > All Things PI - Ask, Discuss, Connect > Japan PI Square > ブログ > 2018 > May
2018

体重の予測モデルを作成したので、簡単に活用してみたいです。

 

例えば、一か月後の予測体重を表示してみたいなら、下記のようにできます。

一か月後の体重の属性を作成し、タグの参照の代わりに体重の予測値の値を参照します。

その後に、「値の取得方法」に一か月後のデータを取得するために「自動」と「+1mo」を記入しました。

 

 

(あぁ、あまり変わらない。。)

 

また、目標を設定して、いつごろ超えることができるのかが、AF分析で簡単に計算できます。

そのために、FindEqの式を利用します。未来のデータであっても、問題なく計算できます。

(今年以内であれば、それでもいいじゃないか)

 

 

その後に、いつもの通り、通信メールの設定をしたり、PI Visionで表示したりできますが、

このような予測をどういうふうに使ったほうがいいかのアイデアがあれば、下記のコメントに挙げてください。

PIに自分の体重のデータを書き込んだので、今後の予測をしたかったです。

(来月はどうなるだろう)

 

まずは結果を紹介させて頂きます。

PIに一週間の体重のデータをいれました。(緑線)

予測値は青い線で表示されています。

 

AF 2017 R2から提供されたLinRegrの関数を利用しています。この関数を利用すると単純な線形回帰の計算ができます。

今回は、LinRegrの関数を利用し、今年の7月の体重を予測しました。

 

(その調子で、やせるじゃないかよ!)

 

AF 2018から、AF分析の出力タイムスタンプを属性の値に設定できます。

つまり、体重を計るとこの計算が実行され、7月1日の体重の予測値が更新されます!

 

(この調子で、頑張って続けたいです)

PI Connector for UFLの1.3バージョンがリリースされました。

PI Connector for UFL 1.3: Unicode(UTF-8) support, statuses, REST headers

リリースについての質問があれば、下記のコメントにぜひ聞かせてください。

--------

 

次のPI Connector for UFLのバージョンにUnicodeの対応が改善されています。

(処理したいファイルにある日本語の内容を利用できるようになりました。)

 

現在、社内のベータ版を利用し、この機能を紹介したいと思います。

PI Connector for UFLのUnicodeのサポートが改善されたとは言っても、PI Data Archiveのサポートが改善されていないので、

残念ながら、十分利用はできない機能になっています。

 

以前は日本語があるデータファイルを事前処理してから、UFLで処理する必要がありましたが、

1.3のバージョンではこの事前処理が必要なくなりました。

 

 

1.3バージョンをテストをするために、個人の体重計のデータをPIに入れてみました。

体重計からのデータのフォーマットは下記の通りにエクスポートされます。

 

時間:05:02, 木曜日, 05/17/2018
体重  92.8kg  高い
体水分率  50.3%  不足
体脂肪率  29.5%  体重オーバー
骨量  3.1kg  健康
BMI  28.6  太る
内臓脂肪レベル  13  警戒
BMR  1808Kcal  低い
筋肉含有量  62.1kg  優秀

 

(かなり悪い数字しか出ていないのですが、それは無視してください。)

 

データのエクスポートはANSIのフォーマットです。

 

そのために、作成してみたINIファイルのフォーマットもANSIにし、

PI Connector for UFLのデータソースの設定に「Extended ASCII」を設定しました。(この設定は新しい設定になります)

 

一つのデータの行をみると、三つのデータがあります。 

1.体重

2.92.8kg

3.高い

 

「体重」をタグ名としてを利用したいのですが、タグ名はASCII以外利用できないので、

INIファイルでタグ名を変更します。

 

TagName = ["(*)  *"]
if TagName == "体重" then
  TagName = "Weight"
ENDIF

 

こうすると、PI Connector for UFLがUFL.Weightというタグにデータを書き込みます。

 

「高い」のデータも同じようにPI Data Archiveに書き込むのは推奨できないので、

その代わりに、数字に変更します。

State = ["*  *  (*)"]
' 体重の状態
If State == "高い" then
  State_Value = 2
endif
If State == "健康" then
  State_Value = 1
endif
If State == "低い" then
  State_Value = 0
endif

元の日本語がクライアントに表示されるために、列挙セットを作成しました。

 

AFでの結果