在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

抽樣的幾種常用方法以及在Python中是如何實(shí)現(xiàn)的

上海磐啟微電子有限公司 ? 來源:Python數(shù)據(jù)科學(xué) ? 作者:Python數(shù)據(jù)科學(xué) ? 2021-08-10 15:16 ? 次閱讀

大家好,今天來和大家聊聊抽樣的幾種常用方法,以及在Python中是如何實(shí)現(xiàn)的。

抽樣是統(tǒng)計學(xué)、機(jī)器學(xué)習(xí)中非常重要,也是經(jīng)常用到的方法,因?yàn)榇蠖鄷r候使用全量數(shù)據(jù)是不現(xiàn)實(shí)的,或者根本無法取到。所以我們需要抽樣,比如在推斷性統(tǒng)計中,我們會經(jīng)常通過采樣的樣本數(shù)據(jù)來推斷估計總體的樣本。

上面所說的都是以概率為基礎(chǔ)的,實(shí)際上還有一類非概率的抽樣方法,因此總體上歸納為兩大種類:

概率抽樣:根據(jù)概率理論選擇樣本,每個樣本有相同的概率被選中。

非概率抽樣:根據(jù)非隨機(jī)的標(biāo)準(zhǔn)選擇樣本,并不是每個樣本都有機(jī)會被選中。

概率抽樣技術(shù)1.隨機(jī)抽樣(Random Sampling)

這也是最簡單暴力的一種抽樣了,就是直接隨機(jī)抽取,不考慮任何因素,完全看概率。并且在隨機(jī)抽樣下,總體中的每條樣本被選中的概率相等。

比如,現(xiàn)有10000條樣本,且各自有序號對應(yīng)的,假如抽樣數(shù)量為1000,那我就直接從1-10000的數(shù)字中隨機(jī)抽取1000個,被選中序號所對應(yīng)的樣本就被選出來了。

在Python中,我們可以用random函數(shù)隨機(jī)生成數(shù)字。下面就是從100個人中隨機(jī)選出5個。

import random

population = 100

data = range(population)

print(random.sample(data,5))

》 4, 19, 82, 45, 41

2.分層抽樣(Stratified Sampling)

分層抽樣其實(shí)也是隨機(jī)抽取,不過要加上一個前提條件了。在分層抽樣下,會根據(jù)一些共同屬性將帶抽樣樣本分組,然后從這些分組中單獨(dú)再隨機(jī)抽樣。

因此,可以說分層抽樣是更精細(xì)化的隨機(jī)抽樣,它要保持與總體群體中相同的比例。 比如,機(jī)器學(xué)習(xí)分類標(biāo)簽中的類標(biāo)簽0和1,比例為3:7,為保持原有比例,那就可以分層抽樣,按照每個分組單獨(dú)隨機(jī)抽樣。

Python中我們通過train_test_split設(shè)置stratify參數(shù)即可完成分層操作。

from sklearn.model_selection import train_test_split

stratified_sample, _ = train_test_split(population, test_size=0.9, stratify=population[[‘label’]])

print (stratified_sample)

3.聚類抽樣(Cluster Sampling)

聚類抽樣,也叫整群抽樣。它的意思是,先將整個總體劃分為多個子群體,這些子群體中的每一個都具有與總體相似的特征。也就是說它不對個體進(jìn)行抽樣,而是隨機(jī)選擇整個子群體。

用Python可以先給聚類的群體分配聚類ID,然后隨機(jī)抽取兩個子群體,再找到相對應(yīng)的樣本值即可,如下。

import numpy as np

clusters=5

pop_size = 100

sample_clusters=2# 間隔為 20, 從 1 到 5 依次分配集群100個樣本的聚類 ID,這一步已經(jīng)假設(shè)聚類完成

cluster_ids = np.repeat([range(1,clusters+1)], pop_size/clusters)

# 隨機(jī)選出兩個聚類的 ID

cluster_to_select = random.sample(set(cluster_ids), sample_clusters)

# 提取聚類 ID 對應(yīng)的樣本

indexes = [i for i, x in enumerate(cluster_ids) if x in cluster_to_select]

# 提取樣本序號對應(yīng)的樣本值

cluster_associated_elements = [el for idx, el in enumerate(range(1, 101)) if idx in indexes]

print (cluster_associated_elements)

4.系統(tǒng)抽樣(Systematic Sampling)

系統(tǒng)抽樣是以預(yù)定的規(guī)則間隔(基本上是固定的和周期性的間隔)從總體中抽樣。比如,每 9 個元素抽取一下。一般來說,這種抽樣方法往往比普通隨機(jī)抽樣方法更有效。

下圖是按順序?qū)γ?9 個元素進(jìn)行一次采樣,然后重復(fù)下去。

用Python實(shí)現(xiàn)的話可以直接在循環(huán)體中設(shè)置step即可。

population = 100

step = 5

sample = [element for element in range(1, population, step)]

print (sample)

5.多級采樣(Multistage sampling)

