• 日本語
    • English (英語)
Avinton JapanAvinton JapanAvinton JapanAvinton Japan
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ

【機械学習入門】機械学習に向けてのデータ前処理

    Home 技術解説 【機械学習入門】機械学習に向けてのデータ前処理
    機械学習 入門 データ前処理

    【機械学習入門】機械学習に向けてのデータ前処理

    By James Cauchi | 技術解説, 技術ブログ&インタビュー | Comments are Closed | 24 1月, 2018 | 2

    機械学習では、まずデータを用意し、それを適切なアルゴリズムに与えて学習させる、というプロセスを経るのが一般的です。

    しかしその際に、用意したデータをそのままアルゴリズムに与えてうまく学習できることはまれです。実際にはアルゴリズムに入れる前に、データの前処理というものが大抵必要になります。

    本記事ではこのデータの前処理について、その概要を説明をしていきます。

    データの前処理とは

    データの前処理とは、得られたデータを何らかの機械学習アルゴリズムに入れる前に、そのデータに何かしら手を加えることをいいます。

    用意した”生”のデータを、アルゴリズムが学習できる、あるいは学習しやすいように”きれいな”データに整える、といったようなイメージです。

    以下が、機械学習のフロー全体の中でのデータの前処理の位置付けになります。

    データ前処理 機械学習 入門

    データ処理のプロセス

    データの前処理はなぜ必要?

    まず、何らかの手段で欲しいデータが手に入ったとして、そのデータが完璧である可能性はほぼありません。

    大抵データ内には欠損、ノイズ、エラー値などがあります。これらは無視してもよい場合もありますが、データの欠けに対しては適切な値で埋めたり、好ましくないデータ値は除いたりする必要があります。

    さらに生のデータというのは、今の値の見え方がそのデータの内部構造や関係性を表すのにベストであることは滅多にありません。最大限にそのデータを活用するには、何らかの統計的処理を施す必要があります。

    また機械学習アルゴリズム自体にも、利用するデータのフォーマットに相性があります。

    例えば、ランダムフォレストはnull値に対応していないので、その値には何かしら手を加える必要があります。ニューラルネットワークに画像を流すときも、大抵流せる画像のサイズは固定なので、大きすぎたり小さすぎたりする画像はリサイズする必要があります。

    以上のような理由から、機械学習アルゴリズムに与える前に、事前に得られた生のデータをできるだけ構造や関係性がつかみやすく、かつ機械学習アルゴリズムが学習しやすいような形に整えてあげる必要があるのです。

    機械学習 入門 データ前処理

    データ前処理のイメージ

    データ前処理のテクニック

    それではデータの特徴量を整える手法をメインに、具体的なテクニックをいくつか紹介します。

    ここで紹介するテクニックは、広く色々なデータに使われるものです。

    Rescaling

    各特徴量の値の幅を揃えることをいいます。共通のスケールで、公平に特徴量を比較できるようにするために行われる処理です。ニューラルネットからKNNまで、幅広いアルゴリズムに有効です。

    具体的な計算処理としては、[math]Xmax, Xmin[/math]をそれぞれ特徴量[math]X[/math]の最大値、最小値、σを各特徴量の標準偏差とした

    • [math]Xnorm=X-Xmin / Xmax-Xmin[/math] (Normalization(正規化))
    • [math]X = X/σ[/math]

    があります。

    Centering

    各特徴量の中心を0に揃えることをいいます。各特徴量において、平均を計算し、それを各値から引きます。結果としてどの特徴量でもデータの平均値は0となります。

    計算式は、μを各特徴量の平均として

    • [math]X=X-μ[/math]

    です。

    Standardization/規格化

    RescalingとCenteringの組み合わせです。各特徴量でデータの平均値が0、標準偏差が1となるようにします。結果、データは標準正規分布(標準ガウス分布)というアルゴリズム側が扱いやすい分布に従うことになります。

    計算式はRescalingとCenteringの組み合わせの

    • [math]X=(X-μ) / σ[/math]

    です。
    以下にCenteringとStandardizationのイメージ図を載せておきます。

    機械学習 入門 データ処理

    CenteringとStandardization

    Principal component analysis (PCA)

    データ内の重要な(分散の大きい)特徴量のみを取り出す処理です。特に線形回帰に有効となります。

    今後PCAをテーマにまた別で記事を書く予定なので、詳しくはそちらを参照してください。

    Independent component analysis (ICA)

    データ内の独立した特徴量を取り出す処理です。例としてはAさん・Bさん・Cさんの混声合唱の音声シグナルから、Aさんの歌声・Bさんの歌声・Cさんの歌声のシグナルを分けるといったような処理があげられます。

    特徴量間の独立性を仮定するNaive Bayesアルゴリズムに特に有効です。
    Naive Bayesアルゴリズムの解説は機械学習入門者向け Naive Bayes(単純ベイズ)アルゴリズムに触れてみるをご覧ください。実際にJupyter Notebook上でプログラムを書きながら学ぶことができます。

    以下に、PCAとICAでデータのどの特徴量(軸)を取り出すことになるのかのイメージ図を載せておきます。
    PC1, 2及びIC1, 2は図のようなデータ点群にPCA及びICAを適用したときに取り出される軸になります。

    PCAではその軸方向から見たときにデータの分散(散らばり度合い)が大きくなるように、ICAではできるだけ多くのデータがその軸に沿うように、軸が選ばれていることがわかります。

    機械学習 入門 データ前処理

    PCAとICAの違い

    まとめ

    ここでは機械学習での重要なプロセスの1つ、データの前処理について説明してきました。

    このデータの前処理は、データの種類によってもまたそれぞれ独自の手法があり、詳細に見ていくと内容も広範になりがちです。

    しかし全般的に適切なデータの用意はアルゴリズムのパフォーマンス向上には欠かせません。データの前処理を制するものは機械学習を制するとも言えるかもしれません。

    関連記事

    【機械学習入門】 クラスタリング
    【機械学習入門】 教師あり学習と教師なし学習
    【機械学習入門】深層強化学習の基礎
    Avintonエンジニア育成アカデミー
    *Avintonアカデミーは機械学習コンテンツも揃っています。

    あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?

    社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?

    採用情報
    機械学習, 技術, データ

    Related Post

    • G検定合格体験記

      G検定合格体験記

      By Avinton rk | Comments are Closed

      Read more

    • Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

      Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

      By Avinton rk | Comments are Closed

      Read more

    • deploying-postgresql-operator-in-Kubernetes

      PostgreSQL Operator on Kubernetes

      By Avinton rk | Comments are Closed

      Read more

    • AIモデルの最適化

      AIモデルの最適化

      By Avinton rk | Comments are Closed

      Read more

    • Pytorch Datasets & DataLoaders

      PyTorch – Datasets & DataLoaders

      By Avinton rk | Comments are Closed

      Read more

    採用情報

    採用情報

    Categories

    • 相互学習
    • 採用
    • 社員インタビュー
    • 学習&資格取得
    • 技術解説
    • イベント告知
    • 学内説明会&講義
    • 産学連携
    • 就職活動
    • イベントレポート
    • その他
    • 技術ブログ&インタビュー
    • mainpage
    • New Graduates Interviews
    • 中途エンジニア
    • カテゴリーなし
    • ニュースリリース&イベント

    Avinton SDGs

    SDGsへの貢献

    Search

    タグ

    AIエンジニア AI導入 Apatch AvintonAcademy CKA DevOps KiX Kubernetes Notion PM&PMO PyTorch SDGs Innnovation Hub UI YOLOv5 アカウントマネージャー インタビュー インフラエンジニア エッジAIカメラ セキュリティエンジニア ソフトスキル ツール開発 データサイエンティスト ネットワークエンジニア フルスタックエンジニア フロントエンド ベテランエンジニア ボランティア マイクロサービス モーフィング ローカルイベント 中瀬幸子、サーバークラスター 中途採用 人材育成 協働パートナー 国際自動制御連盟 地域創生 基本情報技術者 強化学習 技術 新卒、キャリア 新卒採用 田中研之輔 社会貢献 経団連 顔認証
    © 2023 Avinton | All Rights Reserved | プライバシーポリシー
    • サービス
      • Avinton Data Platform
      • エッジAIカメラ
        • 自動車ナンバープレート自動認識システム
      • プライベートクラウド
      • AIサービス開発
      • AIカメラ/画像解析無料体験版
    • 最新情報
      • ニュースリリース&イベント情報
      • 技術ブログ&インタビュー
    • アカデミー
      • Avintonアカデミー
      • Academy on Campus
      • Academy with Platform
    • 採用情報
      • Avintonジャパン 採用ページ
      • 求人一覧
      • よくある質問
      • 新卒採用
    • 企業情報
      • 会社概要
      • 代表からご挨拶
      • SDGsへの貢献
    • お問い合わせ
    • 日本語
      • English (英語)
    Avinton Japan