データの欠落は、実際に取得されるデータにおいてよくある問題です。データの欠落はデータの理解に影響を与えるだけでなく、分析結果にも影響を与える可能性があるため、データの前処理において欠落データへの対処は非常に重要なステップとなります。この記事では、データ欠落の種類の理解やデータ欠落時の対処法など、データ欠落の対処法について詳しく解説します。
目次
1. 欠損データの種類
欠損データは通常、完全にランダムな欠損、ランダムな欠損、ランダムではない欠損の 3 つのカテゴリに分類されます。適切な治療法を選択するには、欠損データの種類を理解することが重要です。
完全にランダムに欠けている
データの欠如が他の観測値や欠損値自体から独立している場合、データは完全にランダムに欠損していると言えます。
ランダムに行方不明
データが他の観測値に関連して欠損しているが、欠損値自体には関連していない場合、データはランダムに欠損していると言います。
ランダムに行方不明
欠損データが欠損値自体に関連している場合、欠損データはランダムに欠損しているわけではないと言えます。
2. データが欠落した場合の対処方法
欠損データに対処する方法には、通常、削除、埋め込み、予測が含まれます。以下では、これら 3 つの方法をそれぞれ詳しく紹介します。
削除メソッド
欠損データを処理する最も簡単な方法は、欠損値を含む観測値を直接削除する削除方法です。このアプローチは単純ですが、欠損データが完全にランダムではない場合、バイアスが生じる可能性があります。
以下は、Python の pandas ライブラリを使用した削除の例です。
import pandas as pd
# 创建一个包含缺失值的数据框
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [9, 10, 11, 12]
})
# 删除含有缺失值的行
df.dropna()
充填方法
穴埋めとは、欠損値を何らかの値で置き換えることです。一般的な充填方法には、平均/中央値/モード充填、最近傍充填、および内挿があります。
以下は、Python の pandas ライブラリを使用した平均値補完の例です。
# 使用列的均值填充缺失值
df.fillna(df.mean())
予測
予測とは、完全なデータを含む観測値を使用して欠損値を予測することです。一般的な予測方法には、回帰と機械学習が含まれます。以下は、Python の scikit-learn ライブラリを使用した線形回帰予測の例です。
from sklearn.linear_model import LinearRegression
# 提取没有缺失值的行
df_no_na = df.dropna()
# 创建并拟合线性回归模型
model = LinearRegression().fit(df_no_na[['A', 'C']], df_no_na['B'])
# 提取有缺失值的行
df_na = df[df['B'].isna()]
# 预测缺失值
df.loc[df['B'].isna(), 'B'] = model.predict(df_na[['A', 'C']])
3. 欠落データに対処する戦略
欠損データを処理する戦略は、データの性質と欠損値の種類に基づいて決定する必要があります。以下に考えられる戦略をいくつか示します。
- データ量が十分で、欠落データの数が比較的少ない場合には、削除する方法も検討できます。ただし、削除方法によってバイアスが生じる可能性があるため、注意が必要です。
- 欠損値が数値データの場合は、平均値/中央値/最頻値の埋め込みなどの埋め込み方法の使用を検討できます。ただし、この方法ではデータのばらつきが小さくなる可能性があることに注意してください。
- データセットが小さい場合、または欠損値が多数ある場合は、予測メソッドの使用を検討してください。この方法では、データの元の構造と関係を可能な限り維持できますが、計算の複雑さが高くなります。
- 戦略に関係なく、処理されたデータをチェックして、不当なバイアスや変更が導入されていないことを確認する必要があります。
4. モデルに対する欠損データの影響
データの欠落はデータ分析の結果に影響を与えるだけでなく、機械学習モデルのパフォーマンスにも影響を与える可能性があります。線形回帰、ロジスティック回帰、サポート ベクター マシンなどの一部のモデルでは、トレーニングに完全なデータセットが必要です。データセットに欠損値がある場合、これらのモデルを直接使用することはできません。デシジョン ツリーやランダム フォレストなどの一部のモデルは欠損値を処理できますが、欠損値によりモデルのパフォーマンスが低下する可能性があります。
結論は
欠損データの処理は、データの前処理における非常に重要なステップです。適切な処理方法を選択すると、データをより深く理解できるだけでなく、分析とモデルのパフォーマンスも向上します。この記事が、欠落データに対処する方法をより深く理解し、データ分析および機械学習プロジェクトでより良い結果を達成するのに役立つことを願っています。
次回の記事では、外れ値に対処する方法について説明しますので、お楽しみに!