データの前処理とは正しく行うための 4 つの重要なステップ

公開: 2021-08-06

ほとんどの場合、実世界のデータは不完全で、ノイズが多く、一貫性がありません。

指数関数的に増加するデータ生成と異種データ ソースの増加により、異常または不正確なデータを収集する可能性が非常に高くなります。

しかし、高品質のデータのみが正確なモデルを導き、最終的には正確な予測を導き出すことができます。 したがって、可能な限り最高の品質を得るためにデータを処理することが重要です。 データを処理するこのステップは、データの前処理と呼ばれ、データ サイエンスの重要なステップの 1 つです。   機械学習、人工知能。

データの前処理とは

データの前処理は、生データを便利でわかりやすい形式に変換するプロセスです。 通常、実世界のデータまたは生データには、一貫性のない書式設定や人的エラーが含まれており、不完全な場合もあります。 データの前処理は、このような問題を解決し、データセットをより完全かつ効率的にデータ分析を実行できるようにします。

これは、データ マイニングおよび機械学習プロジェクトの成功に影響を与える重要なプロセスです。 これにより、データセットからの知識の発見が高速になり、最終的に機械学習モデルのパフォーマンスに影響を与える可能性があります。

45%

データ サイエンティストの 1 時間は、データ準備タスクに費やされます。

出典:データナミ

つまり、データの前処理とは、データをコンピューターが処理しやすい形に変換することです。 これにより、データの分析や視覚化が容易になり、データをトレーニングする機械学習アルゴリズムの精度と速度が向上します。

なぜデータの前処理が必要なのですか?

ご存知のように、データベースはデータ ポイントの集まりです。 データ ポイントは、観測、データ サンプル、イベント、およびレコードとも呼ばれます。

各サンプルは、機能または属性とも呼ばれるさまざまな特性を使用して記述されています。 これらの機能を備えたモデルを効果的に構築するには、データの前処理が不可欠です。

データの収集中には、さまざまな問題が発生する可能性があります。 さまざまなデータ ソースからデータを集計する必要があり、整数や浮動小数点数などのデータ形式が一致しない場合があります。

ヒント:の自動化機能を使用します。   機械学習ソフトウェア  それらの退屈なタスクに別れを告げます。

2 つ以上の独立したデータセットからデータを集計している場合、性別フィールドには男性用の 2 つの異なる値 (男性と男性) が含まれる場合があります。 同様に、10 個の異なるデータセットからデータを集計している場合、そのうちの 8 個に存在するフィールドが残りの 2 個にない可能性があります。

データを前処理することで、解釈と使用を容易にします。 このプロセスにより、モデルの精度に悪影響を与えるデータの不一致や重複が排除されます。 また、データの前処理により、人的エラーやバグによる不正確な値や欠落した値がないことが保証されます。 つまり、データの前処理技術を採用すると、データベースがより完全で正確になります。

品質データの特徴

機械学習アルゴリズムにとって、品質ほど重要なものはありません  トレーニングデータ。 それらのパフォーマンスまたは精度は、データの関連性、代表性、および包括性に依存します。

データがどのように前処理されるかを見る前に、データ品質に寄与するいくつかの要因を見てみましょう。

  • 精度:名前が示すように、精度は情報が正しいことを意味します。 古い情報、タイプミス、および冗長性は、データセットの精度に影響を与える可能性があります。
  • 一貫性:データに矛盾があってはなりません。 データに一貫性がない場合、同じ質問に対して異なる回答が得られる可能性があります。
  • 完全性:データセットに不完全なフィールドがあったり、空のフィールドがなかったりしてはいけません。 この特性により、データ サイエンティストは、データが表す状況の全体像にアクセスできるため、正確な分析を実行できます。
  • 有効性:データ サンプルが正しい形式で表示され、指定された範囲内にあり、正しいタイプである場合、データセットは有効であると見なされます。 無効なデータセットは、整理して分析するのが困難です。
  • 適時性:データは、それが表すイベントが発生したらすぐに収集する必要があります。 時間が経つにつれて、現在の現実を表していないため、すべてのデータセットの精度と有用性が低下します。 したがって、データの話題性と関連性は、重要なデータ品質特性です。

