記事の概要
2〜3年前に機械学習のプロジェクトに携わったことがあります。
経験があることにプラスして世の中がAI,AIと空前のAIブームなので、よく注意点とか聞かれます。
携わった経験から機械学習に関する知識を書きます。
対象読者
- これから機械学習のプロジェクトを委託する人
- これから機械学習のプロジェクトに携わる人
機械学習のプロジェクトはデータ整備が9割!
機械学習はデータが命なので、データの整備が9割だと思ってください。
データ整備の様々な同義語
データ整備は人によって以下のような様々な言い方をします。
一番しっくりくるものや相手に合わせて使うといいと思います。
- データ加工
- データ研磨
- データクリーニング
- データクレンジング
データの整備って何?
機械学習は過去のデータを元に将来の事象を予測する技術です。
なので、まずデータがないと機械学習では予測できません。
しかし、この機械学習の学習元になるデータは人間が入力したものの場合、表記揺れのあるデータもしくは欠損を含むことが多いです。
あと文字列であることも容易に想像ができます。
また、温度センサのようなものだと表記揺れはありませんが、センサの不備でデータが取れず欠損値ができたり、異常な値を記録してしまうことがあります。
表記揺れのあるデータ
表記揺れのあるデータとはなんでしょうか。
例えば、住所の書き方っていろんな書き方がありますよね!?
東京都庁の住所で考えてみます。
以下のように人によって複数の書き方のパターンがあります。
- 東京都新宿区西新宿2丁目8−1
-
東京都新宿区西新宿2-8-1
-
東京都新宿区西新宿2丁目8番地1号
人間が見ると全て同じ場所を指す住所ですが、コンピュータ(機械)はこれら全て違うものと判断します。
これはAIが学習するに当たって致命的です。
なので、以下のように同じ値に統一してあげるなどのデータ整備処理が必要になります。
- 東京都新宿区西新宿2丁目8−1
-
東京都新宿区西新宿2丁目8−1
-
東京都新宿区西新宿2丁目8−1
※文字列同士の類似度を測定できる編集距離(Edit Distance)と呼ばれる技術がありますが、ちょっと技術的に深く入りすぎるので割愛します。
欠損を含むデータ
欠損を含むデータは人間の入力漏れや入力されるシステムの設計の都合上起こります。
例えば、とある顧客管理システムで性別を入力しないといけないのにシステム設計上必須入力項目になっていない場合、性別の入力漏れに気付かずに登録されてしまい、性別に何も登録されていないデータができあがってしまいます。
将来顧客がどんな商品を買うか予測したい場合、性別などは重要になってくる情報になるため、このような重要な情報が抜け落ちていると機械学習の予測精度が落ちてしまいます。
このような状況が発生した場合、性別を手入力や他のデータから推測して自動で入力するなどのデータ整備が必要です。
文字列データ
人間は文字列にどんな意味があるか理解できますが、コンピュータ(機械)は理解できません。
コンピュータに馴染みのない人はピンとこないかもしれませんが、コンピュータは1,0の数値を使って動作しています。
なので、基本的に数値データが前提です。
かと言って文字列データだったら使えないのかというとそんなことはありません。
文字列を数値に置き換えてあげればいいです。
例えば性別が男と女という文字列が入っていたら、男:1、女:2というように数値で置き換えるといいです。
まとめ
機械学習のプロジェクトはデータ整備が9割です。
データ整備にもいろいろな種類があり、上記で書いたものは基本的なもので上記以外にも処理を行う必要があるものもたくさんあります。
実際にやってみると分かりますが、データ整備めちゃくちゃ大変です。
委託する側もされる側もこれがわかっていないととんでもなく苦労しますので、ご注意を。
コメント