【総集編】データ前処理をPythonで実装【機械学習入門】

データ前処理とは

データ前処理とは

データ前処理とは、集めたデータを分析できる状態に加工することです。


データ前処理では、次のようなことを実施します。



データ前処理で行うことの例
  • 欠けている値(欠損値)を補う
  • 分析に使う項目を抜き出す
  • 不要な項目を削除する
  • データを結合する
  • 日時データを処理する

データ前処理がなぜ必要なのか

データ前処理が必要な理由は、データ分析の精度を上げるためです。

そのままのデータを使うと、なんで分析が上手く行かないんだろう。



業務で貯めてきたデータの多くは、業務に合わせた形で集計されています。


そのため、そのままの形のデータを使うと、分析用ソフトウェアやPythonでは扱いにくい場合があるのです。



また、そのままのデータを使うよりも、他データと掛け合わせることで、より精度の高い分析や機械学習ができることもあります。




以上の理由から、データの前処理が欠かせません。



ちなみに、「集計したままのデータ」のことを生データ(ローデータ)と呼びます。




POINT

データ前処理が7割

機械学習では、「Garbage In, Garbage Out(GIGO)」という概念があります。
これは、「ゴミのように無意味なデータを入力すると、どんなに素晴らしいモデルを使っても無意味な結果が返ってくる」という意味です。

無意味なデータを入れないようにするためにも、データの前処理が大事なのです。





データの種類


データには、構造化データと非構造化データがあります。



構造化データ

構造化データとは、ExcelやCSVファイルといった、列と行の概念をもつ表構造のデータのことです。



ソフトウェアで扱いやすいため、分析ではよく用いられます。


非構造化データ

非構造化データとは、表構造ではないデータのことです。


構造化データの真逆だね。




例えば、下記のデータは非構造化データです。

非構造化データの例
  • eメール
  • 文章
  • デザインデータ
  • 音声・動画・画像



非構造化データは、何らかの方法で表構造に変換して分析に使います。



データ前処理に使うPythonライブラリ

ライブラリとは、使いやすいプログラムを、ユーザーが使いやすいように部品化したものです。


ライブラリは、「便利グッズの詰め合わせ」みたいだね



データ前処理で使うのは、「pandas」と「Numpy」という2つのライブラリです。



pandas

pandas(パンダス)は、データ解析のためのライブラリです。


pandasを使うと、効率よく、データ分析ができるんだね。


Numpy

Numpy(ナムパイ)は、効率よく数値計算するためのライブラリです。


処理速度が早いので、大量のデータを使う機械学習やデータ分析でよく使います。


データ前処理の流れ

データ前処理の流れは次の通りです。



データを取り込む

準備したデータを取り込みましょう。


データを取り込むことで、分析ツールやプログラミングで扱うことができます。



データを理解する

項目の定義や、欠損値があるかなどを確認します。


また、平均値や中央値、データ数といった、基本統計量も確認します。

他には、大きく中心からはみ出た値(外れ値)がないかどうかも確認するよ



データ前処理の方法を検討する

データの情報量、状態、データ型などをチェックして、どのような前処理の作業が必要なのかを検討します。



データ前処理を実施する

データの前処理の主な処理として、次の3つがあります。



データの前処理
  1. データクレンジング
  2. データの統合
  3. データの変換


①のデータクレンジングって何?

データクレンジングとは、データをきれいにすることだよ。
例えば、欠損値があったり、不正確なデータや無関係なデータを特定して解消したりするんだ。


それではさっそく、前処理をPythonで実装してみましょう。



Jupyterlabをインストールしていない方は、下記の動画の手順に沿ってインストールしましょう。



pandasとNumpyのインストールは不要

pandasとNumpyを使えるようにするために、必要な手順はあるの?

Anacondaを使っている人は、pandasとNumpyが既に使える状態になっているため、特にすることはないよ。
面倒な作業がいらないから、Anacondaは非常におすすめです!



NumPyの使い方については、こちらの記事でまとめています。

【完全版】NumPyの使い方を徹底解説【機械学習】

2022年10月16日





データの取得・読み込み

オープンデータとは

【データ分析】オープンデータとは?e-Statからデータを取得する方法

2022年9月25日



ファイル読み込み

【Python】pandasでCSVファイルを読み込む方法【read_csv】

2022年9月27日


データ操作

データの確認

【pandas】データフレームで確認すべき8つのポイント【データ分析】

2022年10月1日




データの抽出

【Python】特定のデータを抽出する方法2選【データ分析】

2022年10月2日


アンダーサンプリング・オーバーサンプリング

Comming soon


データの集計

グループ集計・ピボット集計

【pandas】データのグループ集計・ピボット集計の方法【データ分析】

2022年10月5日



ソート

【pandas】データのソート総まとめ(sort_values・sort_index)【データ分析】

2022年10月8日



データの変換

データの種類

質的変数と量的変数の違いとは?【全データ種類解説】

2022年6月17日



データ型

【pandas】データ型DataFrameとSeriesとは?【Pythonデータ分析】

2022年10月10日



尺度水準

測定尺度とは?質的変数と量的変数を区別しよう

2022年6月18日



OneHotEncoding(ダミー変数化)

【ダミー変数化】OneHotEncordingで質的データを量的データに変換する方法【CategoryEncoders】

2022年10月16日



離散化

【離散化】Pythonで量的データを区間ごとに分割する【cut・qcut・KBinsDiscretizer】

2022年10月23日




正規化・標準化

【pandas】データのスケーリング(正規化、標準化、中心化)とは?初学者向けに解説【データ分析】

2022年10月9日




スパース

Comming soon




欠損値・外れ値・異常値の処理

【初心者】欠損値、外れ値、異常値とは?対処法についてわかりやすく解説【データ分析】

2022年11月1日


欠損値・外れ値の検出

Comming soon


異常値の検出

Comming soon

欠損値・外れ値・異常値の除却

Comming soon

パディング

Comming soon


補完

平均値・中央地・最頻値で補完

Comming soon

推定して補完

Comming soon


多重代入で補完

Comming soon