精度に直結!データクレンジングの方法

こんにちは!
IT企業に勤めて、約2年間でデータサイエンティストになったごぼちゃん(@XB37q)です! 

このコラムでは、データクレンジングに対する記事を紹介します。
データクレンジングの意義やメリット、データクレンジングの方法などを紹介しています。

データクレンジングとは

AIの作り方の流れ ~データの前処理~
AIの作り方の流れ ~データの前処理~

データクレンジングとは、AIモデルを構築する前に、データを加工する作業のことを指します。データの前処理ともいわれる作業です。AIの作り方の流れについては、他のコラム「流れを5分で理解する!AIの作り方」をご覧ください。

このデータクレンジングを行うことで、AIモデルの精度が向上することが多いにあります。

また、よくモデルの構築などに時間がかかると思われる人が多いですが、AIを作るときに1番時間がかかる作業はこのデータクレンジングに当たることが多いです。具体的な作業時間は、データやプロジェクトによるため一概には言えませんが、長いときには1週間ほど(1日8時間で72時間の計算)作業している場合もあります。

データクレンジングの方法
データクレンジングの方法

それでは次の章からは、実際にどのようなデータクレンジングが行われているのかを簡単にご紹介します。

変数を増やす

変数を増やすイメージ
変数を増やすイメージ

ある変数において、過去の平均や最大値・最小値を表す変数を増やすことがあります。

時系列でデータが存在する場合、平均を表す変数を増やすことで、データの上昇傾向や下降傾向を表すトレンドをその変数で表現できる可能性があります。

変数を減らす

変数を減らすイメージ
変数を減らすイメージ

データに正常な値が格納されている割合などを考慮して、変数を減らすことがあります。

正常ではない値が格納されている変数をAIモデル構築に使用することで、結果に関係がない変数が結果に影響してしまう可能性があります。

変数を加工する

データの値をそろえるために、平均をそろえる標準化や、最小値が0 ・ 最大値が1になるように変数を加工することがあります。

AIモデルの中で数学的な足し算や掛け算を行う際に、値のスケールが違うデータが入っていると、精度が落ちる可能性があります。

標準化

標準化の式
標準化の式

データを平均0、分散1に変換する

正規化

正規化の式
正規化の式

最小値0、最大値1に変換する

正規化と標準化の使い分け

標準化と正規化の選定方法
標準化と正規化の選定方法

基本的な使い分けとして、一般的なデータには標準化を使い、画像認識の場合は正規化を使うことが一般的です。

正規化の場合、データの中の最小値と最大値を用いてデータを変換しているため、最小値と最大値にとても大きな値が存在する場合は、他の値と乖離が大きくなってしまいます。

例えば、1000件のデータのうち、999件が0~100の間に存在しており、最大値として1000の値が存在している場合を考えてみてください。

999件の0~100のデータは (X – 0) / 1000となり、およそ1/1000の値になりますが、最大値のみ突出して大きい1の値になります。そのため、0~100のデータに関しては違いがうまく表すことができなくなるため、AIモデルの精度低下の懸念があります。この現象を防ぐために一般的なデータの場合は標準化を使うことが好ましいとされています。

また、画像認識でデータクレンジングを行う場合は、ピクセルのRGB値(0~255)がデータクレンジングの対象となります。RGB値は値の範囲が一定であり、1000などの異常値となることはありません。このようにデータのとる値の範囲(最小値と最大値)が決まっている場合は正規化を使うことが好ましいとされています。これは、おそらく計算が正規化のほうが簡単なためであり、分散をそろえることは意味がないためだと思われます。

まとめ

このコラムでは、データクレンジング作業に当たる3つの方法を紹介しました。

  • 変数を増やす
  • 変数を減らす
  • 変数を加工する

AIモデルを構築した後に、精度が思っているよりも悪い場合はこのデータクレンジングを改めて実施することが、精度向上に向けた施策となりえると思います!