データサイエンスはデータに関するものです。これは、あらゆるデータ サイエンスや機械学習プロジェクトの核心です。ほとんどの場合、さまざまなリソースからデータを収集したり、どこかからデータをダウンロードしたりすると、データに欠損値が含まれる可能性がほぼ 95% になります。欠損値を含むデータに対して分析を実行したり、機械学習モデルをトレーニングしたりすることはできません。これが、私たちがデータの前処理に 90% の時間を費やしている主な理由です。欠損データに対処するために使用できるテクニックは多数あります。この記事では、欠損データに対処する 9 つの方法を紹介しますが、まず欠損データが発生する理由と欠損データにはどのような種類があるのかを見てみましょう。 欠損値の種類 欠損値には主に 3 つの種類があります。
データセットに欠損値が存在する理由は多数あります。たとえば、身長と年齢のデータセットでは、女性は通常年齢を隠すため、年齢の列に欠損値が多くなります。同様に、給与と経験のデータを作成すると、ほとんどの男性が給与を公開したがらないため、給与に欠損値が多くなります。人口、疾病、事故による死亡、納税者記録などのデータを準備するなど、より大規模なケースでは、情報を書き留めて実際の数字を隠すことをためらう人がよくいます。サードパーティのソースからデータをダウンロードする場合でも、ダウンロード中にファイルが破損して値が失われる可能性があります。理由が何であれ、データセットには欠損値があり、それを処理する必要があります。欠損値を処理する 9 つの方法を見てみましょう。 ここでは、古典的なタイタニック データセットも使用されます。 まずデータセットをロードし、すべてのライブラリをインポートしましょう。
上記のコード ブロックを実行すると、Age、Cabin、Loading に null 値が含まれていることがわかります。 Age にはすべての整数値が含まれ、Cabin にはすべてのカテゴリ値が含まれます。 1. 平均値、中央値、最頻値の置換 この手法では、列内のすべての値の平均/中央値または最頻値で null 値を置き換えます。 平均: すべての値の平均
中央値: すべての値の中心値
モード: 最も一般的な値
アドバンテージ
欠点
2. ランダムサンプル推定 この手法では、すべての nan 値をデータフレームからのランダムなサンプルに置き換えます。数値データの入力に使用します。データをサンプリングするには sample() を使用します。ここでは、まず NaN 値を埋めるためにデータのサンプルを取得します。次にインデックスを変更して NaN 値と同じインデックスに置き換え、最後にすべての NaN 値をランダム サンプルに置き換えます。 アドバンテージ
欠点
ランダムサンプル注入で年齢列のNaN値を置き換える
3. 新機能でNAN値を取得する この手法は、データが完全にランダムに欠落していない場合に最も効果的です。ここでは、データセットに新しい列を追加し、すべての NaN 値を 1 に置き換えます。 アドバンテージ
欠点
4. 配布終了 この手法では、NaN 値を 3 番目の標準偏差値に置き換えます。また、データセットからすべての外れ値を削除するためにも使用されます。まず、std() を使用して 3 番目の標準偏差を計算し、その値で NaN を置き換えます。アドバンテージ
欠点
5. 任意の値を置き換える この手法では、NaN 値を任意の値に置き換えます。データセット内でどの値もこれより頻繁に出現してはなりません。通常、任意の値として、最小の外れ値または最後の外れ値を選択します。 アドバンテージ
欠点
6. 頻繁なカテゴリーの帰属 この手法は、カテゴリデータ内の欠損値を埋めるために使用されます。ここでは、NaN 値を最も一般的なラベルに置き換えます。まず、最も一般的なラベルを見つけて、それに NaN を置き換えます。 アドバンテージ
欠点
7. Nan値は新しいカテゴリとしてみなされる この手法では、すべての NaN 値を Missing などの新しいカテゴリに置き換えるだけです。
8. KNN充填を使用する この手法では、sklearn を使用して KNN インプッター モデルを作成し、このモデルをデータに適合させて NaN 値を予測します。値を計算するために使用されます。これは 5 つのステップから成るプロセスです。
アドバンテージ
欠点
前回の記事で詳しく紹介したので、ここでは詳細は省きます。 Python で KNN アルゴリズムを使用して欠損データを処理する 9. すべてのNaN値を削除する これは、使用および実装が最も簡単なテクニックの 1 つです。この手法は、NaN 値が 10% 未満の場合にのみ使用してください。 アドバンテージ:
欠点:
要約する 欠損値を処理するテクニックは他にもたくさんあります。私たちの目標は、問題に最適なテクノロジーを見つけて、それを実装することです。欠損値を処理するのは常に良いアイデアですが、すべての値を削除しなければならない場合もあります。基本的にはデータの種類と量によって異なります。 最後に、すべてのコードはここにあります: https://github.com/Abhayparashar31/feature-engineering |
<<: 機械学習サーバーの利用率とスケーラビリティを最大化するにはどうすればよいでしょうか?
>>: 運輸省は自動運転について「技術革新を歓迎し、支持する」と回答
12月2日、OpenAIのChatGPTチームはGPT開発者に手紙を送り、「GPTストア」が202...
パンデミックの影響で、医療業界は世界中で医師、看護師、その他の医療スタッフの深刻な不足に直面していま...
海外メディアの報道によると、ロボットは多くのスポーツや活動で優れているが、1つのタスクだけを実行する...
中国のバレンタインデーがちょうど終わったばかりで、編集者がオンラインにアクセスするとすぐに、偉大な芸...
ディープラーニング (DL) は、再帰型ニューラル ネットワーク、長期短期記憶、畳み込みニューラル ...
簡単に体験できるものではないため、自動運転技術が実用化にはまだ遠いと感じている人も多いでしょう。しか...
1997年、IBMが開発したディープ・ブルーがロシアのチェス名人ガルリ・カスパロフに勝利し、人工知能...
Google Gemini はどれほど強力ですか?カーネギーメロン大学は、専門的かつ客観的な第三者...
ビデオセグメンテーションタスクは、画像セグメンテーションタスクの拡張版です。ビデオ内のすべてのターゲ...
6月15日、グーグルの新しいAIチャットボットのトレーニングを担当する契約労働者のグループは、低賃金...
昨年末の ChatGPT の登場により、生成 AI の流行が巻き起こり、現在ではほぼすべての主要ソフ...
Business Insider によると、製造業ではモノのインターネット (IoT) と AI ...
タイミングの悪い信号は貴重な時間を無駄にするだけではありません。 Google の最高サステナビリテ...
OpenAI は本日、大規模言語モデル API (GPT-4 および gpt-3.5-turbo を...
ChatGPTは来週Android版をリリースすることを公式に発表し、Google Playストアで...