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

MATLAB®によるビッグデータ解析

N/A
N/A
Protected

Academic year: 2021

シェア "MATLAB®によるビッグデータ解析"

Copied!
26
0
0

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

全文

(1)

© 2013 The MathWorks, Inc.

MATLAB

®

によるビッグデータ解析

MathWorks Japan アプリケーションエンジニアリング部 アプリケーションエンジニア 吉田剛士

(2)

ビッグデータ解析とその背景

増え続けるデータ量  ビッグデータとは 100TB ~ 10PB程度のデータ量  データが膨大になる理由 データソースの多様化と高性能化 スマートフォン 位置情報 監視カメラ 検索情報 SNS 構造物センサー 交通情報 IC ICカード情報 金融情報 買物履歴

(3)

ビッグデータ解析とその背景

活用できる時代がやってきた  これまでは・・・ データをためてはいたけど あきらめていた  これからは・・・ ためていたデータを使った解析を実施

(4)

アジェンダ

 Hadoop® へのアクセス

 MATLABによるデータ解析

 拡張性と柔軟性を合わせ持つ開発環境

(5)

Hadoop

®

とは

分散処理を利用した大規模データ向けミドルウェア

 Apache™ Project の1つで

– Hadoop Common

– Hadoop Distributed File System (HDFS™)

– Hadoop MapReduce という3本柱から構成される – Java™ がソフトウェアフレームワーク  HDFS – 複数ホストにまたがる分散ファイルシステム  Hadoop MapReduce – HDFS上のデータに効率よくアクセスするためのフレームワーク

(6)

Hadoop

®

-Related Projects at Apache

Javaを知らなくてもHDFSの利用可能!  HDFS™やMapReduceを応用した製品または補完製品 代表的なプロジェクト  Hive™ : Facebookによって開発されたデータウェアハウス  Pig™ : Yahoo!によって開発されたデータフロー言語および実行環境  HBase™ : GoogleのBigtableを参考にした列指向の分散データベース  Cassandra™ : Facebookによって開発された列指向の分散データベース  ZooKeeper™ : 分散アプリケーション向け高可用性協調サービス

(7)

HDFS

へのアクセス

MATLABにデータインポート  連携方法 – 2つの選択肢 1. Java API + テキストファイルのインポート 2. JDBCドライバ .txt Java

(8)

デモンストレーション

Import data from Hive/HBase via JDBC driver

>> % Import data as table array

>> setdbprefs(‘DataReturnFormat’, ‘table’); >> % Access to Hive

>> conn = database('default', ‘USERNAME', ‘PASSWORD', …

'org.apache.hive.jdbc.HiveDriver', 'jdbc:hive2://HOSTNAME:HIVE2_PORT');

>> curs = exec(conn, 'select * from HARTRAINDATA'); % Open cursor

>> curs = fetch(curs); % Import data into MATLAB workspace

>> RawData = curs.Data; >> close(curs);

>> close(conn); >> clear conn curs >> whos RawData

Name Size Bytes Class Attributes RawData 388432x54 167818570 table

※ Hbase – Phoenixの場合は

conn = database('',’USERNAME',‘PASSWORD','com.salesforce.phoenix.jdbc.PhoenixDriver', ...

'jdbc:phoenix:HOSTNAME:ZOOKEEPER_PORT:/hbase');

(9)

Table

R2013bの新機能  特徴 – 変数名付データ  利点 – 変数名を使ってアクセス可能 – データが比較的コンパクト

Name Size Bytes Class RawData 388432x54 2517039360 cell >> RawData.time ans = 8.3800 8.3900 8.4000 : >> RawData ans =

time actid heart_rate … ____ _____ __________ __

8.38 0 104 … 8.39 0 NaN …

Name Size Bytes Class RawDataT 388432x54 167818570 table

(10)

アジェンダ

 Hadoop へのアクセス

 MATLABによるデータ解析

 拡張性と柔軟性を合わせ持つ開発環境

(11)

デモンストレーション

Physical Activity Recognition

 体に取り付けたセンサーから得られる データからの活動状態を把握 – 心拍数と3箇所に取り付けたセンサー情報 (温度、加速度(x,y,z)など17種類)から 1. 寝ている 2. 座っている 3. 立っている : という活動状態の分類を実施 – 活動状態との関係性を導き出す t y x1 x2 x3 x4 x5 … x52 Ti me Series

timestamp Activity ID Heart Rate

51 (= 3*17) Features

