• 検索結果がありません。

センサーデータアナリティクスの開発から運用まで

N/A
N/A
Protected

Academic year: 2021

シェア "センサーデータアナリティクスの開発から運用まで"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

センサーデータアナリティクスの開発から運用まで

MathWorks

®

Japan

アプリケーションエンジニアリング部

アプリケーションエンジニア

(2)

Agenda

センサーデータの整理整頓

時系列の分類

解析環境の構築

データへの

CSV ファイル

(3)

データの整理整頓

生データそのままでは解析作業が進まない

生データに潜む様々な課題

1.

不要なデータが混入してしまっている

2.

データが取得できていない(欠損データの存在)

3.

想定していたファイルが丸ごとない

4.

異なるファイル同士を結合したい(同期処理)

5.

カラム名 / 変数名 が日本語になってしまっている

6.

データ量が膨大

This file contains sensor data from a 3D acceleration …Time Location Temperature AccelerationX AccelerationY 加速度Z 2016/10/19 00:00:00 outside 30 8.6007 3.5105 2.4395 2016/10/19 00:00:01 outside 30 8.5656 3.6618 2.3949 2016/10/19 00:00:02 outside 30 8.6011 3.549 2.3051 2016/10/19 00:00:03 outside 30 3.6602 2.3353 2016/10/19 00:00:04 outside 30 8.8312 3.7 2.2306 2016/10/19 00:00:05 outside 30 8.8293 3.5471 2.2613 2016/10/19 00:00:06 outside 30 8.829 3.5477 2.277 2016/10/19 00:00:07 outside 30 3.3935 2.3979 2016/10/19 00:00:08 outside 30 9.1325 3.5467 2.4437 2016/10/19 00:00:09 outside 30 8.9045 3.4698 2.3974

(4)

データの整理整頓

Case# 1/6 : 不要データをスキップしたインポート

Challenge

先頭の数行には、ファイルまたはデータの説明やメタ情報がありこれらは不要

解析には不要なカラムが存在

This file contains sensor data from a 3D acceleration …

Time Location Temperature AccelerationX AccelerationY AccelerationZ 2016/10/19 00:00:00 outside 30 8.6007 3.5105 2.4395 2016/10/19 00:00:01 outside 30 8.5656 3.6618 2.3949 2016/10/19 00:00:02 outside 30 8.6011 3.549 2.3051 2016/10/19 00:00:03 outside 30 3.6602 2.3353 2016/10/19 00:00:04 outside 30 8.8312 3.7 2.2306 2016/10/19 00:00:05 outside 30 8.8293 3.5471 2.2613 2016/10/19 00:00:06 outside 30 8.829 3.5477 2.277 2016/10/19 00:00:07 outside 30 3.3935 2.3979 2016/10/19 00:00:08 outside 30 9.1325 3.5467 2.4437 2016/10/19 00:00:09 outside 30 8.9045 3.4698 2.3974 …

(5)

データの整理整頓

Case# 1/6 : 不要データをスキップしたインポート

Solution

detectImportOptions

の利用

This file contains sensor data from a 3D acceleration …

Time Location Temperature AccelerationX AccelerationY AccelerationZ

2016/10/19 00:00:00 outside 30 8.6007 3.5105 2.4395 2016/10/19 00:00:01 outside 30 8.5656 3.6618 2.3949 2016/10/19 00:00:02 outside 30 8.6011 3.549 2.3051 2016/10/19 00:00:03 outside 30 3.6602 2.3353 2016/10/19 00:00:04 outside 30 8.8312 3.7 2.2306 2016/10/19 00:00:05 outside 30 8.8293 3.5471 2.2613 2016/10/19 00:00:06 outside 30 8.829 3.5477 2.277 2016/10/19 00:00:07 outside 30 3.3935 2.3979 2016/10/19 00:00:08 outside 30 9.1325 3.5467 2.4437 2016/10/19 00:00:09 outside 30 8.9045 3.4698 2.3974 …

>> FileName =

'sampledata.csv'

;

>> fileinfo = detectImportOptions(FileName,

'NumHeaderLines'

, 1);

% 先頭行をスキップ

>>

>>

% 必要な変数名を指定

>> fileinfo.SelectedVariableNames = {

'Time'

,

'AccelerationX'

,

'AccelerationY'

,

};

>>

(6)

データの整理整頓

Case# 2/6 : 欠損データの取り扱い

Challenge

欠損値があるけど記述統計量(平均や最大値、最小値など)を求めたい

欠損箇所を補間したい

Solution

nan○○ 関数の利用

nanmean / nanmax / nanmin / nanstd / nanvar / etc.

interp1 関数の利用

スプライン補間した例

>> x = DataTable.AccelerationX(1:5) x = 8.6007 8.5656 8.6011 NaN 8.8312 >> >> mean(x) ans = NaN >> >> nanmean(x) ans = 8.6497

