とmatlabの連携が データ解析の課題を解決 ·...

6
Excel MATLAB の連携が データ解析の課題を解決 ホワイトペーパー

Upload: others

Post on 05-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

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

ホ ワイト ペ ー パ ー

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

ホ ワイト ペ ー パ ー | 2

製品開発の現場では、各種のセンサーや測定環境を利用したデータ解析が行われ、シミュレーションや動作検証等に役立てられています。しかし、日々収集されるデータ量は増加し、解析も複雑化しており、データ解析の負荷は徐々に重くなっています。例えば自動車の車両計測データを解析する場合、取得したデータをそのまま解析に使用することはできず、データロガーに記録されたバイナリファイルを変換・分割してCSVファイルを取得したり、またその中から異常値の除去や欠損値の補間のような煩雑なデータの前処理を経て、解析を始めることになります。そうしたデータ解析のプロセスにマイクロソフト社の表計算ソフト「Microsoft® Excel®」を利用しているエンジニアは多くいます。Excelはデータ整形や分析に使える関数を備え、汎用性が高く、多くの企業や研究機関に導入されており、過去に作成したVBA(Excelマクロ)資産を蓄積している企業も多いことでしょう。しかしながら、「CSVファイルのデータサイズが大きすぎてファイルを開くことができなかった」「大規模な解析計算を実行すると処理に時間がかかる」「データ解析に使用するVBAのコーディング作業やメンテナンスが大変」といった声が、エンジニアリング現場から聞こえて来るようになりました。ここではそのような現場の課題に対し、使い慣れたExcelとMATLAB®を連携させて利用することで、大規模エンジニアリングデータの演算や解析を可能にする各種機能についてご紹介します(図1)。

図1. ExcelとMATLABを連携し、大規模データの解析・可視化を行っている例

エンジニアリングデータ解析の課題を解決するMATLAB

MATLABの代表的な特徴として、データの扱いが簡単な点が挙げられます。変数型や配列の事前宣言を行う必要がないため、直感的なコーディングができるだけでなく、ベクトルや行列データを直接扱える各種関数が用意されているため、処理速度や可読性の高いコードを記述することが可能です。他の言語では数百、数千行を要するコードが、 MATLAB であれば数十行で書けることは

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

ホ ワイト ペ ー パ ー | 3

少なくありません。MATLABを共通言語としてチームで使用することで、デバッグ作業やメンテナンス作業の効率を上げることができます。

MATLABの二次元/三次元のグラフィックス機能(図2)を使うことで、データ解析の結果を表すグラフのカスタマイズや、グラフィカルなユーザーインターフェイスの構築なども容易です MATLABに搭載されている豊富な機能やライブラリに加え、MathWorksサイトの MATLAB Examplesに掲載されているコード例や、オフィシャルコミュニティサイトのMATLAB Centralで有志のユーザーが公開している様々なコードも、プログラム開発の現場で役立てられています。

図2. MATLABデスクトップと、解析・可視化を行っている例

MATLABを使用することで、様々なデータソースへのアクセスに始まり、データ解析やモデリング、結果のドキュメント化、実行可能な形式のアプリケーションやExcelマクロに変換しての共有など、一連のエンジニアリングタスクを一つの環境で実現することができます(図3)。従来、手作業が多く発生していた煩雑な操作を自動化することで、作業時間を短縮したり、より多くのテストケースを解析することが可能となるため、本来取り組むべきアルゴリズム開発に集中することができるようになります。

MATLABは、インタプリタ型の科学技術計算言語であり、開発環境を提供する数値解析ソフトです。米国の研究機関で開発された線形代数ライブラリ「LINPACK」「EISPACK」などを基に、プログラミング環境、グラフィックス機能などを統合し、大学などの教育・研究機関や自動車業界などの製造業に広く普及しています。

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

ホ ワイト ペ ー パ ー | 4

図3. データへのアクセス、アルゴリズムの探求、結果の共有までの一連の動作を実現する、MATLABデータ解析ワークフロー

増大するエンジニアリングデータへのアクセスMATLABではデータサイズが大きいCSVファイルでも、データ量に関わらずアクセスすることができます。CSVファイルからデータを部分的に連続してインポートし、ストリーミング処理する仕組みが用意されているため、例えば、ギガバイト以上の巨大なCSVファイルへアクセスし、あるカラムのデータに注目した統計処理を行うことなども可能です。このように、ビッグデータに対応できるワークフローがMATLABにはビルトインされており、メモリ容量が限られているコンピュータでも、今までは困難だった大きなデータにアクセスし演算することが可能です。また、MATLABには汎用のODBC/JDBCドライバ経由でのデータベース/データウェアハウスへのアクセスに加え、Hadoopの様なビッグデータストレージへ直接アクセスし、MapReduceのプログラミング手法をMATLAB言語を使って実現する機能も用意されていますので、さらに大規模なエンジニアリングデータへのアクセスにも対応できます。

高度なデータ解析機能の実現エンジニアリングデータを解析する際には、探索的に様々な解析手法を試す必要があります。MATLABはスクリプト言語のため、ソースコードのコンパイルなどの操作は必要なく、コマンドや関数名を入力するとすぐに実行可能です。豊富な可視化機能を使い、データを二次元や三次元で表現し、様々な角度から観測・解析することができるため、思考を止めること無くタスクに集中することができます。ベクトル・行列データを基本とするMATLAB言語は、測定データなどの時系列データとの相性がよく、データの欠損値や異常値の除去などのデータクレンジング作業を直感的に行うことができます(図4)。また、スペクトル解析、フィルタリング、各種統計処理などの関数を利用することで、最小限のコード記述で様々なデータ解析が可能です。オプション製品である各種「ツールボックス」に専門領域に特化した様々な関数やアルゴリズムが用意されていますので、用途に応じた機能を追加することで、“機械学習技術を取り入れた異常検知や故障予兆検知”など、より高度な解析や処理を実現することができます。

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

ホ ワイト ペ ー パ ー | 5

図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上から、前述したような大規模データアクセス

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

ホ ワイト ペ ー パ ー | 6

や、高度なデータ解析、また、並列計算による高速な処理が実現されたMATLABの機能を利用することができます。

まとめ複雑化、高度化するものづくりの現場において、データ解析の重要性は高まっています。MATLABは幅広いデータフォーマットに対応しており、データへのアクセスが容易です。また、MATLABには様々なデータの処理・可視化機能が用意されています。アルゴリズム開発では統計解析、機械学習、最適化など、分野別に関数ライブラリが用意され、開発されたアルゴリズムはExcelのアドインとして現場のエンジニアに配布することができます。MATLABをデータ解析の現場で利用することで、既存のExcelでの解析環境を補完し、高度で高速な解析環境を作ることができます。

関連Webセミナー

ExcelユーザーのためのMATLAB 1:13:24

実践!多チャンネル時系列データの解析入門:自動車テストコースでのセンサーデータ処理 1:03:50