ExcelとMATLABの連携が データ解析の課題を解決

ExcelとMATLABの連携が
データ解析の課題を解決
ホ ワ イト ペ ー パ ー
ExcelとMATLABの連携がデータ解析の課題を解決
製品開発の現場では、各種のセンサーや測定環境を利用したデータ解析が行われ、シミュレーシ
ョンや動作検証等に役立てられています。しかし、日々収集されるデータ量は増加し、解析も複雑
化しており、データ解析の負荷は徐々に重くなっています。例えば自動車の車両計測データを解析
する場合、取得したデータをそのまま解析に使用することはできず、データロガーに記録されたバ
イナリファイルを変換・分割してCSVファイルを取得したり、またその中から異常値の除去や欠損値
の補間のような煩雑なデータの前処理を経て、解析を始めることになります。
そうしたデータ解析のプロセスにマイクロソフト社の表計算ソフト「Microsoft® Excel®」を利用して
いるエンジニアは多くいます。Excelはデータ整形や分析に使える関数を備え、汎用性が高く、多く
の企業や研究機関に導入されており、過去に作成したVBA(Excelマクロ)資産を蓄積している企業
も多いことでしょう。しかしながら、
「CSVファイルのデータサイズが大きすぎてファイルを開くこ
とができなかった」
「大規模な解析計算を実行すると処理に時間がかかる」
「データ解析に使用す
るVBAのコーディング作業やメンテナンスが大変」といった声が、エンジニアリング現場から聞こえ
て来るようになりました。
ここではそのような現場の課題に対し、使い慣れたExcelとMATLAB®を連携させて利用すること
で、大規模エンジニアリングデータの演算や解析を可能にする各種機能についてご紹介します(図
1)。
図1. ExcelとMATLABを連携し、大規模データの解析・可視化を行っている例
エンジニアリングデータ解析の課題を解決するMATLAB
MATLABの代表的な特徴として、データの扱いが簡単な点が挙げられます。変数型や配列の事前
宣言を行う必要がないため、直感的なコーディングができるだけでなく、ベクトルや行列データを
直接扱える各種関数が用意されているため、処理速度や可読性の高いコードを記述することが可
能です。他の言語では数百、数千行を要するコードが、 MATLAB であれば数十行で書けることは
ホ ワ イト ペ ー パ ー
|
2
ExcelとMATLABの連携がデータ解析の課題を解決
少なくありません。MATLABを共通言語としてチームで使用することで、デバッグ作業やメンテナン
ス作業の効率を上げることができます。
MATLABは、インタプリタ型の科学技術計算言語であり、開発環境を提供する数値解析ソフトで
す。米国の研究機関で開発された線形代数ライブラリ「LINPACK」
「EISPACK」などを基に、プロ
グラミング環境、グラフィックス機能などを統合し、大学などの教育・研究機関や自動車業界など
の製造業に広く普及しています。
MATLABの二次元/三次元のグラフィックス機能(図2)を使うことで、データ解析の結果を表す
グラフのカスタマイズや、グラフィカルなユーザーインターフェイスの構築なども容易です
MATLABに搭載されている豊富な機能やライブラリに加え、MathWorksサイトの
MATLAB Examplesに掲載されているコード例や、オフィシャルコミュニティサイトのMATLAB
Centralで有志のユーザーが公開している様々なコードも、プログラム開発の現場で役立てられて
います。
図2. MATLABデスクトップと、解析・可視化を行っている例
MATLABを使用することで、様々なデータソースへのアクセスに始まり、データ解析やモデリング、
結果のドキュメント化、実行可能な形式のアプリケーションやExcelマクロに変換しての共有など、
一連のエンジニアリングタスクを一つの環境で実現することができます(図3)。従来、手作業が多
く発生していた煩雑な操作を自動化することで、作業時間を短縮したり、より多くのテストケースを
解析することが可能となるため、本来取り組むべきアルゴリズム開発に集中することができるよう
になります。
ホ ワ イト ペ ー パ ー
|
3
ExcelとMATLABの連携がデータ解析の課題を解決
図3. データへのアクセス、
アルゴリズムの探求、結果の共有までの一連の動作を実現する、MATLABデータ解析ワークフロー
増大するエンジニアリングデータへのアクセス
MATLABではデータサイズが大きいCSVファイルでも、データ量に関わらずアクセスすることがで
きます。CSVファイルからデータを部分的に連続してインポートし、ストリーミング処理する仕組み
が用意されているため、例えば、ギガバイト以上の巨大なCSVファイルへアクセスし、あるカラムの
データに注目した統計処理を行うことなども可能です。このように、ビッグデータに対応できるワー
クフローがMATLABにはビルトインされており、メモリ容量が限られているコンピュータでも、今
までは困難だった大きなデータにアクセスし演算することが可能です。
また、MATLABには汎用のODBC/JDBCドライバ経由でのデータベース/データウェアハウスへの
アクセスに加え、Hadoopの様なビッグデータストレージへ直接アクセスし、MapReduceのプログラ
ミング手法をMATLAB言語を使って実現する機能も用意されていますので、さらに大規模なエン
ジニアリングデータへのアクセスにも対応できます。
高度なデータ解析機能の実現
エンジニアリングデータを解析する際には、探索的に様々な解析手法を試す必要がありま
す。MATLABはスクリプト言語のため、ソースコードのコンパイルなどの操作は必要なく、コマンド
や関数名を入力するとすぐに実行可能です。豊富な可視化機能を使い、データを二次元や三次元
で表現し、様々な角度から観測・解析することができるため、思考を止めること無くタスクに集中
することができます。
ベクトル・行列データを基本とするMATLAB言語は、測定データなどの時系列データとの相性がよ
く、データの欠損値や異常値の除去などのデータクレンジング作業を直感的に行うことができます
(図4)。また、スペクトル解析、フィルタリング、各種統計処理などの関数を利用することで、最小
限のコード記述で様々なデータ解析が可能です。オプション製品である各種「ツールボックス」に
専門領域に特化した様々な関数やアルゴリズムが用意されていますので、用途に応じた機能を追
加することで、“機械学習技術を取り入れた異常検知や故障予兆検知”など、より高度な解析や処理
を実現することができます。
ホ ワ イト ペ ー パ ー
|
4
ExcelとMATLABの連携がデータ解析の課題を解決
図4. データの欠損、サンプリング周期の異なる二種類のデータ
(左)
と、欠損箇所のデータ補間、およびサンプリング周期の同期(リ
サンプリング)を行った例(右)
使用するアルゴリズムが決まると、同じ解析や処理を多数のファイルやデータソースに適用するケ
ースが、データ解析の現場では多く見受けられます。Parallel Computing Toolbox™を使用し、作成
したプログラムに最小限の変更を加えるだけで、ループ処理など時間のかかる処理を、
マルチCPU
にて並列分散計算することができます。また、演算の種類によっては、GPUを用いた高速な演算処
理を行うことも可能です(図5)。
gX = gpuArray(X); % CPUからGPUへデータ”X”を転送
gY = fft(gX); % GPU上にて演算処理を実行(FFT関数の呼び出し)
Y = gather(gY); % 演算結果をGPUからCPUへ戻す
図5. GPU を使ったコード例 (FFTの処理例)
Excelとの連携、プログラムの配布
Excelスプレッドシート上での操作性やVBAの資産を、そのまま使い続けたいという場合には、PCに
インストールされたMATLABとExcelを連携させる方法があります。Spreadsheet Link™を利用するこ
とで、ExcelフロントエンドからMATLABの計算エンジンを呼び出してデータの解析・演算処理を行
うことができます。
MATLABがインストールされていないPCに対しては、MATLAB Compiler™を利用することで、作成
したMATLABプログラムをExcelアドインとしてパッケージ化しExcelユーザに配布することができ
ます。MATLAB Compilerで作成されたExcelアドインは、無償で提供されるMATLAB Runtimeライ
ブラリをインストールしたPC上に自由に配布することができるため、この配布されたExcelアドイン
を利用することで、様々な現場のエンジニアがExcel上から、前述したような大規模データアクセス
ホ ワ イト ペ ー パ ー
|
5
ExcelとMATLABの連携がデータ解析の課題を解決
や、高度なデータ解析、また、並列計算による高速な処理が実現されたMATLABの機能を利用す
ることができます。
まとめ
複雑化、高度化するものづくりの現場において、データ解析の重要性は高まっています。MATLAB
は幅広いデータフォーマットに対応しており、データへのアクセスが容易です。また、MATLABには
様々なデータの処理・可視化機能が用意されています。アルゴリズム開発では統計解析、機械学
習、最適化など、分野別に関数ライブラリが用意され、開発されたアルゴリズムはExcelのアドイン
として現場のエンジニアに配布することができます。MATLABをデータ解析の現場で利用するこ
とで、既存のExcelでの解析環境を補完し、高度で高速な解析環境を作ることができます。
関連Webセミナー
ExcelユーザーのためのMATLAB 1:13:24
実践!多チャンネル時系列データの解析入門:自動
車テストコースでのセンサーデータ処理 1:03:50
ホ ワ イト ペ ー パ ー
|
6