Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ アンダーサンプリング手法 | 大規模データのサンプリング手法
Pythonによる大規模データハンドリング

アンダーサンプリング手法

メニューを表示するにはスワイプしてください

大規模なデータセットでクラスの不均衡がある場合、多くの場合、一方のクラス(多数派クラス)がもう一方のクラス(少数派クラス)を大きく上回る状況に直面します。この不均衡により、モデルが少数派クラスに関する有意義なパターンを学習しにくくなり、予測性能が低下することがあります。アンダーサンプリングは、この問題に対処するために、多数派クラスのサンプル数を減らし、データセットのバランスを取る手法です。

アンダーサンプリングは、データセットが大きすぎて実用的な処理が困難な場合や、多数派クラスが支配的でモデルが少数派クラスを無視してしまう場合に検討されます。ただし、アンダーサンプリングは非常に大規模なデータセットで、多数派クラスのサンプルを一部失っても重要な情報を損なわない場合に最も適しています。すでにデータセットが小さい場合や、多数派クラスに希少だが重要な例が含まれている場合には、あまり適していません。

123456789101112131415161718192021222324
import pandas as pd # Create a sample imbalanced dataset data = { "feature": range(20), "class": ["majority"] * 16 + ["minority"] * 4 } df = pd.DataFrame(data) # Count the number of samples in each class class_counts = df["class"].value_counts() minority_count = class_counts["minority"] # Randomly sample from the majority class to match the minority class count majority_sample = df[df["class"] == "majority"].sample(n=minority_count, random_state=42) minority_sample = df[df["class"] == "minority"] # Combine samples to get a balanced dataset balanced_df = pd.concat([majority_sample, minority_sample]) print("Original class distribution:") print(df["class"].value_counts()) print("\nBalanced class distribution after undersampling:") print(balanced_df["class"].value_counts())
question mark

アンダーサンプリングの潜在的なリスクは何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  5
some-alt