(7)

データの整理整頓

Case# 3/6 : ファイルの欠損

Challenge

想定しているファイルが存在しない事が

ありプログラムが異常停止する

Solution

exist 関数の利用

try

catch

構文の利用

PATH =

'<File Path>'

;

if

exist(PATH,

'file'

) == 2

:

else

warning([

'Failed: '

, PATH,

' is missing!!'

]);

end

フォルダの場合は

exist(PATH, 'dir') == 7

ErrorData = cell(1,1);

% Initialize

n = 0;

for

m = 1:NumFiles

% Or while loop

try

:

catch

ME

n = n + 1;

ErrorData{n,1} = ME;

end

(8)

データの整理整頓

Case# 4/6 : ファイルの結合 / データの同期

Challenge

2つのファイルを時刻情報に基いて結合したい

サンプリング周波数が異なるデータを結合したい

Solution

timetable の利用

時刻情報に基づいた結合の例

>> % 時刻に該当する列を datetime 配列へ変換

>> DataVar.Time = datetime(DataVar.Time, 'InputFormat', …

'yyyy/MM/dd HH:mm:SS', 'Format', 'yyyy-MM-dd HH:mm:SS'); >>

>> % テーブル配列をタイムテーブルへ変換

>> TimeTabel = table2timetable(DataVar, 'RowTimes', 'Time');

>>

% 2つのタイムテーブル配列が有する Time 列を利用して結合

(9)

データの整理整頓

Case# 4/6 : ファイルの結合 / データの同期

Solution

timetable の利用

サンプリング周期が異なる

データを結合する例

(10)

データの整理整頓

Case# 5/6 : 日本語のカラム名

Challenge

変数名 / カラム名に日本語が入ってしまっている

Solution

対処療法として、Excel を使って 日本語名と英語名を管理し

警告: 有効な MATLAB 識別子になるように変数名が変更されました。 元の名前は VariableDescriptions プロパティに保存されています。

(11)

データの整理整頓

Case# 5/6 : 日本語のカラム名

インポートした後、VariableNames プロパティによる刷新

>>

% カラム名対応表を収めた Excel のインポート

>> [~, ColumnNameDict] = xlsread(

'ColumnsNameList.xlsx'

,

'Sheet1'

,

'B1:G2'

);

>>

>>

% 対象ファイルのメタ情報を取得

>> FileName =

'Sample.csv'

;

>> fileinfo = detectImportOptions(FileName);

>>

>>

% VariableNames の値を刷新

>> fileinfo.VariableNames = ColumnNameDict(2,:);

>> DataTable = readtable(FileName, fileinfo);

(12)

データの整理整頓

Case# 6/6 : 大量データへの対応

Challenge

ファイル数が膨大なため解析ができない

Solution

並列分散処理が有効

Parallel Computing Toolbox

& MATLAB Distributed Computing Server

の利用

ある

データセット (約1200のCSVファイル / 計約400MB) に

対する統計および集約処理のベンチマーク

0 5 10 15 H ou r

CPU コア数

高速化率

1

-6✕2ホスト

10.20

(13)

Agenda

センサーデータの整理整頓

時系列の分類

解析環境の構築

データへの

アクセスと探索

データの前処理

予測モデルの構築

システムへの統合

(14)

時系列の分類

デモ:テキストマイニングの手法を応用した水道使用傾向の分類

水道の使用状況から5つのクラスに家庭を分類

Typical

Constant

High Usage

Low Usage

Untenanted

(15)

時系列の分類

Approach

1.

約3ヶ月分の時系列データを部分時系列に分解

2.

分解された部分時系列に対して、いくつかのグループへクラスタリング

3.

グループ番号を文字とみなして

TF-IDFによって時系列の特徴量を算出

4.

様々な機械学習アルゴリズムを試行

5.

検証用データを使った学習器のテスト

5 3 7 1 4 3 6 6 2 4 4 5

TS_Name

TFIDF1

TFIDF2

TFIDF3

A-01

0.0267

0.0259

0.0487

A-02

0.0252

0.0544

0.0171

B-07

0.0307

0.0395

0.0652

B-09

0.0562

0.0385

0.0837

:

:

:

:

:

K-17

0.0399

0.0651

0.0275

T

C

HU

T

C

A-03?

B-08?

G-01?

(16)

Step1. 時系列を部分時系列へ分割

時系列A

(17)

Step2. 部分時系列のクラスタリング

(18)

Step2. 部分時系列のクラスタリング

Cluster #

1

2

3

4

5

6

7

:

(19)

Step2. 部分時系列のクラスタリング

Dynamic Time Warping

時系列ペアに関する相違度を求める計算方法

DTW を用いて時系列を3つにクラスタリングした例