データ前処理の 4 つの段階

機械学習モデルにとって、データは飼料です。

不完全なトレーニング セットは、偏見などの意図しない結果につながる可能性があり、特定のグループの人々にとって不当な利点または不利益をもたらす可能性があります。 不完全または一貫性のないデータは、データ マイニング プロジェクトの結果にも悪影響を及ぼす可能性があります。 このような問題を解決するために、データの前処理のプロセスが使用されます。

データ処理には、クリーニング、統合、削減、および変換の 4 つの段階があります。

1.データクリーニング

データ クリーニングまたはクレンジングは、欠損値を考慮し、外れ値を削除し、矛盾したデータ ポイントを修正し、ノイズの多いデータを平滑化することにより、データセットをクリーニングするプロセスです。 本質的に、データ クリーニングの背後にある動機は、機械学習モデルの完全で正確なサンプルを提供することです。

データ クリーニングで使用される手法は、データ サイエンティストの好みと解決しようとしている問題に固有のものです。 ここでは、データ クリーニング中に解決される問題と関連する手法について簡単に説明します。

欠損値

データ値が欠落しているという問題は非常に一般的です。 データ収集中、または特定のデータ検証ルールが原因で発生する可能性があります。 このような場合、追加のデータ サンプルを収集するか、追加のデータセットを探す必要があります。

欠損値の問題は、2 つ以上のデータセットを連結してより大きなデータセットを形成するときにも発生する可能性があります。 すべてのフィールドが両方のデータセットに存在するわけではない場合、マージする前にそのようなフィールドを削除することをお勧めします。

欠落しているデータを説明するいくつかの方法を次に示します。

  • 欠損値を手動で入力します。 これは面倒で時間のかかるアプローチになる可能性があり、大規模なデータセットにはお勧めできません。
  • 標準値を使用して、欠損データ値を置き換えます。 「unknown」や「N/A」などのグローバル定数を使用して、欠損値を置き換えることができます。 単純なアプローチですが、絶対確実というわけではありません。
  • 欠損値を最も可能性の高い値で埋めます。 可能性のある値を予測するには、次のようなアルゴリズムを使用できます  ロジスティック回帰  または決定木。
  • 中心傾向を使用して欠損値を置き換えます。 中心傾向とは、値がその平均値、最頻値、または中央値付近に集まる傾向です。

データベース内のいずれかの行または列の値の 50% が欠落している場合、上記の方法のいずれかを使用して値を埋めることができない場合を除いて、行または列全体を削除することをお勧めします。

ノイズのあるデータ

大量の意味のないデータはノイズと呼ばれます。 より正確には、測定された変数または誤った属性値を持つデータのランダム分散です。 ノイズには、データ ポイントの重複または半重複、特定の研究プロセスにとって価値のないデータ セグメント、または不要な情報フィールドが含まれます。

たとえば、ある人が運転できるかどうかを予測する必要がある場合、髪の色、身長、体重に関する情報は関係ありません。

外れ値はノイズとして扱うことができますが、有効なデータ ポイントと見なす人もいます。 画像内のカメを検出するアルゴリズムをトレーニングしているとします。 画像データセットには、カメとして誤ってラベル付けされたカメの画像が含まれている場合があります。 これはノイズと見なすことができます。

ただし、亀よりも亀に見える亀のイメージがあるかもしれません。 そのサンプルは外れ値と見なすことができ、必ずしもノイズではありません。 これは、カメを検出するためのすべての可能な方法をアルゴリズムに教えたいためであり、そのため、グループからの逸脱が不可欠です。

数値の場合、散布図または箱ひげ図を使用して外れ値を特定できます。

