記事内容
IoTデータに限らず、収集したデータを基にデータ分析を進めるにあたっては、データクリーニング(または、データクレンジング)という作業が欠かせません。
データクリーニングと言うよりも、データの整形作業と言い換えた方がイメージし易いかもしれません。つまり、データを整備して使い易い形にすることを指します。データクリーニング作業は「BIツール」を活用すると効率的に行うことができます。
ビジネスシーンにおけるデータ活用の活動は、BI(Business Intelligence)[1]とも言われます。そして、専門家の力を借りることなくBIの実現を支援するのがBIツールとされています。BIツールは、迅速なレポート出力、データを分かり易く可視化、データマインニング[2]、シミュレーションといった機能を備えています。
今回の記事で、BIツールを用いたデータクリーニング作業の実例をご紹介するにあたっては、Microsoft Power BI Desktopを使用しています。こちらは、無料で使用することができるソフトウェアです(執筆時点)。そして、ExcelやPowerPointといったMicrosoft製品を使い慣れた利用者であれば、似た操作感でPower BI Desktopを用いてデータ分析を行うことができます。
なお、Power BI Desktopは、Microsoft Power BI製品[3]の一部となります。ただ、Microsoft Power BI製品の紹介が今回の目的ではありません。ご興味がある方は、Microsoft社の学習資料をご紹介しますので、そちらをご参照ください。
Power BI Desktopを使用してデータクリーニング作業を行うにあたって使用するデータは、前回のコラム記事でご紹介した「センサーデータ収集ツール」が出力するCSVファイルを用います。まずは、この出力CSVファイルの特徴を挙げた上で、どのようなデータクリーニング作業が必要となるのかをご説明します。
出力CSVファイルの内容は、マルチセンサー[4]が計測して送信して来たデータとなります。時系列に送信されたデータレコードがCSVファイルの行データとなり、送信されたデータレコードの各データ項目が列データとなります。また、マルチセンサーは一度の送信タイミングで全てのデータ項目を送信するのではなく、部分的に個別のタイミングで送信して来ます。
データ項目の送信タイミングの違いを具体的にご説明しますが注意点があります。今回の説明はマルチセンサーの仕様そのものではなく、あくまでも「センサーデータ収集ツール」を経由した情報となっています。
マルチセンサーからのデータ送信には3つのタイミングがあります。なお「ステータス通知」とはマルチセンサー自体の状態レポートを指します。
- モーション系センサー [加速度、地磁気]
- 環境系センサー [温度、湿度、気圧、照度、紫外線]
- ステータス通知 [受信電波強度、電池電圧]
これが何を意味するかと言うと、CSVファイルを一つの表として見た場合に空の値(null値)が含まれる表になることを意味します。行データ(時系列レコード)に着目すると、全ての列データが有効な値で埋まることはありません。例えば、モーション系センサーから送信されたデータレコードでは、環境系センサーのデータ項目は空の値になります。
データを基にグラフ作成を行う等のデータ分析を進める際には、空の値のような無効なデータが含まれていると不都合が生じます。つまり、データ分析に用いる為には、有効な値のみで構成された表に整備する「データクリーニング」作業が必要になります。
「センサーデータ収集ツール」が出力するCSVファイルの例におけるデータクリーニング作業は、空の値を含まない3つの表(データテーブル)を作成することになります。以降では、Power BI Desktopを用いた具体例をご説明します。
今回は1つのデータソースから、条件によって抽出した3つのデータテーブルを作成する作業をしていますが一例に過ぎません。余り細かい操作に拘らずに「何を目的として行っているか」といった大局的な見方をして頂ければ良いと思います。一般的に見ても収集したデータの中に無関係なデータが含まれていたり、一部の形式が異なっていたり、無効な値が存在する等、不要なデータを除外する操作を行いたい場合は多くありますので、多様なケースで活用できると思います。
それでは、まずはPower BI Desktopにて、データソース(今回はツールが出力したCSVファイル)を取得します。操作イメージは下図のようになります。
データ取得後、「クエリ編集」という操作を行います。この操作がPower BI Desktopにおけるデータクリーニング作業に該当します。今回の例における「クエリ編集」の操作イメージは下図のようになります。
操作の流れを補足します。次のような作業の流れで、無効な値を含まない3つのデータテーブルを作成しています。
- データ取得により、1つのデータテーブル(データの表)が生成される
- 「複製」を行い、3つのデータテーブルを作成
- 各データテーブルに対して「列の選択」を行い、条件に合った列データのみを抽出
- 各データテーブルに対して列のフィルタ条件設定から「空の削除」を指定(null値の除外)
このようなクエリ結果による3つのデータテーブル(つまり、データクリーニング結果)を用意することで、Power BI Desktopのレポート作成機能を用いてグラフ作成といったデータ可視化を始めとしたデータ分析を進めることができます。下図はレポート作成例となります。
画面の右側に注目すると3つのクエリ結果を用いていることが分かります。なお、Power BI Desktopでは、個々に作成したグラフ等を全体としてストーリーを持つように配置する使い方は困難です。より優れたデザインの可視化を実現するには、Power BIサービス(Web)のダッシュボード機能を利用します。この辺りの詳細は、Microsoft社の学習資料を参照頂ければと思います。下図はダッシュボード作成例となります。
ここまでの内容を読まれて「データを抽出したり、グラフを作成したりするのは、エクセル(Excel)で十分ではないか」とお考えになった方もいらっしゃるでしょう。それでは、BIツールを利用する更なるメリットをご説明しましょう。
Power BI Desktopで保存を行うと拡張子「pbix」のファイルが作成されます。このファイルはPower BI Desktopに対して行った作業手順を保存しています。これが何を意味するのかと言うと、「pbix」ファイルを開いた際や更新処理を実行した際に、接続設定されたデータソースを基にしてクエリやレポート設定に沿って最新状態のレポートを作成してくれます。
つまり、定型的なレポート作成であれば、一度レポート作成を設定して保存すれば、データソース側のデータ内容が随時更新されたとしても、それに対応するPower BI Desktop側の内容更新が容易なのです。日々の最新データから同じ形式のレポートを定期的に作成しなければならない作業に対して活用すれば、日々の作業が大幅に省力化されることをイメージして頂けると思います。
また、今回の記事では触れませんが、BIツールが持つ機能は多彩であり、提示されたレポートに対して、受け取り側の自由度が高く、必要な見方(視点)でレポートを分析することができます。例えば、時間軸を変えてみたり(年、月、日単位等)、対象範囲を変えてみたり(全社、本社、工場A、工場B等)、こういった切り替えをワンクリックでできてしまいます。
今回の記事では、データ分析作業の前提となるデータクリーニング作業へのBIツールの活用を中心にご紹介しました。ビジネスシーンにおけるデータ活用にあたり、BIツールは多くの付加価値をもたらし、上手に活用すれば高い競争力を得られることを感じて頂けたのではないかと思います。
この記事のまとめ
- データ分析作業を進めるにあたりデータクリーニング作業は欠かせない
- データクリーニング作業にはBIツールの活用が効果的である
- 無料で利用できるBIツールもある
- BIツールはデータ分析作業の省力化に貢献してくれる