y

) , , , (x1 x2   x52

f

?

(12)

課題

データがあっても・・・  生データは前処理が必要  モデルを数式で表現することが困難  変数の数が多くても大事なのはその一部 -0.10 0 0.1 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Model 6 5 4 3 2 1,x ,x ,x ,x ,x xxn

(13)

取り込んだデータの確認

生データはそのままでは使えない

 使えないデータが無視できないほど含まれている

time actid heart_rate imu_and_ temperature imu_hand_3d_ acceleration2 imu_hand_3d_ acceleration3 8.38 0 104 30 2.37220 8.60070 … 8.39 0 NaN 30 2.18840 8.56560 … 8.40 0 NaN 30 2.37360 8.60110 … : : : : : : … 1985.50 13 NaN 33.6250 -8.29240 3.62440 … : : : : : : … 3143.31 18 106 34.5625 2.98428 8.00174 … 欠損値 異常値

(14)

Data Cleansing

データを整えるテクニック  論理配列による高速なデータ抽出 – 論理配列とは、1 (true) / 0 (false) から配列 – 論理配列によるデータ抽出 – FIND関数を使うよりも30%程度高速 >> x x = 0.8147 0.9058 0.1270 0.9134 0.6324 >> x >= 0.7 ans = 1 1 0 1 0 >> x(x >= 0.7) ans = 0.8147 0.9058 0.9134

(15)

様々な回帰・分類アルゴリズム

試行錯誤を繰り返し普遍性の発見

Regression

Non-linear Reg.

(GLM, Logistic) Linear Regression Bagging /

Random Forest Boosting Neural Networks

Classification

Nearest Neighbor Discriminant

Analysis Naive Bayes Support Vector

Machines

 Statistics Toolbox™

 Neural Networks Toolbox™

Decision Tree

(16)

決定木

「木」構造を用いた機械学習アルゴリズム

 の が木構造 – AdaBoost

– Bagging (Bootstrap Aggregating)

– Random Forest △: Branch ●: Leaf △+●: Node ) , , , (x1 x2 xn f y    f

(17)

変数が多い場合のモデル構築

変数の選択

全ての変数が意味のあるデータとは限らない

– 相関の高い変数 – 分類に影響を与えない変数 

変数選択の効果

– メモリの節約 – 計算パフォーマンスの向上

(18)

モデルの評価

 Confusion Matrix  ROC 曲線と AUC A B C D E F G A 557 23 0 0 0 0 0 B 19 342 24 0 0 0 0 C 0 32 480 63 0 0 0 D 0 0 52 863 99 1 0 E 0 0 0 98 784 45 0 F 0 0 0 1 98 214 7 G 0 0 0 0 1 19 110 実 際 の 分 類 モデルによる分類 モデルではグループEに分類されたが 実際はグループFに属しているデータ

(19)

課題(再掲)

 生データは前処理が必要  モデルを数式で表現することが困難  変数の数が多くても大事なのはその一部 -0.10 0 0.1 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Model 6 5 4 3 2 1,x ,x ,x ,x ,x xxn

(20)

MATLAB’s Solutions

データに潜む普遍的ルールの発見  論理配列による高速なデータクレンジング  様々な機械学習アルゴリズムをサポート  学習結果から変数選択を行いモデルを軽量化 Model 1 x x2 x8 x19 x31

(21)

アジェンダ

 Hadoop へのアクセス

 MATLABによるデータ解析

 拡張性と柔軟性を合わせ持つ開発環境

(22)

解析に時間がかかるような場合は・・・

ユーザフレンドリーな並列・分散プログラミング  12コアまでを用いた並列プログラミング 環境と関数群を提供  並列計算の初心者からMPIを使いこなす上 級者向けの機能をサポート  MATLAB/Simulink®プロダクト・ ファミリとの連携による並列計算機能  GPGPU へのシームレスなアクセス Desktop Computer Parallel Computing Toolbox™

(23)

1台で間に合わなければ・・・

スケーラブルな並列・分散環境を提供

Computer Cluster

MATLAB Distributed Computing Server™

Head Node Desktop Computer

(24)

アジェンダ

 Hadoop® へのアクセス

 MATLABによるデータ解析

 拡張性と柔軟性を合わせ持つ開発環境

(25)

MATLABによるビッグデータ解析

まとめ:バッチ解析編

 HDFS™へのアクセス

– JDBC / Java API

– MATLAB Builder JA

 Tips & Tricks

– テーブル配列 – データクレンジングの高速化 – PCT / MDCS によるスケールアウト  豊富な解析機能 – データ集約 – 回帰または分類モデルの構築

(26)

MATLABによるビッグデータ解析

2つの流派  Batch Processing – ある程度のデータをためて処理する  対象データは大規模  処理に時間をかけてもよい  ポイントはデータストレージへのアクセス  Stream Processing – 次々生成されるデータを処理する  対象データは小規模  処理に時間はかけられない  ポイントは低遅延性 Batch Processing Stream Processing

Table  R2013bの新機能   特徴  – 変数名付データ   利点  – 変数名を使ってアクセス可能  – データが比較的コンパクト

参照

関連したドキュメント

心臓核医学に心機能に関する標準はすべての機能検査の基礎となる重要な観

(J ETRO )のデータによると,2017年における日本の中国および米国へのFDI はそれぞれ111億ドルと496億ドルにのぼり 1)

名の下に、アプリオリとアポステリオリの対を分析性と綜合性の対に解消しようとする論理実証主義の  

ベクトル計算と解析幾何 移動,移動の加法 移動と実数との乗法 ベクトル空間の概念 平面における基底と座標系

テキストマイニング は,大量の構 造化されていないテキスト情報を様々な観点から

[r]

の総体と言える。事例の客観的な情報とは、事例に関わる人の感性によって多様な色付けが行われ

⼝部における線量率の実測値は11 mSv/h程度であることから、25 mSv/h 程度まで上昇する可能性