機械学習を強化するためのデータを準備する

データの前処理とクリーニングは、データセットをモデルのトレーニングに使用する前に実行する必要がある重要なタスクです。 生データはノイズが多く、信頼性が低く、値が欠落している可能性があります。 このようなデータを使用してモデリングを行うと、誤解を招く結果が生成されることがあります。 これらのタスクはTeam Data Science Process (TDSP) の一部であり、通常は、必要な前処理の検出と計画に使用されるデータセットの初期探索に続きます。 詳細については、 「Team Data Science Processとは」 を参照してください。

データ探索タスクのような前処理タスクとクリーニングタスクは、SQL、Hive、Azure Machine Learning Studio (クラシック) などのさまざまな環境で実行できます。 RやPythonなどのさまざまなツールや言語を使用することもできます。 データの格納場所とその形式がこれらの決定にどのように影響しますか。 TDSPは本質的に反復的であるため、これらのタスクはプロセスのワークフローのさまざまな手順で実行できます。

この記事では、Azure Machine Learning Studio (クラシック) にデータを取り込む前または後に実行できるさまざまなデータ処理の概念とタスクについて説明します。

Azure Machine Learning Studio (クラシック) 内で実行されるデータ探索と前処理の例については、ビデオ 「データの前処理」 を参照してください。

データを前処理してクリーンアップする理由?

実際のデータはさまざまなソースやプロセスから収集され、データセットの品質を損なう不規則なデータや破損したデータが含まれている可能性があります。 よく発生するデータ品質の問題には、次のようなものがあります。

  • 不完全なデータ: 属性がないか、欠落した値が含まれています
  • ノイズのあるデータ: 誤ったレコードまたは外れ値が含まれています
  • 一貫性のないデータ: 競合するレコードまたは不一致が含まれています

質の良いデータは、高品質の予測モデルの前提です。 ガベージイン、ガベージアウトを回避し、データ品質を向上させ、モデルのパフォーマンスを向上させるには、データの問題を早期に発見するためにデータ正常性画面を実施することが不可欠です。 対応するデータ処理とクリーニングの手順を決定する必要があります。

よく実行されるデータの正常性スクリーニングには何があるか?

次を確認することで、データの全般的な品質を確認できます。

  • レコードの数。
  • 属性 (または特徴) の数。
  • nominal、ordinal、continuousなどの属性データ型
  • 欠落値の数。
  • 整形式データの場合。
    • データがTSV形式またはCSV形式の場合、列区切り記号と行区切り記号で列と行が正しく区切られていることを確認します。
    • データがHTML形式またはXML形式の場合、それぞれの標準に基づいてデータが整形式かどうかを確認します。
    • また、半構造化データまたは非構造化データから構造化情報を抽出するために解析が必要になる場合もあります。
  • 一貫性のないデータ レコード。 値の範囲が許容されていることを確認します。 たとえば、データに学生の成績平均点 (GPA) が含まれている場合は、GPAが指定された範囲 (0~4など) にあるかどうかを確認します。

データに問題が見つかった場合は、欠損値のクリーニング、データの正規化、分離、データの配置に影響する可能性のある埋め込み文字を削除または置換するテキスト処理、共通フィールドでのデータ型の混在などの処理手順を実行します。

Azure Machine Learning は、形式の整った表形式のデータを取り込みます。 データが既に表形式である場合は、Azure Machine Learning Studio (クラシック) を使用してデータの前処理を直接実行できます。 データが表形式でない場合 (XML形式の場合など) 、データを解析して表形式に変換する必要がある場合があります。

データの前処理の主なタスクにはどのようなものがありますか。

  • データのクリーニング: 欠落値を入力し、ノイズ データや外れ値を検出して削除します。
  • データの変換:データを正規化して、次元やノイズを少なくします。
  • データの削減: データのレコードまたは属性をサンプリングして、データを処理しやすくします。
  • データの離散化: 連続値の属性をカテゴリ別の属性に変換して、機械学習の特定の方式で使いやすくします。
  • テキストのクリーニング: データのずれの原因となる埋め込み文字を削除します。 たとえば、タブ区切りのデータファイルに埋め込まれたタブや、レコードを分割する新しい行が埋め込まれている可能性があります。

