以下是關(guān)于Rahul Agarwal 分享的內(nèi)容,編譯整理如下。
10年的無為網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整無為建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“無為網(wǎng)站設(shè)計”,“無為網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實(shí)執(zhí)行。數(shù)據(jù)科學(xué)實(shí)際上是就是研究算法。
我每天都在努力學(xué)習(xí)許多算法,所以我想列出一些最常見和最常用的算法。
本文介紹了在處理數(shù)據(jù)時可以使用的一些最常見的采樣技術(shù)。
簡單隨機(jī)抽樣
假設(shè)您要選擇一個群體的子集,其中該子集的每個成員被選擇的概率都相等。
下面我們從一個數(shù)據(jù)集中選擇 100 個采樣點(diǎn)。
sample_df = df.sample(100)
分層采樣
假設(shè)我們需要估計選舉中每個候選人的平均票數(shù)?,F(xiàn)假設(shè)該國有 3 個城鎮(zhèn):
A 鎮(zhèn)有 100 萬工人,
B 鎮(zhèn)有 200 萬工人,以及
C 鎮(zhèn)有 300 萬退休人員。
我們可以選擇在整個人口中隨機(jī)抽取一個 60 大小的樣本,但在這些城鎮(zhèn)中,隨機(jī)樣本可能不太平衡,因此會產(chǎn)生偏差,導(dǎo)致估計誤差很大。
相反,如果我們選擇從 A、B 和 C 鎮(zhèn)分別抽取 10、20 和 30 個隨機(jī)樣本,那么我們可以在總樣本大小相同的情況下,產(chǎn)生較小的估計誤差。
使用python可以很容易地做到這一點(diǎn):
fromsklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.25)
水塘采樣
我喜歡這個問題陳述:
假設(shè)您有一個項目流,它長度較大且未知以至于我們只能迭代一次。
創(chuàng)建一個算法,從這個流中隨機(jī)選擇一個項目,這樣每個項目都有相同的可能被選中。
我們怎么能做到這一點(diǎn)?
假設(shè)我們必須從無限大的流中抽取 5 個對象,且每個元素被選中的概率都相等。
import randomdef generator(max):
number = 1
while number 《 max:
number += 1
yield number# Create as stream generator
stream = generator(10000)# Doing Reservoir Sampling from the stream
k=5
reservoir = []
for i, element in enumerate(stream):
if i+1《= k:
reservoir.append(element)
else:
probability = k/(i+1)
if random.random() 《 probability:
# Select item in stream and remove one of the k items already selected
reservoir[random.choice(range(0,k))] = elementprint(reservoir)
------------------------------------
[1369, 4108, 9986, 828, 5589]
從數(shù)學(xué)上可以證明,在樣本中,流中每個元素被選中的概率相同。這是為什么呢?
當(dāng)涉及到數(shù)學(xué)問題時,從一個小問題開始思考總是有幫助的。
所以,讓我們考慮一個只有 3 個項目的流,我們必須保留其中 2 個。
當(dāng)我們看到第一個項目,我們把它放在清單上,因為我們的水塘有空間。在我們看到第二個項目時,我們把它放在列表中,因為我們的水塘還是有空間。
現(xiàn)在我們看到第三個項目。這里是事情開始變得有趣的地方。我們有 2/3 的概率將第三個項目放在清單中,
現(xiàn)在讓我們看看第一個項目被選中的概率:
移除第一個項目的概率是項目 3 被選中的概率乘以項目 1 被隨機(jī)選為水塘中 2 個要素的替代候選的概率。這個概率是:
2/3*1/2 = 1/3
因此,選擇項目 1 的概率為:
1–1/3=2/3
我們可以對第二個項目使用完全相同的參數(shù),并且可以將其擴(kuò)展到多個項目。
因此,每個項目被選中的概率相同:2/3 或者用一般的公式表示為 K/N
隨機(jī)欠采樣和過采樣
我們經(jīng)常會遇到不平衡的數(shù)據(jù)集。
一種廣泛采用的處理高度不平衡數(shù)據(jù)集的技術(shù)稱為重采樣。它包括從多數(shù)類(欠采樣)中刪除樣本或向少數(shù)類(過采樣)中添加