Pythonにおけるブートストラップサンプリング
これはPythonにおけるブートストラップサンプリングのチュートリアルです。このチュートリアルでは、ブートストラップとは何かを学び、それを実装する方法を見ていきます。
始めましょう。 (Hajimemashou.)
ブートストラップサンプリングとは何ですか?
ブートストラップサンプリングの定義は次の通りです。
統計学において、ブートストラップサンプリングは、データソースからのサンプルデータを再帰的に復元抽出し、母集団のパラメータを推定する方法です。
基本的には、ブートストラップサンプリングとは、集団内のすべてのデータポイントを個々に考慮せずに、平均などのパラメータを全集団について推定するための手法である。
人口全体を見る代わりに、同じ大きさの複数の部分集合を人口から抽出して参照します。
例えば、人口の大きさが1000人である場合、全ての1000エントリーを考慮する代わりに、4人ずつのサンプルを50回抽出し、各サンプルの平均値を計算することができます。これにより、ランダムに選ばれた200個のエントリーの平均値を取ることができます。
市場調査員が大規模な人口を対象に調査を行う際には、同様の戦略が使用されます。
PythonでBootstrap Samplingを実装する方法は何ですか?
これから、Pythonでブートストラップサンプリングを実装する方法を見てみましょう。
私たちは、あらかじめ決められた平均値を持つランダムなデータを生成します。それにはPythonのNumPyモジュールを使用します。
必要なモジュールをインポートしてみましょう。
1. 必要なモジュールをインポートしてください。
必要なモジュールは以下のとおりです:
- Numpy
- Random
これらのモジュールをインポートするには、以下のように使用します:
import numpy as np
import random
次のステップでは、いくつかのランダムデータを生成する必要があります。それにはNumpyモジュールを使用しましょう。
2. ランダムなデータを生成する。
平均が300でエントリーが1000の正規分布を生成しましょう。
それに関するコードは以下で示されています。
x = np.random.normal(loc= 300.0, size=1000)
このデータの平均を計算することができます。
print (np.mean(x))
出力:
300.01293472373254
人口の実際の意味であることに注意してください。 (Jinkō no jissai no imi de aru koto ni chūi shite kudasai.)
3. 平均値を推定するためにブートストラップサンプリングを使用する。
「平均を推定するために、4つのサンプルを含む50個のサンプルを作成しましょう。」
それを行うためのコードは次の通りです:
sample_mean = []
for i in range(50):
y = random.sample(x.tolist(), 4)
avg = np.mean(y)
sample_mean.append(avg)
リストsample_meanには、50個のサンプルの平均が含まれます。母集団の平均を推定するためには、sample_meanの平均を計算する必要があります。
それは使っていただけます。
print(np.mean(sample_mean))
結果:
300.07261467146867
もし、この節のコードを再実行すれば、異なる出力結果が得られます。それは、コードを実行するたびに新しいサンプルが生成されるためです。ただし、出力結果は常に真の平均値(300)に近いものになります。
このセクションで再度コードを実行すると、以下の出力が得られます。
299.99137705245636
もう一度実行すると、次の結果が得られます。
300.13411004148315
Pythonでブートストラップサンプリングを実装するための完全なコードを作成してください。
このチュートリアルの完全なコードはこちらです。
import numpy as np
import random
x = np.random.normal(loc= 300.0, size=1000)
print(np.mean(x))
sample_mean = []
for i in range(50):
y = random.sample(x.tolist(), 4)
avg = np.mean(y)
sample_mean.append(avg)
print(np.mean(sample_mean))
結論
今回のチュートリアルは、Pythonにおけるブートストラップサンプリングについてでした。私たちは、より小さなサンプルを作成することで、母集団の平均を推定する方法を学びました。これは、オーバーフィッティングを避けるために、機械学習の世界で非常に役立つものです。私たちと一緒に学んで楽しんでいただけたら嬉しいです!