機械学習のためのデータ準備: ステップバイステップガイド
公開: 2023-07-07数年前、Spotify がレコメンデーション エンジンの開発に取り組んでいたとき、機械学習 (ML) アルゴリズムのトレーニングに使用されるデータの品質に関する課題に直面していました。 もし彼らがデータの準備段階に戻り、データのクリーニング、正規化、変換に追加の労力を投資することを決定しなかったら、おそらく私たちのリスニング体験はこれほど楽しいものにはならなかったでしょう。
ML 用のデータを徹底的に準備することで、ストリーミング プラットフォームは、ユーザーのリスニングの好みを正確に予測し、高度にパーソナライズされた音楽の推奨を提供する強力な ML エンジンをトレーニングできるようになりました。 Spotify は、ML 用のデータを準備する際に企業が犯す重大な間違い、つまり十分な労力を投資しなかったり、その段階をまったく省略したりすることを回避しました。
多くの企業は、正確な予測を生成するには大量のデータを ML エンジンにフィードするだけで十分であると想定しています。 実際には、アルゴリズムの偏りやスケーラビリティの制限など、多くの問題が発生する可能性があります。
ML の成功はデータに大きく依存します。 そして悲しいことに、すべてのデータセットには欠陥があります。 このため、ML にとってデータの準備が重要です。 これは、生データに固有の不正確さとバイアスを排除するのに役立ち、結果として得られる ML モデルはより信頼性が高く正確な予測を生成します。
このブログ投稿では、ML 用にデータを準備することの重要性を強調し、データの収集、クリーニング、変換に対するアプローチを共有します。 したがって、ML を初めて使用する方で、自分の取り組みを確実に成功させたい場合は、読み続けてください。
機械学習用にデータを準備する方法
ML の導入を成功させるための最初のステップは、ビジネス上の問題を明確に定式化することです。 これにより、構築している ML モデルがビジネス ニーズに確実に適合するだけでなく、関連性のない可能性のあるデータの準備にかかる時間と費用も節約できます。
さらに、明確な問題ステートメントにより、ML モデルが説明可能になります (つまり、ユーザーはモデルがどのように意思決定を行うかを理解できます)。 ML が人々の生活に大きな影響を与える医療や金融などの分野では特に重要です。
ビジネス上の問題が解決されたので、データ作業を開始するときが来ました。
全体として、ML 用のデータを準備するプロセスは次の段階に分類できます。
- データ収集
- データクリーニング
- データ変換
- データ分割
それぞれを詳しく見てみましょう。
データ収集
ML のデータ準備はデータ収集から始まります。 データ収集段階では、将来の ML モデルのトレーニングと調整のためのデータを収集します。 その際、データの種類、量、品質に留意してください。これらの要素によって、最適なデータ準備戦略が決まります。
機械学習では、構造化データ、非構造化データ、半構造化データの 3 種類のデータを使用します。
- 構造化データは、特定の方法 (通常は表またはスプレッドシート形式) で編成されます。 構造化データの例は、データベースやトランザクション システムから収集される情報の範囲に及びます。
- 非構造化データには、画像、ビデオ、音声録音、および従来のデータ モデルに従っていないその他の情報が含まれます。
- 半構造化データは、表形式のデータ モデルの形式に従っていません。 それでも、解釈を容易にするタグやメタデータなどの構造要素が含まれているため、完全に整理されていないわけではありません。 例には、XML または JSON 形式のデータが含まれます。
データの構造によって、ML 用にデータを準備するための最適なアプローチが決まります。 たとえば、構造化データは簡単にテーブルに編成し、重複排除、欠損値の埋め込み、またはデータ形式の標準化によってクリーンアップできます。 対照的に、非構造化データから関連する特徴を抽出するには、自然言語処理やコンピューター ビジョンなど、より複雑な技術が必要です。
ML 用のデータ準備の最適なアプローチは、トレーニング データの量にも影響されます。 大規模なデータセットでは、計算上の制限によりモデルをトレーニングするためにデータのサブセットを選択するサンプリングが必要になる場合があります。 一方、小規模なものでは、データ サイエンティストが既存のデータ ポイントに基づいてさらに多くのデータを生成するための追加の手順を実行する必要がある場合があります (詳細は以下で説明します)。
収集されたデータの品質も重要です。 不正確または偏ったデータを使用すると、ML の出力に影響を与える可能性があり、特に金融、医療、刑事司法などの分野で重大な影響を与える可能性があります。 データのエラーとバイアスを修正できる技術があります。 ただし、本質的に偏ったデータセットでは機能しない可能性があります。 「優れた」データの条件がわかったら、それを収集する方法と場所を決定する必要があります。 そのためにはいくつかの戦略があります。
- 内部ソースからのデータの収集: エンタープライズ データ ウェアハウスに情報が保存されている場合は、それを ML アルゴリズムのトレーニングに使用できます。 このデータには、販売取引、顧客とのやり取り、ソーシャル メディア プラットフォームからのデータ、その他のソースからのデータが含まれる可能性があります。
- 外部ソースからのデータ収集: 政府データ ポータル、学術データ リポジトリ、Kaggle、UCI Machine Learning Repository、Google Dataset Search などのデータ共有コミュニティなどの、公開されているデータ ソースを利用できます。
- Web スクレイピング: この技術には、自動ツールを使用して Web サイトからデータを抽出することが含まれます。 このアプローチは、製品レビュー、ニュース記事、ソーシャル メディアなど、他の手段ではアクセスできないソースからデータを収集する場合に役立つ場合があります。
- アンケート: このアプローチは、特定の対象者から特定のデータ ポイントを収集するために使用できます。 これは、ユーザーの好みや行動に関する情報を収集するのに特に役立ちます。
ただし、これらの戦略では十分なデータが得られない場合があります。 そのような場合は、これらの手法を使用してデータ ポイントの不足を補うことができます。
- データ拡張: 回転、移動、拡大縮小など、さまざまな方法で既存のサンプルを変換することで、既存のサンプルからより多くのデータを生成できます。
- アクティブ ラーニング: これにより、人間の専門家によるラベル付けに最も有益なデータ サンプルを選択できます。
- 転移学習: これには、新しい ML モデルをトレーニングする開始点として、関連タスクを解決するために適用される事前トレーニングされた ML アルゴリズムを使用し、その後、新しいデータで新しいモデルを微調整することが含まれます。
- 協力的なデータ共有: これには、他の研究者や組織と協力して共通の目標に向けてデータを収集し、共有することが含まれます。
データクリーニング
ML 用にデータを準備するために実行する次のステップは、データをクリーンアップすることです。 データのクリーニングには、エラー、不一致、欠損値の検出と修正が含まれます。 データのクリーニングにはいくつかのアプローチがあります。
欠損データの処理
欠損値は ML でよくある問題です。 これは、代入 (欠損値を予測データまたは推定データで埋めることを考えてください)、内挿 (周囲のデータ ポイントから欠損値を導き出す)、または削除 (欠損値を含む行または列をデータセットから単に削除することを考えてください) によって処理できます。
外れ値の処理
外れ値は、データセットの残りの部分と大きく異なるデータ ポイントです。 外れ値は、測定エラーやデータ入力エラー、または単に異常または極端な観測値を表すために発生する可能性があります。 たとえば、従業員の給与のデータセットでは、他の従業員よりも収入が大幅に多いまたは少ない従業員が外れ値になる可能性があります。 外れ値は、削除したり、その影響を軽減するために変換したり、ウィンザー化 (極値を正規分布範囲内にある最も近い値に置き換えることを考えてください) したり、別のクラスのデータとして扱うことによって処理できます。
重複の削除
ML 用のデータを準備するプロセスのもう 1 つのステップは、重複を削除することです。 重複は ML 予測を歪めるだけでなく、特に大規模なデータセットの場合、ストレージ領域を無駄にし、処理時間を増加させます。 重複を削除するために、データ サイエンティストはさまざまな重複識別手法 (完全一致、あいまい一致、ハッシュ、レコード リンケージなど) を利用します。 識別されたら、削除またはマージできます。 ただし、不均衡なデータセットでは、正規分布を達成するために重複が実際に歓迎される可能性があります。
無関係なデータの処理
無関係なデータとは、問題の解決に役に立たない、または適用できないデータを指します。 無関係なデータを処理すると、ノイズが軽減され、予測精度が向上します。 無関係なデータを特定するために、データ チームは主成分分析や相関分析などの手法に頼ることも、単に専門知識に頼ることもできます。 特定されると、そのようなデータ ポイントは関連するデータセットから削除されます。
間違ったデータの処理
機械学習のためのデータの準備には、不正確なデータや誤りのあるデータの処理も含まれる必要があります。 このようなデータを扱う一般的な手法には、データ変換 (設定された基準を満たすようにデータを変更する) や、間違ったデータ ポイントを完全に削除することが含まれます。
不均衡なデータの処理