以下は、ノイズの問題を解決するために使用されるいくつかの方法です。

  • 回帰:回帰分析は、影響を与える変数を特定するのに役立ちます。 これにより、大量のデータを分析する代わりに、重要な機能のみを使用して作業できます。 データの平滑化には、線形回帰と多重線形回帰の両方を使用できます。
  • ビニング:ビニング方法は、並べ替えられたデータのコレクションに使用できます。 並べ替えられた値を、その周囲の値を見て平滑化します。 次に、並べ替えられた値は「ビン」に分割されます。これは、データを同じサイズの小さなセグメントに並べ替えることを意味します。 ビン平均による平滑化やビン中央値による平滑化など、ビニングにはさまざまな手法があります。
  • クラスタリング: k-means クラスタリングなどのクラスタリング アルゴリズムを使用して、データをグループ化し、プロセス内の外れ値を検出できます。

2. データ統合

データはさまざまなソースから収集されるため、データ統合はデータ準備の重要な部分です。 統合により、いくつかの一貫性のない冗長なデータ ポイントが発生し、最終的にモデルの精度が低下する可能性があります。

データを統合するためのいくつかのアプローチを次に示します。

  • データの統合:データは物理的にまとめられ、1 つの場所に格納されます。 すべてのデータを 1 か所にまとめることで、効率と生産性が向上します。 このステップでは通常、   データ ウェアハウス ソフトウェア。
  • データの仮想化:このアプローチでは、インターフェイスは、複数のソースからのデータの統合されたリアルタイム ビューを提供します。 つまり、データを単一の視点から見ることができます。
  • データ伝播:特定のアプリケーションを使用して、ある場所から別の場所にデータをコピーすることを伴います。 このプロセスは、同期または非同期にすることができ、通常はイベント駆動型です。

3. データ削減

名前が示すように、データ削減はデータの量を削減するために使用され、それによってデータ マイニングまたはデータ分析に関連するコストを削減します。

データセットの要約表現を提供します。 この手順によりボリュームは減少しますが、元のデータの整合性は維持されます。 このデータ前処理ステップは、関連するデータ量が膨大になるため、ビッグデータを扱う場合に特に重要です。

以下は、データ削減に使用されるいくつかの手法です。

次元削減

次元削減とも呼ばれる次元削減は、データセット内の特徴または入力変数の数を減らします。

データセットの特徴または入力変数の数は、その次元と呼ばれます。 特徴の数が多いほど、トレーニング データセットを視覚化して予測モデルを作成するのが面倒になります。

場合によっては、これらの属性のほとんどが相互に関連しているため、冗長です。 したがって、次元削減アルゴリズムを使用して確率変数の数を削減し、主変数のセットを取得できます。

次元削減には、特徴選択と特徴抽出の 2 つのセグメントがあります。

特徴選択では、元の特徴セットのサブセットを見つけようとします。 これにより、データ モデリングを使用して問題を視覚化するために使用できる小さなサブセットを取得できます。 一方、特徴抽出では、高次元空間のデータを低次元空間、つまり次元数の少ない空間に縮小します。

次元削減を実行するいくつかの方法を次に示します。

  • 主成分分析 (PCA):変数の大きなセットから新しい変数のセットを抽出するために使用される統計手法。 新たに抽出された変数は、主成分と呼ばれます。 この方法は、数値を持つフィーチャに対してのみ機能します。
  • 高相関フィルター: 相関の高い特徴を見つけて削除するために使用される手法。 そうしないと、相関性の高い変数のペアがデータセットの多重共線性を高める可能性があります。
  • 欠損値比率:この方法では、指定したしきい値を超える欠損値を持つ属性を削除します。
  • 低分散フィルター:データのわずかな変更が少ない情報に変換されるため、しきい値未満の分散を持つ正規化された属性を削除する必要があります。
  • ランダム フォレスト:この手法は、データセット内の各フィーチャの重要性を評価するために使用され、最も重要なフィーチャのみを保持できるようにします。

その他の次元削減手法には、因子分析、独立成分分析、線形判別分析 (LDA) などがあります。

機能サブセットの選択

機能サブセットの選択は、最も貢献する、または最も重要な機能または属性のサブセットを選択するプロセスです。

