-
最頻値による補完: カテゴリカル変数の欠損値を最頻値(最も頻繁に出現する値)で補完する方法です。pandasライブラリの
mode()
関数を使用して最頻値を計算し、fillna()
関数を使用して欠損値を補完します。import pandas as pd # DataFrameの'column_name'列の欠損値を最頻値で補完する df['column_name'].fillna(df['column_name'].mode()[0], inplace=True)
-
ラベルの追加: 欠損値を表す新しいラベルをデータセットに追加する方法です。例えば、"Unknown"や"Missing"などの値を欠損値として扱います。
import pandas as pd # DataFrameの'column_name'列の欠損値を"Unknown"で置き換える df['column_name'].fillna("Unknown", inplace=True)
-
機械学習モデルによる予測: 欠損値を補完するために、他の特徴量を使用して予測モデルを構築する方法もあります。欠損値のある特徴量を目的変数とし、他の特徴量を入力として機械学習モデルを訓練します。訓練されたモデルを使用して欠損値を予測し、補完します。
import pandas as pd from sklearn.ensemble import RandomForestClassifier # 欠損値を補完するための特徴量と目的変数を抽出 X_train = df[df['column_name'].notnull()] y_train = X_train['column_name'] X_test = df[df['column_name'].isnull()] # 機械学習モデルを訓練して欠損値を予測 model = RandomForestClassifier() model.fit(X_train.drop('column_name', axis=1), y_train) predicted_values = model.predict(X_test.drop('column_name', axis=1)) # 欠損値を補完 df.loc[df['column_name'].isnull(), 'column_name'] = predicted_values
これらは一般的な欠損値補完の方法ですが、データセットや問題によって最適な方法が異なる場合もあります。欠損値の性質やデータセットの特徴をよく理解し、適切な補完方法を選択することが重要です。また、欠損値を補完する前にデータの前処理や特徴量エンジニアリングを行うことも推奨されます。