TOP UX用語 テクノロジー・技術 前処理(データの前処理)

前処理(データの前処理) Data Preprocessing

AIの学習精度を決定づける最重要工程で、バラバラな素材(データ)を整理・加工して、機械が正しく理解できる「高品質の食材」に仕立て上げる作業のこと

前処理(データの前処理)とは、コンピュータが学習しやすいようにデータを整える作業である。

人間が本を読むときに、汚れを拭き取ったり、ページを整えたりするように、機械学習でもデータをきれいに整理してから使う必要がある。
例えば、顧客データベースに「年齢:35歳」「年齢:三十五」「年齢:不明」といったバラバラな形式が混在していると、AI(人工知能)に学習させても、AIは混乱し、正しい予測や判断ができない。これを「ガベージ・イン・ガベージ・アウト(ゴミを入れればゴミが出てくる)」と呼ぶ。

前処理では、これらを統一した形式に揃え、欠けている情報を補完し、機械が読み取れる数値に変換する。この作業により、機械学習モデルの精度が大きく向上する。

かつて、前処理はAI開発全体の労力の8割を占めると言われるほど、人間が手作業で行う「泥臭い重労働」であった。しかし近年、この状況は劇的に変わりつつある。 「AutoML(自動化された機械学習)」やクラウドツールの進化により、データの穴埋めや整形といった定型作業の多くが自動化され、短時間で完了できるようになったのである。

現代における前処理は、単なる労働集約的な作業から、ツールを使いこなして効率よくデータを磨き上げる「スマートな工程」へと進化している。

前処理の仕組み

前処理は、人間が見て「なんとなく分かる」データを、計算機が「数学的に扱える」状態に変換する一連の流れである。大きく分けて「クリーニング(掃除)」「統合(まとめ)」「変換(整形)」のステップで進められる。

以下の図は、具体的な顧客データを例に、前処理によってデータがどう変わるかを表したものである。

前処理のイメージ

前処理のイメージ

1.カテゴリカルデータの数値化(言葉の翻訳)

AIは「男性」「女性」という言葉の意味を理解できない。処理できるのは数字だけである。 そのため、「男性」を「1」、「女性」を「0」のように言葉を数字コードに置き換える。また、「答えたくない」という回答も削除するのではなく、「-1」などの特別な数字を割り当てることで、「答えたくない派」という一つのグループとして分析できるようにする(図ID:03)。

2.欠損値の処理(穴埋め)

アンケートで「年齢」が空欄になっているデータがあるとする(図ID:02)。これをそのまま放置せず、全体の平均値(例えば35歳)で埋めたり、あるいはそのデータ自体を使わないと判断して削除したりする。

3.外れ値の除去(ノイズ除去)

入力ミスで年齢が「200歳」となっているようなデータ(図ID:04)は、AIの学習を歪めてしまう。こうしたあり得ない数値や極端な例外を見つけて、行ごと取り除く。

4.スケーリング(縮尺合わせ)

図のID:01にある「500万円」と「30歳」のように、数字の大きさが大きく異なるデータをそのまま一緒に扱うと、AIは数値の大きい方(この場合は年収)に強く影響を受けてしまう。
そこで、AIがすべてのデータを公平に判断するために、縮尺を揃えるために、スケーリングを行う。方法として「正規化」と「標準化」の2つが使われる。なお、図では「正規化」を記載している。
正規化は、データの中で最も小さい値を0、最も大きい値を1に変換し、その間の値を割合で表す方法である。これにより、すべての値が0から1の間に収まる
標準化は、データの平均を0にし、標準偏差(データのばらつきを数値化したもの)を1にするように変換する方法である。こうすることで、データが平均からどれだけ離れているかを基準に扱える。

特徴

前処理には、AI開発の品質を支える3つの大きな特徴がある。

  • 学習精度の向上
    ノイズや矛盾を取り除くことで、AIはデータのパターンを正しく認識できるようになる。不純物のないガソリンを入れると車の調子が良くなるのと同じ理屈である。
  • バイアスの軽減
    データに含まれる偏り(例えば、特定の性別や地域にデータが偏っているなど)を事前に見つけ、調整することで、公平なAIを作ることができる。
  • 自動化による効率化
    以前は手作業で行っていた多くの工程が、現在ではツールによって自動化されている。これにより、人間は「データの修正作業」から解放され、「どのようなデータを集めるべきか」という戦略的な思考に時間を使えるようになっている。

提唱・開発の歴史

前処理は、特定の個人の発明というよりは、統計学と計算機科学の発展の中で確立された「標準的なプロセス」である。しかし、これをデータマイニングの必須工程として明確に定義づけた重要な転換点がある。