似たような学生の履歴データを見て、ある学生が合格するか不合格になるかを予測しようとしているとします。 点数、合計点数、学習時間、課外活動の 4 つの特徴を持つデータセットがあります。

この場合、出目数は生徒の成績に影響を与えず、削除することができます。 新しいサブセットには 3 つの機能しかなく、元のセットよりも効率的です。

このデータ削減アプローチは、より高速でコスト効率の高い機械学習モデルを作成するのに役立ちます。 属性サブセットの選択は、データ変換ステップでも実行できます。

数の削減

数値削減は、元のデータをより小さな形式のデータ表現に置き換えるプロセスです。 これを実行するには、パラメトリック法とノンパラメトリック法という 2 つの方法があります。

パラメトリック メソッドは、データ表現にモデルを使用します。 このようなモデルの作成には、対数線形および回帰法が使用されます。 対照的に、ノンパラメトリック メソッドは、クラスタリング、ヒストグラム、データ キューブ集計、およびデータ サンプリングを使用して、削減されたデータ表現を格納します。

4. データ変換

データ変換は、データをある形式から別の形式に変換するプロセスです。 本質的には、コンピューターが効率的に学習できる適切な形式にデータを変換する方法が含まれます。

たとえば、速度の単位は、時速マイル、秒速メートル、時速キロメートルなどです。 したがって、データセットには、車の速度の値がさまざまな単位で格納されている場合があります。 このデータをアルゴリズムに供給する前に、データを同じ単位に変換する必要があります。

以下は、データ変換の戦略の一部です。

スムージング

この統計的アプローチは、アルゴリズムを利用してデータからノイズを除去するために使用されます。 データセット内の最も価値のある特徴を強調し、パターンを予測するのに役立ちます。 また、パターンをより見やすくするために、データセットから外れ値を排除することも含まれます。

集計

集約とは、複数のソースからのデータをプールし、データ マイニングまたは分析のために統一された形式で提示することを指します。 さまざまなソースからのデータを集約してデータ ポイントの数を増やすことは不可欠です。そうしないと、ML モデルから学習するのに十分な例が得られないからです。

離散化

離散化では、連続データをより小さな間隔のセットに変換します。 たとえば、連続した年齢値を使用するよりも、「10 代」、「ヤングアダルト」、「中年」、「シニア」などのカテゴリに人を配置する方が効率的です。

一般化

一般化には、低レベルのデータ機能を高レベルのデータ機能に変換することが含まれます。 たとえば、自宅の住所などのカテゴリ属性は、都市や州などの上位レベルの定義に一般化できます。

正規化

正規化とは、すべてのデータ変数を特定の範囲に変換するプロセスを指します。 つまり、属性の値をスケーリングして、0 から 1 などの狭い範囲に収まるようにするために使用されます。10 進数スケーリング、最小最大正規化、Z スコア正規化は、データ正規化の方法です。

機能の構築

機能の構築には、指定された一連の機能から新しい機能を構築することが含まれます。 この方法により、元のデータセットが単純化され、データの分析、マイニング、または視覚化が容易になります。

概念階層の生成

概念階層生成では、指定されていませんが、フィーチャ間の階層を作成できます。 たとえば、通り、都市、州、および国に関するデータを含む住所データセットがある場合、この方法を使用してデータを階層形式で編成できます。

正確なデータ、正確な結果

機械学習アルゴリズムは子供のようなものです。 彼らは、何が有利で何が不利かをほとんど理解していません。 子供たちが大人から拾った汚い言葉を繰り返し始めるのと同じように、不正確または一貫性のないデータは ML モデルに簡単に影響を与えます。 重要なのは、データの前処理が不可欠なステップである、高品質で正確なデータを提供することです。

機械学習アルゴリズムは通常、働き者と呼ばれます。 しかし、怠け者と呼ばれることが多いアルゴリズムがあります。 これは k 最近傍アルゴリズムと呼ばれ、優れた分類アルゴリズムです。