多くのデータセットでは、データが表(グリッド)に保存されます。たとえば、カンマ区切り値(CSV)として保存されるか、スプレッドシートやデータベース テーブルから直接保存されます。テーブルは、機械学習モデルの直感的な入力形式です。テーブルの各行を例として、各列を潜在的な特徴量またはラベルとして考えることができます。ただし、データセットは、ログファイルやプロトコル バッファなど、他の形式から派生することもできます。
形式に関係なく、ML モデルの性能はトレーニングに使用するデータの質に左右されます。このセクションでは、データの主な特性について説明します。
データの種類
データセットには、次のようなさまざまなデータ型を含めることができます(ただし、これらに限定されません)。
- 数値データ(別のユニットで説明)
- カテゴリデータ(別のユニットで説明)
- 人間の言語(単語や文など)からテキスト ドキュメント全体まで
- マルチメディア(画像、動画、音声ファイルなど)
- 他の ML システムの出力
- エンベディング ベクトル(後述のユニットで説明)
データ量
大まかな目安として、モデルはトレーニング可能なパラメータよりも少なくとも 1 桁(または 2 桁)多いサンプルでトレーニングする必要があります。ただし、優れたモデルは通常、それより大幅に多くのサンプルでトレーニングします。
特徴が少ない大規模なデータセットでトレーニングされたモデルは、多くの特徴を持つ小規模なデータセットでトレーニングされたモデルよりも一般的に優れています。Google は、これまで大規模なデータセットでシンプルなモデルをトレーニングすることに大きな成功を収めてきました。
機械学習プログラムによってデータセットが異なる場合、有用なモデルを構築するために必要なサンプルの量が大きく異なる場合があります。比較的単純な問題では、数十個のサンプルで十分な場合があります。他の問題では、100 兆個のサンプルでは不十分な場合があります。
同じスキーマの大量のデータですでにトレーニングされている既存のモデルを適応させる場合は、小規模なデータセットから良好な結果を得ることができます。
データの品質と信頼性
誰もが低品質よりも高品質を好みますが、品質は非常にあいまいな概念であり、さまざまな方法で定義できます。このコースでは、品質を次のように実用的に定義します。
高品質のデータセットは、モデルが目標を達成するのに役立ちます。品質の低いデータセットは、モデルが目標を達成するのを妨げます。
高品質のデータセットは通常、信頼性も高くなります。信頼性とは、データを信頼できる程度を指します。信頼できるデータセットでトレーニングされたモデルは、信頼できないデータでトレーニングされたモデルよりも有用な予測が得られる可能性が高くなります。
信頼性を測定する際には、次のことを決定する必要があります。
- ラベルエラーはどの程度発生しますか?たとえば、データが人間によってラベル付けされている場合、人間のレーティング担当者がミスを犯した頻度はどれくらいですか?
- 特徴量にノイズが含まれていますか?つまり、特徴の値にエラーが含まれているかどうかです。現実的な目標を設定しましょう。データセットからすべてのノイズを除去することはできません。ノイズの一部は正常です。たとえば、任意の場所の GPS 測定値は、週ごとに常に少し変動します。
- 問題に応じてデータが適切にフィルタされていますか?たとえば、データセットにボットからの検索クエリを含める必要がありますか?スパム検出システムを構築している場合は、おそらく「はい」です。ただし、人間向けの検索結果を改善しようとしている場合は、そうではありません。
データセット内の信頼できないデータの一般的な原因は次のとおりです。
- 省略された値。たとえば、家の経年年数を入力し忘れたなどです。
- 重複する例。たとえば、サーバーが同じログエントリを誤って 2 回アップロードした場合です。
- 不適切な特徴値。たとえば、誰かが数字を間違って入力した、または温度計が日光にさらされていたなどです。
- 不適切なラベル。たとえば、オークの木の画像を誤ってカエデの木としてラベル付けした場合です。
- データの不正なセクション。たとえば、ある機能は非常に信頼性が高く、ネットワークがクラッシュし続けた 1 日を除きます。
信頼できないデータには自動的にフラグを立てることをおすすめします。たとえば、外部形式データスキーマを定義または依存する単体テストでは、定義された範囲外の値を報告できます。
完全な例と不完全な例
理想的には、各サンプルが完全である必要があります。つまり、各サンプルに各特徴量の値が含まれている必要があります。
残念ながら、実際の例は不完全であることが多く、少なくとも 1 つの特徴値が欠落しています。
不完全なサンプルでモデルをトレーニングしないでください。代わりに、次のいずれかを行い、不完全な例を修正または削除します。
- 不完全な例を削除します。
- 欠損値をImputeします。つまり、欠損値について十分な根拠に基づく推測を提供することで、不完全なサンプルを完全なサンプルに変換します。
データセットに、有用なモデルをトレーニングするのに十分な完全な例が含まれている場合は、不完全な例を削除することを検討してください。同様に、1 つの特徴にのみ大量のデータが欠落していて、その特徴がモデルにあまり役立たないと思われる場合は、その特徴をモデル入力から削除し、削除によって品質がどの程度低下するかを確認することを検討してください。モデルがそれなしで同じように機能する場合は、問題ありません。逆に、有用なモデルをトレーニングするのに十分な完全な例がない場合は、欠損値の補完を検討してください。
無駄なサンプルや冗長なサンプルは削除してもかまいませんが、重要なサンプルを削除するのは避けてください。残念ながら、役に立たない例と役に立つ例を区別するのは難しい場合があります。削除するか代入するかを決められない場合は、2 つのデータセットを作成することを検討してください。1 つは不完全な例を削除して作成し、もう 1 つは代入して作成します。次に、どのデータセットでより優れたモデルをトレーニングできるかを判断します。
一般的なアルゴリズムの 1 つは、平均値または中央値を補完値として使用することです。したがって、数値特徴を Z スコアで表す場合、通常、代入値は 0 になります(0 は通常、平均 Z スコアであるため)。
演習: 理解度を確認する
以下は、Timestamp
で並べ替えたデータセットの 2 つの列です。
タイムスタンプ | 温度 |
---|---|
2023 年 6 月 8 日 09:00 | 12 |
2023 年 6 月 8 日 10:00 | 18 |
2023 年 6 月 8 日 11:00 | missing |
2023 年 6 月 8 日 12:00 | 24 |
2023 年 6 月 8 日 13:00 | 38 |
Temperature の欠落値に代入する妥当な値は次のうちどれですか。