次のセクションでは、これらのデータ処理手順の一部について詳しく説明します。

欠落値をどのように処理するか?

欠損値に対処するには、まず欠損値の理由を特定します。 欠落値を処理するための一般的な方法には、次のようなものがあります。

  • 削除: 欠損値のあるレコードを削除します。
  • ダミー置換: 欠損値をダミー値に置き換えます (カテゴリ値の場合は不明、数値の場合は0など) 。
  • 平均値への置き換え: 欠落しているデータが数値の場合は、欠落値を平均値に置き換えます。
  • 頻繁置換: 欠損データがカテゴリの場合は、欠損値を最も頻度の高い項目に置き換えます。
  • 回帰値への置き換え: 回帰メソッドを使用して、欠落値を回帰値に置き換えます。

データをどのように正規化するか?

データの正規化では、指定した範囲に数値をスケーリングしなおします。 よく使用されるデータの正規化方法は、次のとおりです。

  • 最小値と最大値の正規化: 最小値が0にスケールされ、最大値が1にスケールされる0~1などの範囲にデータを線形変換します。
  • Zスコアの正規化: 平均と標準偏差に基づいてデータをスケールします。 データと平均の差を標準偏差で除算します。
  • 小数点スケーリング: 属性値の小数点を移動してデータをスケーリングします。

データをどのように離散化するか?

データを離散化するには、連続値を名義属性または区間に変換します。 次の方法を使用できます。

  • 等幅ビニング: 属性のすべての可能な値の範囲を同じサイズのN個のグループに分割し、ビン番号のビンに入る値を割り当てます。
  • 等高ビニング: 属性のすべての可能な値の範囲を同じ数のインスタンスを含むN個のグループに分割します。 次に、ビン番号のビンに入る値を割り当てます。

データをどのように縮小するか?

データを処理しやすくするためにデータのサイズを縮小するには、さまざまな方法があります。 データサイズとドメインに応じて、次の方法を適用できます。

  • レコードサンプリング: データレコードをサンプリングし、データから代表的なサブセットのみを選択します。
  • 属性サンプリング: データから最も重要な属性のサブセットのみを選択します。
  • 集計: データをグループに分割し、各グループの数値を保存します。 たとえば、レストラン チェーンの過去 20 年間の毎日の売上の数値を毎月の売上に集計することにより、データのサイズを小さくします。

テキスト データをどのようにクリーニングするか?

表形式データのテキストフィールドには、列の配置やレコードの境界に影響する文字が含まれている場合があります。 たとえば、タブ区切りファイルの項目に埋め込みタブが含まれていると、列の不整合が発生します。また、改行文字が含まれているとレコードの行が中断されます。 テキストの書き込みまたは読み取り中に、情報の損失、読み取り不可能な文字 (nullなど) の誤った導入、またはテキスト解析への悪影響を防ぐために、テキストエンコードを適切に処理します。 データを慎重に解析および編集する必要がある場合があります。 テキストフィールドをクリーンアップして適切な配置を確保し、非構造化データまたは半構造化データから構造化データを抽出することができます。

データ探索は、データの初期ビューを提供します。 この手順では、多くのデータの問題を明らかにし、それらの問題に対処するために対応する方法を適用できます。 問題の原因や問題がどのように発生したかなどの質問をすることが重要です。 このプロセスは、問題を解決するために必要なデータ処理手順を決定するのにも役立ちます。 データ処理作業に優先順位を付けるために、最終的なユースケースとペルソナを特定できます。

リファレンス

Data Mining: Concepts and Techniques、第 3 版、Morgan Kaufmann 発行、2011 年、Jiawei Han、Micheline Kamber、Jian Pei 共著

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Mark Tabladillo | シニア クラウド ソリューション アーキテクト

公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。

次のステップ