在多階段采樣下,我們將多個采樣方法一個接一個地連接在一起。比如,在第一階段,可以使用聚類抽樣從總體中選擇集群,然后第二階段再進(jìn)行隨機(jī)抽樣,從每個集群中選擇元素以形成最終集合。

Python代碼復(fù)用了上面聚類抽樣,只是在最后一步再進(jìn)行隨機(jī)抽樣即可。

import numpy as np

clusters=5

pop_size = 100

sample_clusters=2

sample_size=5# 間隔為 20, 從 1 到 5 依次分配集群100個樣本的聚類 ID,這一步已經(jīng)假設(shè)聚類完成

cluster_ids = np.repeat([range(1,clusters+1)], pop_size/clusters)

# 隨機(jī)選出兩個聚類的 ID

cluster_to_select = random.sample(set(cluster_ids), sample_clusters)

# 提取聚類 ID 對應(yīng)的樣本

indexes = [i for i, x in enumerate(cluster_ids) if x in cluster_to_select]

# 提取樣本序號對應(yīng)的樣本值

cluster_associated_elements = [el for idx, el in enumerate(range(1, 101)) if idx in indexes]

# 再從聚類樣本里隨機(jī)抽取樣本print (random.sample(cluster_associated_elements, sample_size))

非概率抽樣技術(shù)非概率抽樣,毫無疑問就是不考慮概率的方式了,很多情況下是有條件的選擇。因此,對于無隨機(jī)性我們是無法通過統(tǒng)計概率和編程來實(shí)現(xiàn)的。這里也介紹3種方法。

1.簡單采樣(convenience sampling)

簡單采樣,其實(shí)就是研究人員只選擇最容易參與和最有機(jī)會參與研究的個體。比如下面的圖中,藍(lán)點(diǎn)是研究人員,橙色點(diǎn)則是藍(lán)色點(diǎn)附近最容易接近的人群。

2.自愿抽樣(Voluntary Sampling)

自愿抽樣下,感興趣的人通常通過填寫某種調(diào)查表格形式自行參與的。所以,這種情況中,調(diào)查的研究人員是沒有權(quán)利選擇任何個體的,全憑群體的自愿報名。比如下圖中藍(lán)點(diǎn)是研究人員,橙色的是自愿同意參與研究的個體。

3.雪球抽樣(Snowball Sampling)

雪球抽樣是說,最終集合是通過其他參與者選擇的,即研究人員要求其他已知聯(lián)系人尋找愿意參與研究的人。比如下圖中藍(lán)點(diǎn)是研究人員,橙色的是已知聯(lián)系人,黃色是是橙色點(diǎn)周圍的其它聯(lián)系人。

總結(jié)以上就是8種常用抽樣方法,平時工作中比較常用的還是概率類抽樣方法,因?yàn)闆]有隨機(jī)性我們是無法通過統(tǒng)計學(xué)和編程完成自動化操作的。

比如在信貸的風(fēng)控樣本設(shè)計時,就需要從樣本窗口通過概率進(jìn)行抽樣。因?yàn)椴蓸拥馁|(zhì)量基本就決定了你模型的上限了,所以在抽樣時會考慮很多問題,如樣本數(shù)量、是否有顯著性、樣本穿越等等。在這時,一個良好的抽樣方法是至關(guān)重要的。

參考:

[2] https://towardsdatascience.com/8-types-of-sampling-techniques-b21adcdd2124

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7067

    瀏覽量

    89116
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8422

    瀏覽量

    132724
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84757

原文標(biāo)題:基于 Python 的 8 種常用抽樣方法