不均衡なデータセットとは、あるクラスのデータ ポイントの数が別のクラスのデータ ポイントの数よりも大幅に少ないデータセットです。 その結果、多数派のクラスを優先し、少数派のクラスを無視する偏ったモデルが作成される可能性があります。 この問題に対処するために、データ チームは、リサンプリング (データの分布のバランスをとるために少数派クラスをオーバーサンプリングするか、多数派クラスをアンダーサンプリングする)、合成データ生成 (少数派クラスの追加のデータ ポイントを合成的に生成する)、コストなどの手法に頼ることがあります。 -敏感な学習 (トレーニング中に少数派のクラスに高い重みを割り当てる)、およびアンサンブル学習 (異なるアルゴリズムを使用して異なるデータ サブセットでトレーニングされた複数のモデルを組み合わせる)。
これらのアクティビティは、トレーニング データが正確で、完全で、一貫性があることを保証するのに役立ちます。 大きな成果ではありますが、信頼できる ML モデルを作成するにはまだ十分ではありません。 したがって、ML 用のデータを準備する次のステップには、トレーニング データ セット内のデータ ポイントが特定のルールと標準に準拠していることを確認することが含まれます。 データ管理プロセスのその段階は、データ変換と呼ばれます。
データ変換
データ変換段階では、生データを ML アルゴリズムに適した形式に変換します。 これにより、より高いアルゴリズムのパフォーマンスと精度が保証されます。
ML 用のデータを準備する当社の専門家は、一般的なデータ変換手法を次のように挙げています。
スケーリング
データセットでは、異なるフィーチャに異なる測定単位が使用される場合があります。 たとえば、不動産データセットには、各物件の部屋数 (1 ~ 10 の範囲) と価格 (50,000 ドルから 1,000,000 ドルの範囲) に関する情報が含まれる場合があります。 スケーリングがなければ、両方の機能の重要性のバランスを取ることは困難です。 アルゴリズムは、より大きな値の特徴 (この場合は価格) を重視しすぎて、一見小さな値の特徴を十分に重視していない可能性があります。 スケーリングは、指定された範囲 (通常は 0 から 1 の間) に収まるようにすべてのデータ ポイントを変換することで、この問題を解決します。これで、異なる変数を同等に比較できるようになります。
正規化
ML のデータ準備で使用されるもう 1 つの手法は正規化です。 スケーリングと似ています。 ただし、スケーリングによってデータセットの範囲が変更されるのに対し、正規化によってデータセットの分布が変更されます。
エンコーディング
カテゴリ データには、色、車のモデル、動物種など、限られた数の値があります。 ML アルゴリズムは通常、数値データを操作するため、入力として使用するにはカテゴリ データをエンコードする必要があります。 したがって、エンコードとは、カテゴリデータを数値形式に変換することを意味します。 ワンホット エンコーディング、順序エンコーディング、ラベル エンコーディングなど、いくつかのエンコーディング手法から選択できます。
離散化
離散化は、時間、温度、重量などの連続変数を離散変数に変換できる、ML 用のデータを準備するアプローチです。 人の身長に関する情報が含まれるデータセットを考えてみましょう。 各人の身長は、フィートまたはセンチメートル単位の連続変数として測定できます。 ただし、特定の ML アルゴリズムでは、このデータを「短い」、「中程度」、「高い」などのカテゴリに離散化する必要がある場合があります。 これはまさに離散化が行うことです。 これは、トレーニング データセットを簡素化し、問題の複雑さを軽減するのに役立ちます。 離散化への一般的なアプローチは、クラスタリング ベースの離散化とデシジョン ツリー ベースの離散化に及びます。
次元削減
次元削減とは、データセット内の特徴または変数の数を制限し、問題の解決に関連する情報のみを保持することを意味します。 たとえば、顧客の購入履歴に関する情報を含むデータセットを考えてみましょう。 これには、購入日、購入したアイテム、アイテムの価格、購入が行われた場所が含まれます。 このデータセットの次元を減らすことで、最も重要な特徴 (たとえば、購入した商品とその価格) を除いてすべてを省略します。 次元削減は、主成分分析、線形判別分析、t 分布確率的近傍埋め込みなどのさまざまな手法を使用して実行できます。
ログ変換
ML 用にデータを準備するもう 1 つの方法である対数変換は、データセット内の変数の値に対数関数を適用することを指します。 これは、トレーニング データに大きな偏りがある場合、または値の範囲が広い場合によく使用されます。 対数関数を適用すると、データの分布をより対称的にすることができます。
データ変換といえば、特徴量エンジニアリングについても言及する必要があります。 特徴量エンジニアリングはデータ変換の一種ではありますが、ML 用にデータを準備するプロセスにおける単なる技術やステップ以上のものです。 これは、データセット内のフィーチャの選択、変換、および作成を表します。 特徴エンジニアリングでは、ML モデルの使用を含む、統計的、数学的、計算的手法を組み合わせて、データ内で最も関連性の高い情報を取得する特徴を作成します。
これは通常、問題を解決するための最適なアプローチを見つけるために、さまざまなテクニックや機能の組み合わせをテストして評価する必要がある反復的なプロセスです。
データの分割
ML 用のデータを準備するプロセスの次のステップには、収集されたすべてのデータをサブセットに分割することが含まれます。これはデータ分割として知られるプロセスです。 通常、データはトレーニング、検証、およびテストのデータセットに分類されます。
- トレーニング データセットは、入力変数とターゲット変数の間のパターンと関係を認識するように ML モデルを実際に教えるために使用されます。 通常、このデータセットは最大です。
- 検証データセットは、トレーニング中にモデルのパフォーマンスを評価するために使用されるデータのサブセットです。 ハイパーパラメーター (学習率、正則化の強度、隠れ層の数など、トレーニング前に手動で設定されるトレーニング プロセスのパラメーターを考えてください) を調整することでモデルを微調整するのに役立ちます。 検証データセットは、トレーニング データへの過剰適合の防止にも役立ちます。
- テスト データセットは、トレーニングされたモデルのパフォーマンスを評価するために使用されるデータのサブセットです。 その目標は、新しいまだ見たことのないデータに基づいてモデルの精度を評価することです。 テスト データセットは、モデルがトレーニング データセットと検証データセットでトレーニングおよび微調整された後に 1 回だけ使用されます。
データを分割することで、これまでに見たことのないデータに対する ML モデルのパフォーマンスを評価できます。 分割がない場合、新しいデータに対するモデルのパフォーマンスが低下する可能性があります。 これは、モデルがパターンを学習して新しいデータに一般化するのではなく、データ ポイントを記憶しただけである可能性があるために発生する可能性があります。
データ分割にはいくつかのアプローチがあり、最適なアプローチの選択は、解決する問題とデータセットのプロパティによって異なります。 ML 用のデータを準備する当社の専門家は、最も効果的な分割戦略を決定するには、データ チームによる実験が必要になることが多いと述べています。 以下は最も一般的な戦略です。
- ランダム サンプリング: この戦略では、データがランダムに分割されます。 このアプローチは、モデル化される母集団を代表する大規模なデータセットに適用されることがよくあります。 あるいは、データセット内に既知の関係が存在しない場合に使用され、より専門的なアプローチが必要になる可能性があります。
- 層別サンプリング: この戦略では、クラス ラベルまたはその他の特性に基づいてデータがサブセットに分割され、その後、これらのサブセットがランダムにサンプリングされます。 この戦略は、あるクラスの値の数が他のクラスの値の数を大幅に上回る、不均衡なデータセットに適用されます。 その場合、層別サンプリングは、トレーニング データセットとテスト データセットの各クラスの値の分布が同様であることを確認するのに役立ちます。
- 時間ベースのサンプリング: この戦略は、特定の時点までに収集されたデータがトレーニング データセットを作成し、設定ポイント以降に収集されたデータがテスト データセットを形成する場合に使用されます。 このアプローチは、モデルが将来のデータを正確に予測できるようにするため、金融データセットや医療データセットなど、データが長期間にわたって収集される場合に使用されます。
- 相互検証: この戦略では、データが複数のサブセット、つまりフォールドに分割されます。 一部のフォールドはモデルのトレーニングに使用され、残りはパフォーマンス評価に使用されます。 このプロセスは複数回繰り返され、各フォールドが少なくとも 1 回のテスト データとして機能します。 いくつかの相互検証手法があります。たとえば、k 分割相互検証やリーブ ワンアウト相互検証などです。 相互検証では、通常、単一のテスト データセットでの評価よりも正確なモデルのパフォーマンスの推定値が得られます。
最後のメモについて
正確で信頼性の高い機械学習ソリューションを開発するには、ML 用のデータを適切に準備することが不可欠です。 ITRex では、データ準備の課題と、ML プロセスを成功させるために高品質のデータセットを用意することの重要性を理解しています。
ML を通じてデータの可能性を最大化したい場合は、ITRex チームにお問い合わせください。 当社の専門家がデータの収集、クリーニング、変換を支援します。
この記事はもともと itrex Web サイトに掲載されたものです。
