方差缩减——分层抽样
生活随笔
收集整理的這篇文章主要介紹了
方差缩减——分层抽样
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方差縮減——分層抽樣
分成4個子區間
import numpy as npn = 500 estimates = np.empty([100, 2])def g(x):if x >= 0 and x <= 1:y = np.exp(-x) / (1 + x ** 2)else:y = 0return ydef get_mean(X):results = []for x in X:results.append(g(x))return np.mean(results)for i in range(100):estimates[i, 0] = get_mean(np.random.uniform(0, 1, n))t2 = []t2.append(get_mean(np.random.uniform(0, 0.25, int(n / 4))))t2.append(get_mean(np.random.uniform(0.25, 0.5, int(n / 4))))t2.append(get_mean(np.random.uniform(0.5, 0.75, int(n / 4))))t2.append(get_mean(np.random.uniform(0.75, 1, int(n / 4))))estimates[i, 1] = np.mean(t2)print(np.var(estimates, axis=0))輸出:[1.11658751e-04 8.00280336e-06]
分成100個子區間
import numpy as npn = 500 estimates = np.empty([100, 2])def g(x):if x >= 0 and x <= 1:y = np.exp(-x) / (1 + x ** 2)else:y = 0return ydef get_mean(X):results = []for x in X:results.append(g(x))return np.mean(results)intervals = np.linspace(0, 1, 100)for i in range(100):estimates[i, 0] = get_mean(np.random.uniform(0, 1, n))t2 = []for j in range(99):t2.append(get_mean(np.random.uniform(intervals[j], intervals[j + 1], int(n / 100))))estimates[i, 1] = np.mean(t2)print(np.var(estimates, axis=0))輸出:[1.15212447e-04 1.57478224e-08]
總結
以上是生活随笔為你收集整理的方差缩减——分层抽样的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学web基础期末大作业~仿品优购页面制
- 下一篇: panabit策略路由