文章出處:【微信號:gh_6a53af9e8109,微信公眾號:上海磐啟微電子有限公司】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Pythondict支持多個key的方法

    ? Python,字典(dict)是一種非常強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),它允許我們通過鍵(key)來存儲和檢索值(value)。有時候,我們可能想要根據(jù)多個鍵來檢索或操作字典的數(shù)據(jù)。雖然
    的頭像 發(fā)表于 11-29 15:59 ?175次閱讀

    邏輯異或運(yùn)算符Python的用法

    Python的 ^ 符號實(shí)際上是一個按位異或運(yùn)算符,用于對整數(shù)的二進(jìn)制表示進(jìn)行異或操作。 盡管如此,我們?nèi)匀豢梢酝ㄟ^一些方法實(shí)現(xiàn)邏輯異或的功能,即當(dāng)兩個布爾值不同時為真,相同時為
    的頭像 發(fā)表于 11-19 09:46 ?208次閱讀

    幾種常用的共模電感磁芯類型

    電子發(fā)燒友網(wǎng)站提供《幾種常用的共模電感磁芯類型.docx》資料免費(fèi)下載
    發(fā)表于 09-20 11:27 ?0次下載

    CC2640Beacon應(yīng)用實(shí)現(xiàn)方法

    電子發(fā)燒友網(wǎng)站提供《CC2640Beacon應(yīng)用實(shí)現(xiàn)方法.pdf》資料免費(fèi)下載
    發(fā)表于 09-10 14:30 ?0次下載
    CC2640<b class='flag-5'>在</b>Beacon應(yīng)用<b class='flag-5'>中</b>的<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>方法</b>

    Python建模算法與應(yīng)用

    上成為理想的腳本語言,特別適用于快速的應(yīng)用程序開發(fā)。本文將詳細(xì)介紹Python在建模算法的應(yīng)用,包括常見的建模算法、Python在建模的優(yōu)勢、
    的頭像 發(fā)表于 07-24 10:41 ?569次閱讀

    PythonAI的應(yīng)用實(shí)例

    Python人工智能(AI)領(lǐng)域的應(yīng)用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓(xùn)練到高級的應(yīng)用部署,Python都扮演著至關(guān)重要的角色。以下將詳細(xì)探討Python
    的頭像 發(fā)表于 07-19 17:16 ?1142次閱讀

    如何實(shí)現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章,你將會看到一些用 Python 實(shí)現(xiàn)文件復(fù)制的特殊
    的頭像 發(fā)表于 07-18 14:53 ?431次閱讀

    python訓(xùn)練出的模型怎么調(diào)用

    Python,訓(xùn)練出的模型可以通過多種方式進(jìn)行調(diào)用。 1. 模型保存與加載 Python
    的頭像 發(fā)表于 07-11 10:15 ?2003次閱讀

    使用Python進(jìn)行自然語言處理

    探討使用Python進(jìn)行自然語言處理(NLP)的廣闊領(lǐng)域時,我們首先需要理解NLP的基本概念、其重要性、PythonNLP的優(yōu)勢,
    的頭像 發(fā)表于 07-04 14:40 ?459次閱讀

    深度學(xué)習(xí)常用Python

    深度學(xué)習(xí)常用Python庫,包括核心庫、可視化工具、深度學(xué)習(xí)框架、自然語言處理庫以及數(shù)據(jù)抓取庫等,并詳細(xì)分析它們的功能和優(yōu)勢。
    的頭像 發(fā)表于 07-03 16:04 ?661次閱讀

    幾種常用單片機(jī)的在線升級能力比較

    電子發(fā)燒友網(wǎng)站提供《幾種常用單片機(jī)的在線升級能力比較.pdf》資料免費(fèi)下載
    發(fā)表于 03-24 09:39 ?2次下載

    java實(shí)現(xiàn)多線程的幾種方式

    Java實(shí)現(xiàn)多線程的幾種方式 多線程是指程序包含了兩個或以上的線程,每個線程都可以并行執(zhí)行不同的任務(wù)或操作。Java的多線程可以提高程序的效率和性能,使得程序可以同時處理多個任務(wù)。
    的頭像 發(fā)表于 03-14 16:55 ?722次閱讀

    消除自激振蕩的常用方法

    消除自激振蕩是指在電路或系統(tǒng)消除自激振蕩的現(xiàn)象,自激振蕩是指電路或系統(tǒng)因?yàn)樽陨淼姆答伓a(chǎn)生不斷增強(qiáng)的振蕩。為了解決這個問題,工程師們提出了一系列的方法,下面將詳細(xì)介紹幾種常用
    的頭像 發(fā)表于 01-16 14:43 ?5370次閱讀

    如何解決Python爬蟲中文亂碼問題?Python爬蟲中文亂碼的解決方法

    如何解決Python爬蟲中文亂碼問題?Python爬蟲中文亂碼的解決方法 Python爬蟲過程
    的頭像 發(fā)表于 01-12 15:11 ?2440次閱讀

    PWM產(chǎn)生的幾種方法總結(jié)

    PWM產(chǎn)生的方法有很多種,小編將常用幾種產(chǎn)生方法作了一個整理以及分類,下面我們來了解一下。
    的頭像 發(fā)表于 01-11 09:15 ?3065次閱讀
    PWM產(chǎn)生的<b class='flag-5'>幾種方法</b>總結(jié)
    主站蜘蛛池模板: 国产性大片黄在线观看在线放| 亚洲香蕉久久| 免费色站| 自拍你懂的| 啪啪网免费视频| 久久作爱视频| 国产亚洲片| 特黄一级| 又黄又粗暴的120秒免费gif视频| 毛片在线播| 日本三级在线播放线观看2021| 亚洲激情视频| 四虎久久精品国产| 性色网站| 日本最好的免费影院| 天天做人人爱夜夜爽2020| 四虎国产精品永免费| 欧美三级中文字幕hd| 三级高清| 四虎永久网址影院| 欧美色视频日本片免费高清| 国内真实下药迷j在线观看| 福利视频欧美| 国产伦子系列视频6| 精品特级毛片| 2021国内精品久久久久影院| 操你啦网站| 天堂网站www天堂资源在线| 国产午夜精品视频| 亚洲一二三区视频| 亚洲欧美日韩动漫| 欧美成人精品一级高清片| 国产3p在线播放| 奇米影视777四色米奇影院| 啪啪免费网| 在线不卡一区| 欧美色天使| 夜夜穞狠狠穞| 天天操一操| 5566精品资源在线播放| 亚洲小便|