K-Medoids + DTW

(20)

Step3. TF–IDF による各時系列の特徴量を算出

Term Frequency – Inverse Document Frequency

Term Frequency

定義

Inverse Document Frequency

定義

文章 d

i

にて単語 t が登場する回数

:

)

,

(

t

d

i

TF

文章 d

i

内における総単語数

log

:

)

(

t

IDF

文章 d

i

の総数

単語 t が登場する 文章の数

+ 1

MATLAB

is the language of technical computing and

MATLAB

product family supports the entire data

analysis process.

TF(‘MATLAB’, d

i

)

0.1176

17

2 

d

1

:

MATLAB

is the language of technical computing.

d

2

: MathWorks provides

MATLAB

and Simulink.

IDF(‘MATLAB’)

1

2

3

log

(21)

Step3. TF–IDF による各時系列の特徴量を算出

Term Frequency – Inverse Document Frequency

TF-IDF

定義

)

(

)

,

(

:

)

,

(

t

d

TF

t

d

IDF

t

IDF

i

i

TF

d

1

: MATLAB is the language of technical computing.

d

2

: MathWorks provides MATLAB and Simulink.

d

3

: MathWorks has released R2016b.

TF-IDF(‘MATLAB’, d

1

)

1

0

.

2008

2

3

log

7

1





TF-IDF(‘MathWorks’, d

3

)

1

0

.

3514

2

3

log

4

1





単語 t にクラスタの番号、

文章 d

i

に各時系列が対応

(22)

Step4. 機械学習アルゴリズムの試行

Classification Learner

学習アルゴリズムを対話的に検討

(23)

Step5. 学習器のテスト

正答率評価、およびパラメータ調整

混合行列 (Confusion Matrix)

ROC曲線

Bayesian Optimization

学習器のパラメータ(ハイパーパラメータ)を調整

bayesopt / BayesianOptimization

(24)

Agenda

センサーデータの整理整頓

時系列の分類

解析環境の構築

どこでデータを整理して、どこで解析を実施するのか

データへの

(25)

解析環境の構築

よくあるシステム構成

エッジ・

(26)

解析環境の構築

よくあるシステム構成

サーバー・

(27)

エッジ・コンピューティングを実現するには?

MATLAB Coder

または MATLAB Compiler

によるエッジ処理

デバイスへの実装

MATLAB Coder™ MATLAB Runtime

制御/監視端末への実装

MATLAB Compiler SDK™ MATLAB Compiler™

(28)

サーバー・コンピューティングを実現するには?

MATLAB Production Server

によるデータ解析システム

低遅延で高トランザクションな解析を実現する MATLAB Production Server

MATLAB Production Server

DB / DWH • Web Browser • Microsoft®Excel® End User HTTP / HTTPS Load Balancer C/C++ Java™ .NET Python™

(29)

Web Application の例

(30)

エッジ・コンピューティング vs. サーバー・コンピューティング

エッジ・コンピューティング

サーバー・コンピューティング

製品

MATLAB Coder

MATLAB Compiler

MATLAB Production Server

特徴

C/C++コード生成

ランタイム上で動作する

実行形式などを生成

低遅延な計算サービスを

提供するサーバ向け製品

サポート製品

一部のMATLAB関数と

一部のMATLAB Product Family

ほぼ全てのMATLAB Product

Family

ほぼ全てのMATLAB Product

Family

エッジ端末への実装

豊富な機能をロイヤリティ・フリー

で展開

複数同時アクセスをサポート

サポート関数及び機能が限定的

バージョン管理

バージョン管理

環境の構築

(31)

まとめ

テーブル配列やタイムテーブル配列には便利な前処理が充実

アルゴリズムを網羅的に実行できるため試行錯誤が容易

データ解析のためのシステム構築を見据えたアプリケーション開発環境を提供

データへの

アクセスと探索

データの前処理

予測モデルの構築

システムへの統合

参照

関連したドキュメント

(2) カタログ類に記載の利用事例、アプリケーション事例はご参考用で

既存の尺度の構成概念をほぼ網羅する多面的な評価が可能と考えられた。SFS‑Yと既存の

 仙骨の右側,ほぼ岬角の高さの所で右内外腸骨静脈

主として、自己の居住の用に供する住宅の建築の用に供する目的で行う開発行為以外の開

これらの定義でも分かるように, Impairment に関しては解剖学的または生理学的な異常 としてほぼ続一されているが, disability と

 ESET PROTECT から iOS 端末にポリシーを配布しても Safari の Cookie の設定 を正しく変更できない現象について. 本製品で iOS

J-STAGEの運営はJSTと発行機関である学協会等

必要な情報をすぐ探せない ▶ 部品単位でのリンク参照が冊子横断で可能 二次利用、活用に制約がある ▶