1996年、データサイエンティストのUsama Fayyadウサマ・ファイヤド氏 らは、膨大なデータから有用な知識を取り出すプロセスを「KDDプロセス(Knowledge Discovery in Databases)」として体系化した。

Usama Fayyad氏
https://fayyad.com/より引用

彼らは論文の中で、データマイニング(知識発見)に至るまでの手順を定義し、その初期段階として「前処理(Preprocessing)」が不可欠であることを世界に示した。これ以降、前処理は単なる雑用ではなく、科学的なアプローチとして認識されるようになったのである。

デザイン上での利用方法

前処理の自動化が進んだ今こそ、UXデザイナーやプロダクトマネージャーの役割が重要になっている。ツールがデータを綺麗にしてくれるとはいえ、元となるデータの質が良いに越したことはないからだ。

デザインの観点では、「ユーザーの入力負荷を下げつつ、裏側でデータを整える設計」 が求められる。かつてのようにユーザーに厳密な入力を強いるのではなく、UIがデータの揺らぎを吸収するアプローチが主流である。

例えば、以下のような工夫が「UIによる前処理」として機能する。

  • オートフォーマット(入力補助)
    ユーザーが「1000」と打っても「1k」と打っても、入力完了時に自動的に「1,000円」という統一された形式に変換して表示する。ユーザーは好きなように入力でき、システムは整ったデータを受け取れる。
  • サジェスト機能(予測変換)
    自由記述にすると表記ゆれ(「iPhone」「アイフォン」など)が発生しやすいが、ドロップダウンで選択肢を強要すると探すのが大変になる。そこで、文字を入力した時点で候補を表示するサジェスト機能を導入すれば、ユーザーは楽に入力でき、データも統一される。
    「ユーザーに正しく入力させる」のではなく、「どんな入力でもシステムが正しく解釈できるようにデザインする」ことが、結果としてAIの精度を高め、ユーザー体験も向上させる鍵となる。

「この場面に使える」シーンと具体例

プロダクト開発の現場において、前処理の概念がどのように役立つ具体的なシーンは以下の通りである。

1. ユーザーの好みを分析する「レコメンド機能」

  • シーン
    映画や音楽の配信サービスで、ユーザーに「おすすめ」を表示したい場合。
  • 前処理の役割
    ユーザーが「間違ってクリックしてすぐに閉じた」履歴は、興味の対象ではないノイズである。前処理で「再生時間が極端に短い履歴」を削除することで、本当に興味のあるコンテンツだけを学習させ、精度の高いおすすめを表示できる。

2. 手書き文字を読み取る「OCRアプリ」

  • シーン
    レシートや名刺をカメラで撮影し、文字データ化する場合。
  • 前処理の役割
    撮影された画像は、斜めになっていたり、影が入っていたりする。文字認識AIにかける前に、画像の傾きを補正し、コントラストを上げて文字をくっきりさせる画像処理(前処理)を行うことで、読み取りミスを劇的に減らすことができる。

3. 音声操作の「スマートスピーカー」

  • シーン
    リビングで「電気を消して」と話しかける場合。
  • 前処理の役割
    テレビの音やエアコンの動作音などの「環境雑音」が混じっている。AIが声を認識する前に、特定の周波数のノイズをカットする前処理を行うことで、騒がしい部屋でも正確に命令を聞き取れるようになる。

4. ECサイトの商品検索機能

  • シーン
    ユーザーが入力した「あいふぉん14」を「iPhone 14」に正規化する。
  • 前処理の役割
    全角・半角、大文字・小文字、スペースの有無などを統一し、検索精度を向上させる。こうした検索クエリの前処理により、ユーザーの意図を正確に理解できるようになる。

関連用語

ガーベジイン ガーベジアウト(GIGO)

正規分布

ポステルの法則

スケーリング(特長量のスケーリング)

 

参考リンク

フリーランスのエンジニア。 2001年東京都立大学(現首都大学東京)経済学部卒業。独立系ソフトハウス(システム開発)、株式会社シンプレクス(金融機関向け取引システムの開発・運用)を経て2011年よりフリーランス。フリーランスになってからは、スマホアプリ、サーバーサイド(Java,Railsなど)と様々なプロジェクトで開発に携わる。現在は会社員時代にお世話になった企業様でRPAプロジェクトで開発を担当している。 ダイエットのためにランニングとヨガを5年ほど続けているが、どちらもガチになる一方で全く痩せないことが最近の悩み。

「UX用語」のカテゴリー

PHP Code Snippets Powered By : XYZScripts.com