技術関連

[Pandas][PySpark]データの前処理方法についての解説

更新日:

概要

取得した生のデータを分析出来る形に変換する作業の説明なります。

はじめに

表データと画像データで前処理の方法が異なります。

表データは、機械的に前処理ができますが、
画像データは、アノテーションやラベル付けの作業で人力が必要になる場合があり、かなりの時間を要します

自然言語の処理は、業務上では経験したことがないので割愛しておりいます。

表データ

集計方針を決定し、ファイル、レコード、カラムの前処理をしていきます。
数TBのデータを処理する場合には、分散基盤を使用します。

  1. 生データの集計
    • 前処理の方針を決定する為に、ファイルの数、形式、サイズ、カラム数、レコード数、各カラムの欠損率、ユニーク数などの確認する。
  2. 前処理方針の決定
    • 集計した結果から、拡張子、使用するカラム、除外するデータ条件、欠損データの対応方針(削除、平均値、中央値、上下、どれで補完するのか)などの方針を決定する。
  3. ファイルの変換、削除
    • 方針に従い、変換ツールを使用して、ファイルの拡張子を変換し、不要なファイルの除外し、統一されたフォルダ構成でファイルを保存する。
  4. フォーマットの統一
    • 方針に従い、カラムの名前、データの表記ゆれを統一する。不要なカラムを削除する。
  5. 欠損データの削除、補完
    • 方針に従い、欠損データ、レコードの処理をする。

3,4,5はバッチで起動できるようにすることで、
前処理の工程を自動化することができます。

画像データ

画像の前処理は、主にラベル付けとサイズの変換になります。
表データと違って、特に難しいコーディングが必要にならなず単純作業になるため、
外部ベンダーに作業内容だけ示して、外注するケース
もあります。

  1. 生データの集計
    • 前処理の方針を決定する為に、ファイルの数、形式、サイズ、画像比率(width x height)、画像の種類(対象物、シチュエーション、ラベル)などを確認する。
  2. ラベル付け/アノテーション
    • モデルのタスクに合わせて、ラベル付け、アノテーションをする。あわせて画像の種類でディレクトリを分けておく。
  3. 画像一覧ファイル作成
    • データ概要の一覧ファイルを作成する。ファイル名、格納ディレクトリ、ラベル、画像の種類などの情報を格納する。
  4. サイズの変換
    • 画像を縦横比を合わせ、トリミングや判別モデルに入力できるサイズに変換する。

サイズの変換で気を付けて頂きたいのが、
サイズを小さくしすぎてしまったことで、モデルでの判別精度が悪化する場合がります。
目安としては、人が見てラベルを判断できるサイズになります。

また、トリミングをする際には、トリミング後の画像に違いが出ないように注意する必要があります。
画像の異常有無をトリミングの有無でモデルが判断してしまう場合があります。

実装

Pandas

こちらの過去の記事が参考になるかと思います。

[中古車査定/CarEvaluationDataset]データの前処理方法を紹介1


[高収入判別/Census Income]データの前処理方法を紹介2

PySpark

こちらの過去記事が参考になります。

[PySpark]ビッグデータを分析用にPySparkを使用してみる

最後に

自然言語の前処理については、語りませんでしたが、
一番めんどくさかったです。気が向いたら記事にします。

-技術関連

Copyright© AIなんて気合いダッ! , 2020 All Rights Reserved Powered by AFFINGER5.