データクリーニングとは
これだけは知っておきたい 3 つのこと
これだけは知っておきたい 3 つのこと
データクリーニングとは、対象のデータセットにおける異常を特定して対処するプロセスです。データクレンジングまたはデータラングリングとも呼ばれます。データのクレンジングには、外れ値の管理、欠損データの推定、ノイズの除去といった、さまざまな手法を用いることができます。
エンジニアやデータ サイエンティストは、データをクリーニングすることで結果の精度を向上させ、欠陥や不完全さを含むデータに基づく誤った結論を未然に防ぐことができます。
MATLAB® は、データクリーニングを簡略化する関数やアプリを提供することで、解析や問題解決に集中して取り組めるよう支援します。
データクリーニング手法は、信号処理、AI、金融工学など、さまざまな分野で用いられています。
アナログセンサーから取得した信号はさまざまなノイズ源の影響を受けるため、データに不整合が生じます。前処理では、外れ値の除外や平滑化などのデータクリーニング手法を用いて、クリーンで意味のあるデータに対して解析が実行されるようにします。
適応フィルターやウェーブレット変換などの高度なノイズ除去手法は、ホワイトノイズの影響を受ける広帯域信号を扱うシステムにおいて、元の信号情報を損なうことなくノイズを除去するのに役立ちます。
図 1 は、365 日間にわたって記録された、ある人物の毎日の体重のプロットを示しており、欠損値が含まれています。プロットには、元の測定値と内挿値が表示されています。この 200 日目から 250 日目までを拡大したプロットには、特定された欠損値と内挿による置換値が示されています。
図 1. ある人物の毎日の体重データを示す MATLAB プロット。内挿法を用いて欠損しているエントリが補われています。
AI モデルの性能と信頼性は、入力データの質に大きく左右されます。データクリーニングは、AI モデルを偏りや誤りのある結果に導く可能性のあるノイズ、不整合、欠損値、外れ値を取り除くことができます。クリーンな入力データを用いることで、AI アルゴリズムは正しいパターンを学習し、精度の高い予測を行うことができます。
図 2 は、MATLAB の fillmissing、filloutliers、smoothdata 関数を用いて欠損データや外れ値データ、ノイズを取り除いた負荷消費データのプロットを示しています。このデータを AI モデルに入力することで、負荷消費を正確に予測できます。図 3 は、MATLAB で予測モデルの結果と実際のデータ、そして両者の誤差の大きさを示したプロットです。クレンジングしたデータセットを使わずにモデルの学習を行った場合、予測誤差が大きくなる可能性があります。
正確な財務モデル、リスク評価、投資戦略には、クリーンなデータが不可欠です。金融アナリストは、データに関する課題が原因で、実際のモデリング作業よりもデータクリーニングに多くの時間を費やしています。欠損データや大規模データ、あるいは異なるデータソースがあると、予測の偏りや意思決定の誤りにつながる可能性があります。データクリーニングは、金融分析の精度と信頼性を高める有効な手法です。図 4 は、ある企業の年間平均株価の欠損値を示しています。MATLAB の fillmissing 関数を使用して、線形内挿で欠損データを補完しています。
データクリーニングの反復的なプロセスには、使用するデータセットや最終的な分析の目的、利用可能なツールやソフトウェアによって、さまざまな手法が用いられます。データクリーニングには通常、以下のいずれか、または複数の手順が含まれます。
欠損データとは、データセット内の値や情報の欠如を指し、NULL、0、空の文字列、または無効な (NaN) データポイントという形で表面化します。値が欠損する理由には、データの取得、伝送、変換など、さまざまな要因があります。欠損データは、データ分析とモデリングの品質や有効性に大きく影響する可能性があるため、データクリーニングの過程で適切に対処することが重要です。
欠損データは次の 3 つのカテゴリに分類できます。正しいカテゴリを特定することで、適切な補完手法の選択が可能になります。
欠損データの特定は一見簡単そうに思えますが、欠損データを適切な推定値に置き換えるのは複雑なプロセスです。可視化や無効な値の検索などを通じて、まずは欠損値を特定するところから始めます。欠損値を置き換えるには、実際の値に近いと思われる値を生成する必要があります。データの性質に応じて、欠損値を補完する手法は異なります。以下はその例です。
図 5 は、加工されていない太陽放射データと fillmissing 関数を用いて補完された欠損値を示しています。この例では、移動中央値法を用いて欠損値を補完しています。
図 5. 加工されていない太陽放射のデータセットの時系列プロットとMATLAB の fillmissing 関数を用いて補完された欠損値を示す時系列プロット。
外れ値とは、データセット内の大多数の観測値から大きく逸脱しているデータ点のことです。これらは、一見データの一般的なパターンに従っていない異常に高い値または低い値です。外れ値は、データセットの統計解析や解釈を歪め、誤った結果を招く可能性があります。外れ値は、測定誤差やデータ入力ミス、自然変動、あるいは調査対象となるプロセスに内在する異常など、さまざまな理由で発生する可能性があります。
外れ値の管理には、設定可能な 2 つの手順が含まれます。
外れ値の検出とは、有効な動作範囲を定め、その範囲から外れたデータ点を外れ値として識別することです。有効な動作範囲の定義に用いられる手法は、データセットの属性やソース、目的に応じて選択されます。こうした手法は、可視化ベースまたは固定しきい値ベースの外れ値検出といった単純な手法から、中央絶対偏差などの統計的手法やユークリッドやマハラノビスといった距離ベースの手法まで多岐にわたります。
外れ値は、特定後に生成された値に置き換えることができます。外れ値を置換する際に用いる生成手法は、欠損値の補完手法と類似しています。
図 6 は、入力データと、中央値を用いて検出して線形内挿で補完した 2 つの外れ値を示しています。
図 6. 中央値しきい値法による外れ値の検出と線形内挿法による外れ値の補完のために用いられる [外れ値データの削除] ライブ エディター タスク。
平滑化は、データセット内のノイズ、変動性、不規則性を低減して、内在するパターンや傾向をより明確にするために使用されるデータ解析手法です。統計、信号処理、時系列解析、画像処理など、さまざまな分野で広く利用されています。
平滑化手法は、他のデータクリーニング手法と同様に、データの特性や領域に大きく依存します。移動平均フィルター、重み付けされた移動平均フィルター、移動中央値ベースフィルターなどの単純な統計的手法から、スプライン、フーリエ変換平滑化、カルマンフィルター処理などのより複雑な手法まで、幅広く利用できます。平滑化関数を使用するには、データセットを順序付けて、固定間隔でサンプリングしておく必要があります。
図 7. MATLAB の smoothdata 関数で移動平均フィルターを適用して、ノイズを含むデータセットを平滑化したプロット。
従来のデータクリーニング手法は、一般的に知られている統計モデルや数学モデルで表現できるデータには効果的に機能します。しかし、人間の音声や EEG 信号のような標準的なモデルにはうまく適合しない複雑なデータセットの場合は、ディープラーニング モデルを活用してデータクリーニングを実行できます。
図 8. クリーンな音声信号、ノイズが混入した音声信号、2 つのディープラーニング ネットワーク (全結合と畳み込み) によるノイズ除去後の出力を示す MATLAB プロット。
Microsoft® Excel® は、データのクリーニングと準備によく使用されるツールです。重複の削除や検索と置換などの組み込みコマンドを使用してデータセットを標準化できます。また、条件付き書式を適用して不整合を強調表示したり、ピボットテーブルを使用してエラーを特定して修正したりすることも可能です。しかし、大規模なデータセットの場合、欠損値の処理やデータセットの統合、カスタムロジックの適用などの作業は多くの場合手作業で行う必要があります。自動化が不十分だと、予期しないエラーや不整合が生じやすくなるため、特に複雑なデータセットを扱う際は注意が必要です。
MATLAB は、Excel では時間のかかるデータクリーニング作業を効率化できるため、特に大規模なデータセットで有効です。MATLAB のスクリプトや関数を使えば、データクリーニングのための変換処理が明確になるため、どのような手順が実行されているかを常に確認でき、必要に応じて調整することも可能です。たとえば、欠損値を手動で検索する代わりに、fillmissing 関数を使って自動的にデータの欠損部分を処理できます。MATLAB と Excel を組み合わせることで、複雑で手間のかかるデータセットも一貫して処理でき、プロセス全体を管理しやすくなります。
データクリーニングは、工学や科学分野のワークフローの多くで重要となる最初のステップです。MATLAB には、効率的にデータクリーニングを行うために使用するさまざまな関数や、対話形式のローコード手法 (アプリやライブ エディター タスク) が用意されています。
高水準関数を使用したコードの記述は、特に言語構文や関数の使い方に精通している場合、非常に効率的な手段となります。しかし、適切なデータクリーニング手法の特定には反復作業が伴うのが一般的で、そのたびにコードを微調整するのは手間と時間がかかります。MATLAB の対話型ツールを使用すると、さまざまなデータクリーニング手法を素早く試して、データセットでの効果を可視化しながら、最適な方法を選ぶことができます。ライブ エディター タスクやデータ クリーナーなどのアプリを使用すると、コーディングの負担を軽減しながら、データの探索からクリーニング、準備、解析に至るまで、作業を容易に進めることができます。さらに、MATLAB コードを自動生成して、再利用することもできます。
ライブ エディター タスクは、ライブ スクリプトに組み込むことができるシンプルなポイントアンドクリック インターフェイスまたは簡易アプリです。タスクでは、対話的に設定したパラメーターに基づいて一連の MATLAB コマンドが自動的に実行され、結果がすぐに表示されます。タスクは、開発期間の短縮だけでなく、エラーやプロット時間の削減にも役立ちます。[欠損データの削除]、[外れ値データの削除]、[データの平滑化] などの一連のライブ エディター タスクを使用して、さまざまなデータクリーニング操作を対話的に実行できます。
データ クリーナー アプリを使用すると、加工されていない列方向データを処理してクリーニングすることができます。さまざまなデータクリーニング手法を対話的に繰り返し適用し、その効果を可視化することができます。
このアプリを使用して、以下を行うことができます。
MATLAB のデータ クリーナー アプリを使用して、簡単なクリーニング手順で乱雑なデータをクリーニングし、解析やモデル開発用に準備する方法について説明します。
データクリーニングは、データ解析における重要な最初のステップで、データを後の解析に適した形に整えるために実施します。詳しくは、以下のリソースをご確認ください。
ドキュメンテーション、例、ビデオなどを通じて知識を広げましょう。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