数年前、Spotify がレコメンデーション エンジンに取り組んでいたとき、ML アルゴリズムのトレーニングに使用されるデータの品質に関連する課題に直面しました。
彼らがデータの準備段階に戻って、データのクリーニング、正規化、および変換に追加の労力を費やすことを決定していなければ、私たちのリスニング体験はそれほど楽しいものではなかったでしょう.
機械学習用のデータを徹底的に準備することで、ストリーミング プラットフォームは、ユーザーのリスニングの好みを正確に予測し、高度にパーソナライズされた音楽のレコメンデーションを提供する強力な ML エンジンをトレーニングすることができました。
Spotify は、企業が機械学習用のデータを準備する際に犯す重大な過ちを回避しました。つまり、十分な労力を費やしたり、段階をスキップしたりしませんでした。
多くの企業は、大量のデータを ML エンジンにフィードするだけで正確な予測を生成できると考えています。実際には、アルゴリズムの偏りやスケーラビリティの制限など、多くの問題が発生する可能性があります。
機械学習の成功は、データに大きく依存します。
そして悲しいことに、すべてのデータセットに欠陥があります。そのため、機械学習ではデータの準備が重要です。生データに内在する不正確さや偏りを排除するのに役立ち、結果として得られる ML モデルがより信頼性が高く正確な予測を生成します。
このブログ投稿では、機械学習用のデータを準備することの重要性を強調し、データの収集、クリーニング、および変換へのアプローチを共有します。したがって、ML の初心者で、イニシアチブを確実に成功させたい場合は、読み続けてください。
ML の導入を成功させるための最初のステップは、ビジネス上の問題を明確に定式化することです。構築している ML モデルがビジネス ニーズに確実に適合するようにするだけでなく、関連性のないデータを準備するための時間と費用を節約することもできます。
さらに、明確な問題ステートメントにより、ML モデルが説明可能になります(つまり、ユーザーは、ML モデルがどのように意思決定を行うかを理解できます)。これは、機械学習が人々の生活に大きな影響を与える医療や金融などの分野で特に重要です。
ビジネス上の問題が明確になったので、データ作業を開始します。
全体として、機械学習用のデータを準備するプロセスは、次の段階に分けることができます。
それぞれを詳しく見てみましょう。
機械学習のデータ準備は、データ収集から始まります。データ収集段階では、将来の ML モデルのトレーニングと調整のためにデータを収集します。その際、データの種類、量、品質に留意してください。これらの要因によって、最適なデータ準備戦略が決まります。
機械学習では、構造化、非構造化、半構造化の 3 種類のデータを使用します。
データの構造によって、機械学習用のデータを準備するための最適なアプローチが決まります。たとえば、構造化されたデータは、テーブルに簡単に整理し、重複排除、欠損値の補完、またはデータ形式の標準化によってクリーンアップできます。
対照的に、非構造化データから関連する特徴を抽出するには、自然言語処理やコンピューター ビジョンなどのより複雑な手法が必要です。
機械学習用のデータ準備の最適なアプローチは、トレーニング データの量にも影響されます。大規模なデータセットでは、サンプリングが必要になる場合があります。これには、計算上の制限により、モデルをトレーニングするためにデータのサブセットを選択することが含まれます。小規模なものでは、データ サイエンティストは、既存のデータ ポイントに基づいてより多くのデータを生成するために追加の手順を実行する必要があります (詳細は後述)。
収集されたデータの品質も重要です。不正確または偏ったデータを使用すると、ML 出力に影響を与える可能性があり、特に金融、医療、刑事司法などの分野で重大な結果をもたらす可能性があります。データのエラーとバイアスを修正できる手法があります。ただし、本質的に歪んだデータセットでは機能しない場合があります。何が「良い」データであるかがわかったら、そのデータを収集する方法とその場所を決定する必要があります。そのためのいくつかの戦略があります。
ただし、これらの戦略では十分なデータが得られない場合があります。次の手法を使用して、データ ポイントの不足を補うことができます。
機械学習用のデータを準備するための次のステップは、データのクリーニングです。データのクリーニングには、エラー、不一致、欠損値を見つけて修正することが含まれます。これを行うには、いくつかの方法があります。
欠損データの処理
欠損値は、機械学習における一般的な問題です。これは、代入 (欠損値を予測データまたは推定データで埋めることを考えてください)、補間 (周囲のデータ ポイントから欠損値を導き出す)、または削除 (データセットから欠損値のある行または列を単純に削除すること) によって処理できます。
外れ値の処理
外れ値は、残りのデータセットと大きく異なるデータ ポイントです。外れ値は、測定エラー、データ入力エラー、または単に異常または極端な観測値を表しているために発生する可能性があります。たとえば、従業員の給与のデータセットでは、外れ値は、他の従業員よりも大幅に多いまたは少ない収入の従業員である可能性があります。異常値は、削除、変換して影響を軽減する、ウィンザー処理 (極端な値を通常の分布範囲内にある最も近い値に置き換える)、または別のデータ クラスとして扱うことで処理できます。
重複の削除
機械学習用のデータを準備するプロセスのもう 1 つのステップは、重複を取り除くことです。重複は、ML 予測をゆがめるだけでなく、特に大規模なデータセットでは、ストレージ スペースを浪費し、処理時間を増加させます。重複を削除するために、データ サイエンティストはさまざまな重複識別手法 (完全一致、あいまい一致、ハッシュ、レコード リンケージなど) に頼っています。識別されると、それらはドロップまたはマージされます。ただし、不均衡なデータセットでは、正規分布を達成するために実際に重複を歓迎できます。
無関係なデータの処理
無関係なデータとは、問題の解決に役立たない、または適用できないデータを指します。無関係なデータを処理することで、ノイズを減らし、予測精度を向上させることができます。無関係なデータを特定するために、データ チームは主成分分析や相関分析などの手法を利用するか、単にドメインの知識に頼っています。識別されると、そのようなデータ ポイントはデータセットから削除されます。
誤ったデータの処理
機械学習のためのデータ準備には、不正確なデータや誤ったデータの処理も含まれている必要があります。このようなデータを処理する一般的な手法には、データ変換 (設定された基準を満たすようにデータを変更すること) や、正しくないデータ ポイントを完全に削除することが含まれます。
不均衡なデータの処理
不均衡なデータセットは、あるクラスのデータ ポイントの数が別のクラスのデータ ポイントの数よりも大幅に少ないデータセットです。これにより、多数派クラスを優先し、少数派クラスを無視する偏ったモデルになる可能性があります。この問題に対処するために、データ チームはリサンプリング (マイノリティ クラスをオーバーサンプリングするか、マジョリティ クラスをアンダーサンプリングしてデータの分布のバランスをとる)、合成データ生成 (マイノリティ クラスの追加データ ポイントを合成的に生成する)、コストなどの手法に頼ることがあります。 -敏感な学習 (トレーニング中にマイノリティ クラスにより高い重みを割り当てる)、アンサンブル学習 (異なるアルゴリズムを使用して異なるデータ サブセットでトレーニングされた複数のモデルを組み合わせる) など。
これらのアクティビティは、トレーニング データが正確で、完全で、一貫性があることを保証するのに役立ちます。大きな成果ではありますが、信頼できる ML モデルを作成するにはまだ十分ではありません。そのため、機械学習用のデータを準備する旅の次のステップでは、トレーニング データ セット内のデータ ポイントが特定のルールと標準に準拠していることを確認します。そして、データ管理プロセスのその段階は、データ変換と呼ばれます。
データ変換段階では、生データを機械学習アルゴリズムに適した形式に変換します。これにより、アルゴリズムのパフォーマンスと精度が向上します。
機械学習用のデータを準備する当社の専門家は、次の一般的なデータ変換手法を挙げています。
スケーリング
データセットでは、さまざまなフィーチャがさまざまな測定単位を使用する場合があります。たとえば、不動産データセットには、各物件の部屋数 (1 ~ 10 の範囲) と価格 ($50,000 ~ $1,000,000 の範囲) に関する情報が含まれる場合があります。スケーリングがなければ、両方の機能の重要性をバランスさせることは困難です。アルゴリズムは、より大きな値 (この場合は価格) を持つ機能を重要視しすぎて、一見小さな値を持つ機能に十分な重要性を与えない可能性があります。スケーリングは、指定された範囲 (通常は 0 ~ 1) に収まるようにすべてのデータ ポイントを変換することで、この問題を解決するのに役立ちます。これで、さまざまな変数を対等な立場で比較できます。
正規化
機械学習のデータ準備に使用されるもう 1 つの手法は、正規化です。スケーリングに似ています。ただし、スケーリングはデータセットの範囲を変更しますが、正規化はその分布を変更します。
エンコーディング
カテゴリ データには、色、車のモデル、動物種など、限定された数の値があります。機械学習アルゴリズムは通常、数値データで機能するため、カテゴリ データを入力として使用するには、エンコードする必要があります。したがって、エンコーディングは、カテゴリデータを数値形式に変換することを表します。ワンホット エンコーディング、序数エンコーディング、ラベル エンコーディングなど、いくつかのエンコーディング手法から選択できます。
離散化
離散化は、機械学習用のデータを準備するアプローチであり、時間、温度、重量などの連続変数を離散変数に変換できます。人の身長に関する情報を含むデータセットを考えてみましょう。各人の身長は、フィートまたはセンチメートル単位の連続変数として測定できます。ただし、特定の ML アルゴリズムでは、このデータを「短い」、「中程度」、「高い」などのカテゴリに離散化する必要がある場合があります。これはまさに離散化が行うことです。これは、トレーニング データセットを簡素化し、問題の複雑さを軽減するのに役立ちます。離散化への一般的なアプローチは、クラスタリング ベースの離散化と決定木ベースの離散化に及びます。
次元削減
次元削減は、データセット内の機能または変数の数を制限し、問題の解決に関連する情報のみを保持することを意味します。顧客の購入履歴に関する情報を含むデータセットを考えてみましょう。購入日、購入したアイテム、アイテムの価格、および購入が行われた場所が特徴です。このデータセットの次元を減らすため、最も重要な特徴 (購入したアイテムとその価格など) 以外はすべて省略します。次元削減は、主成分分析、線形判別分析、t 分布確率近傍埋め込みなど、さまざまな手法で行うことができます。
ログ変換
機械学習用のデータを準備するもう 1 つの方法である対数変換は、対数関数をデータセット内の変数の値に適用することを指します。これは、トレーニング データが非常に歪んでいるか、値の範囲が広い場合によく使用されます。対数関数を適用すると、データの分布をより対称にすることができます。
データ変換といえば、特徴エンジニアリングについても言及する必要があります。これはデータ変換の一形態ですが、機械学習用のデータを準備するプロセスのテクニックやステップ以上のものです。これは、データセット内のフィーチャの選択、変換、および作成を表します。特徴量エンジニアリングには、ML モデルの使用を含む、統計的、数学的、および計算技術の組み合わせが含まれ、データ内の最も関連性の高い情報をキャプチャする特徴を作成します。
これは通常、問題を解決するための最良のアプローチを考え出すために、さまざまな手法や機能の組み合わせをテストおよび評価する必要がある反復プロセスです。
機械学習用のデータを準備するプロセスの次のステップでは、収集したすべてのデータをサブセットに分割します。これは、データ分割と呼ばれるプロセスです。通常、データはトレーニング、検証、およびテストのデータセットに分割されます。
データを分割することで、機械学習モデルがこれまでに見たことのないデータに対してどの程度うまく機能するかを評価できます。分割しないと、新しいデータに対するモデルのパフォーマンスが低下する可能性があります。これは、モデルがパターンを学習して新しいデータに一般化するのではなく、データ ポイントを記憶しただけである可能性があるために発生する可能性があります。
データ分割にはいくつかの方法があり、最適な方法の選択は、解決する問題とデータセットのプロパティによって異なります。機械学習用のデータを準備する当社の専門家は、最も効果的な分割戦略を決定するには、データ チームによる実験が必要になることが多いと述べています。最も一般的なものは次のとおりです。
機械学習用のデータを適切に準備することは、正確で信頼性の高い機械学習ソリューションを開発するために不可欠です。 ITRex では、データ準備の課題と、機械学習プロセスを成功させるための高品質のデータセットを持つことの重要性を理解しています。
機械学習を通じてデータの可能性を最大限に引き出したい場合は、 ITRex チームにお問い合わせください。当社の専門家が、データの収集、クリーニング、および変換を支援します。
ここにも掲載されています。