機械学習による実用アプリケーション構築⑤ 第4章 初期データセットの取得①
第4章 初期データセットの取得
この章では
- データセットの品質を効率的に判断する方法
- データをベクトル化する方法
- ベクトル化したデータを用いたラベル付けと検査
をより効率的に行う方法について説明
4.1 データセットの反復処理
ML製品を素早く構築するためにはモデル構築と評価を迅速に行う必要がある。
データの収集、準備、ラベル付けはモデリングと同様の反復プロセス
ML研究ではデータは不変だが、製品で使うMLは製品を作るツールの一つ。 データセットを定期的に更新して補強することが作業の大部分を占めることがよくある。 データは新しいモデルを開発するための最高のインスピレーションの源。 物事がうまくいかないときにその答えを求める最初の場所になる。
4.1.1 データサイエンスの実践
データを扱うことはモデルで遊ぶ前に取り組むべき雑用 → ×
モデルは既存のデータから傾向やパターンを抽出するための手段。
なので、データにモデルが活用できるほどの十分な予測可能なパターン含まれているか、
そして、明確な偏りがないかを含んでいないかを確認することは
データサイエンティストの基本的な仕事になる。
4.2 初めてのデータセット探索
目標:真の目的に先立つ予備的な結果を抽出するための簡単なデータセットを取得すること
4.2.1 効率的に小さく始める
データが多いほど良いモデルを作ることができる場合がほとんどだが、可能な限り大きなデータセットから始めるという意味ではない。
プロジェクトを始める前に小さなデータセットをし追うすることで、データを簡単に調査して理解し、より適切なモデルを作る方法を掴むことができる。 戦略を決めてデータを大きくしていく。
テラバイト単位を超えるデータがクラスタで保存されているような環境では、 データを一様にサンプリングしてローカルマシンのメモリに収まる程度のサブセットを抽出することから始める必要がある。 例えば、家の前を走る車を特定するプロジェクトでは、数十枚程度の車の画像から始めるなど。
このあたりの収集と分析は必要かつ初期段階のスピードアップにつながる
ほとんどのエンジニアはモデルのインパクトを過大評価しがち データ作業を過少評価してる。むしろ、データの調査に時間をかけるべき。
4.2.2 洞察と製品
分析のためのデータ探査と製品開発のためのデータ探査は異なる。 分析のためのデータ探査:傾向から洞察を生み出す 製品開発のためのデータ探査:傾向を利用して機能を構築する
例えば、製品開発のデータ探査 不正ログインの予測をするには不正ログインの季節性に気づくことが最初のステップ 次に季節的な傾向から収集したデータに基づいて学習させる頻度を決める。
製品開発のデータ探査では、学習データのパターンと本番で入ってくるデータのパターンが似ていることを想定する必要がある。 そして、違いがある場合は定量的にそれを把握する必要がある。
しかし、傾向を見る前にまずデータの品質を評価する必要がある。
4.2.3 データ品質規範
データセットには独自の偏りや特異性がある。全てを網羅することはできないが、 データセットに最初にアクセスする際に注意を払うべき内容について紹介する。
4.2.3.1 データフォーマット
入力と出力が明確になるようにすでにフォーマットかされているのか、追加の前処理やラベル付けが必要か
4.2.3.2 データ品質
データの品質が低下する原因
- 値の欠落
- 正確さの不足(ラベル、自然言語処理ならスペルの誤りなど)
- データ破損
など、品質を正確に把握するとMLのパフォーマンスレベルや使用する特徴量、モデル選択が容易になる。 これらを事前に知っているとラベルが欠落している場合は、ラベルを手動でつける、弱いラベルを見つけるなどの 対応ができる。
4.2.3.3 データ量と分布
十分なデータ量があるかどうか、特徴量の値域が妥当かどうかを確認。 クラスタ間でデータを推定する場合など、各クラスタに含まれるデータに偏りがないかなど。
データ品質規範の例
品質 | フォーマット | データ量と分布 |
---|---|---|
関連するフィールドが空になることはないか | データの前処理ステップ数 | データ数はどれくらいか |
測定誤差の可能性はあるか | 本番環境でも前処理可能か | 1クラスあたりのデータ数、欠落 |