ホームページ > バックエンド開発 > Python チュートリアル > ML モデルのデータ前処理手法

ML モデルのデータ前処理手法

DDD
リリース: 2024-12-03 10:39:10
オリジナル
530 人が閲覧しました

Data Preprocessing Techniques for ML Models

データの前処理とは、データセットを機械学習やその他のタスクに使用する前に、データセットに対して特定のアクションやステップを実行する行為です。データの前処理には、品質を向上させるため、または主な目的 (この場合はモデルのトレーニング) に適していることを確認するために、データのクリーニング、フォーマット、または変換が含まれます。クリーンで高品質なデータセットは、機械学習モデルのパフォーマンスを向上させます。

低品質のデータに関する一般的な問題には次のようなものがあります。

  • 欠損値
  • 一貫性のない形式
  • 値が重複しています
  • 無関係な機能

この記事では、モデルのトレーニングで使用するデータセットを準備するための一般的なデータ前処理手法をいくつか紹介します。 Python の基本的な知識と、Python ライブラリとフレームワークの使用方法が必要です。

要件:
このガイドを最大限に活用するには、次のことが必要です

  • Python 3.12
  • Jupyter Notebook またはお気に入りのノートブック
  • でこぼこ
  • パンダ
  • シピー
  • Scikit の学習
  • メルボルンの住宅データセット

Github 上のこれらの Jupyter ノートブックで各コードの出力をチェックアウトすることもできます。

設定

Python をまだインストールしていない場合は、Python Web サイトからダウンロードし、指示に従ってインストールできます。

Python がインストールされたら、必要なライブラリをインストールします

pip install numpy scipy pandas scikit-learn
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Jupyter Notebook をインストールします。

pip install notebook
ログイン後にコピー
ログイン後にコピー

インストール後、次のコマンドで Jupyter Notebook を起動します

jupyter notebook
ログイン後にコピー
ログイン後にコピー

これにより、デフォルトの Web ブラウザで Jupyter Notebook が起動します。そうでない場合は、ブラウザに手動で貼り付けることができるリンクがあるかターミナルを確認してください。

[ファイル] メニューから新しいノートブックを開き、必要なライブラリをインポートしてセルを実行します

import numpy as np
import pandas as pd
import scipy
import sklearn
ログイン後にコピー
ログイン後にコピー

メルボルン住宅データセット サイトに移動し、データセットをダウンロードします。次のコードを使用して、データセットをノートブックに読み込みます。コンピューター上のファイル パスをコピーして、read_csv 関数に貼り付けることができます。以下に示すように、csv ファイルをノートブックと同じフォルダーに配置し、ファイルをインポートすることもできます。

data = pd.read_csv(r"melb_data.csv")

# View the first 5 columns of the dataset
data.head()
ログイン後にコピー
ログイン後にコピー

データをトレーニング セットと検証セットに分割します

from sklearn.model_selection import train_test_split

# Set the target
y = data['Price']

# Firstly drop categorical data types
melb_features = data.drop(['Price'], axis=1) #drop the target column

X = melb_features.select_dtypes(exclude=['object'])

# Divide data into training and validation sets
X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
ログイン後にコピー
ログイン後にコピー

データ漏洩を防ぐために、データをトレーニング セットと検証セットに分割する必要があります。結果として、トレーニング特徴セットに対して実行する前処理手法は、検証特徴セットに対して実行するものと同じになります。

これでデータセットを処理する準備ができました!

データクリーニング

欠損値の処理
データセット内の欠損値は、ドレスを縫うために使用されるはずの布地の穴のようなものです。それはドレスを作る前から台無しにしてしまいます。

データセット内の欠損値を処理するには 3 つの方法があります。

  1. 空のセルを含む行または列を削除します
pip install numpy scipy pandas scikit-learn
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この方法の問題は、モデルのトレーニングに使用する貴重な情報が失われる可能性があることです。削除された行または列のほとんどの値が欠落していない限り、空のセルを含む行または列を削除する必要はありません。

  1. 空のセルに値を入力します 空のセルに、その特定の列のデータの平均値、中央値、または最頻値を代入したり埋めることができます。 Scikit learn の SimpleImputer は、空のセルに値を代入するために使用されます。
pip install notebook
ログイン後にコピー
ログイン後にコピー
  1. 入力と通知 これがどのように機能するかというと、空のセルに値を入力しますが、そのセルが最初は空であったことを示す列も作成します。
jupyter notebook
ログイン後にコピー
ログイン後にコピー

重複の削除
重複したセルはデータが繰り返されていることを意味し、モデルの精度に影響します。それらに対処する唯一の方法は、それらをドロップすることです。

import numpy as np
import pandas as pd
import scipy
import sklearn
ログイン後にコピー
ログイン後にコピー

外れ値への対処
外れ値は、データセット内の他の値と大きく異なる値です。他のデータ値と比較して、異常に高いか低い場合があります。これらは入力エラーによって発生する可能性もあれば、本当に外れ値である可能性もあります。

外れ値に対処することが重要です。そうしないと、不正確なデータ分析やモデルが作成されてしまいます。外れ値を検出する方法の 1 つは、Z スコアを計算することです。

その仕組みは、Z スコアを使用して、データ ポイントが平均値から 3 ポイント以上離れているかどうかを確認することです。この計算はすべてのデータ ポイントに対して実行されます。データ ポイントの Z スコアが 3 以上の値である場合、そのデータ ポイントは外れ値です。

data = pd.read_csv(r"melb_data.csv")

# View the first 5 columns of the dataset
data.head()
ログイン後にコピー
ログイン後にコピー

データ変換

正規化
特徴を正規化して、正規分布として記述できるようにします。

正規分布 (ガウス分布としても知られる) は、平均値の上下にほぼ等しい距離または分布がある統計的分布です。正規分布データのデータ ポイントのグラフは、釣鐘曲線を形成します。

データを正規化するポイントは、使用したい機械学習アルゴリズムがデータが正規分布していると仮定しているかどうかです。例としては、ガウス単純ベイズ モデルがあります。

from sklearn.model_selection import train_test_split

# Set the target
y = data['Price']

# Firstly drop categorical data types
melb_features = data.drop(['Price'], axis=1) #drop the target column

X = melb_features.select_dtypes(exclude=['object'])

# Divide data into training and validation sets
X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
ログイン後にコピー
ログイン後にコピー

標準化
標準化では、データセットの特徴が平均 0、標準偏差 1 になるように変換されます。このプロセスでは、データ全体で同様の範囲になるように各特徴がスケーリングされます。これにより、各機能がモデルのトレーニングに均等に寄与することが保証されます。

次の場合に標準化を使用します。

  • データ内の特徴はスケールまたは単位が異なります。
  • 使用したい機械学習モデルは、距離または勾配ベースの最適化 (線形回帰、ロジスティック回帰、K 平均法クラスタリングなど) に基づいています。

機能を標準化するには、sklearn ライブラリの StandardScaler() を使用します。

pip install numpy scipy pandas scikit-learn
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

結論

データの前処理は単なる準備段階ではありません。これは、正確な機械学習モデルを構築するプロセスの一部です。作業しているデータセットのニーズに合わせて調整することもできます。

ほとんどのアクティビティと同様、練習すれば完璧になります。データの前処理を続けると、モデルだけでなくスキルも向上します。

これについてのあなたのご意見をぜひ読みたいです?

以上がML モデルのデータ前処理手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート