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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

抽樣的幾種常用方法以及在Python中是如何實現的

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

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

抽樣是統計學、機器學習中非常重要,也是經常用到的方法,因為大多時候使用全量數據是不現實的,或者根本無法取到。所以我們需要抽樣,比如在推斷性統計中,我們會經常通過采樣的樣本數據來推斷估計總體的樣本。

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

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

非概率抽樣:根據非隨機的標準選擇樣本,并不是每個樣本都有機會被選中。

概率抽樣技術1.隨機抽樣(Random Sampling)

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

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

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

import random

population = 100

data = range(population)

print(random.sample(data,5))

》 4, 19, 82, 45, 41

2.分層抽樣(Stratified Sampling)

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

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

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

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)

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

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

import numpy as np

clusters=5

pop_size = 100

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

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

# 隨機選出兩個聚類的 ID

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

# 提取聚類 ID 對應的樣本

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

# 提取樣本序號對應的樣本值

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

print (cluster_associated_elements)

4.系統抽樣(Systematic Sampling)

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

下圖是按順序對每 9 個元素進行一次采樣,然后重復下去。

用Python實現的話可以直接在循環體中設置step即可。

population = 100

step = 5

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

print (sample)

5.多級采樣(Multistage sampling)

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

Python代碼復用了上面聚類抽樣,只是在最后一步再進行隨機抽樣即可。

import numpy as np

clusters=5

pop_size = 100

sample_clusters=2

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

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

# 隨機選出兩個聚類的 ID

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

# 提取聚類 ID 對應的樣本

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

# 提取樣本序號對應的樣本值

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

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

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

1.簡單采樣(convenience sampling)

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

2.自愿抽樣(Voluntary Sampling)

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

3.雪球抽樣(Snowball Sampling)

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

總結以上就是8種常用抽樣方法,平時工作中比較常用的還是概率類抽樣方法,因為沒有隨機性我們是無法通過統計學和編程完成自動化操作的。

比如在信貸的風控樣本設計時,就需要從樣本窗口通過概率進行抽樣。因為采樣的質量基本就決定了你模型的上限了,所以在抽樣時會考慮很多問題,如樣本數量、是否有顯著性、樣本穿越等等。在這時,一個良好的抽樣方法是至關重要的。

參考:

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

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7232

    瀏覽量

    90708
  • 機器學習
    +關注

    關注

    66

    文章

    8478

    瀏覽量

    133803
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85794

原文標題:基于 Python 的 8 種常用抽樣方法

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

收藏 0人收藏

    評論

    相關推薦

    Python嵌入式系統的應用場景

    你想把你的職業生涯提升到一個新的水平?Python嵌入式系統中正在成為一股不可缺少的新力量。盡管傳統上嵌入式開發更多地依賴于C和C++語言,Python的優勢在于其簡潔的語法、豐富的庫和快速的開發周期,這使得它在某些嵌入式場景
    的頭像 發表于 03-19 14:10 ?361次閱讀

    使用Python實現xgboost教程

    使用Python實現XGBoost模型通常涉及以下幾個步驟:數據準備、模型訓練、模型評估和模型預測。以下是一個詳細的教程,指導你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發表于 01-19 11:21 ?945次閱讀

    Pythondict支持多個key的方法

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

    邏輯異或運算符Python的用法

    ,Python的 ^ 符號實際上是一個按位異或運算符,用于對整數的二進制表示進行異或操作。 盡管如此,我們仍然可以通過一些方法實現邏輯異或的功能,即當兩個布爾值不同時為真,相同時為
    的頭像 發表于 11-19 09:46 ?618次閱讀

    Python多線程和多進程的區別

    Python作為一種高級編程語言,提供了多種并發編程的方式,其中多線程與多進程是最常見的兩種方式之一。本文中,我們將探討Python多線程與多進程的概念、區別
    的頭像 發表于 10-23 11:48 ?810次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>中</b>多線程和多進程的區別

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

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

    CC2640Beacon應用實現方法

    電子發燒友網站提供《CC2640Beacon應用實現方法.pdf》資料免費下載
    發表于 09-10 14:30 ?0次下載
    CC2640<b class='flag-5'>在</b>Beacon應用<b class='flag-5'>中</b>的<b class='flag-5'>實現</b><b class='flag-5'>方法</b>

    Python建模算法與應用

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

    PythonAI的應用實例

    Python人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python
    的頭像 發表于 07-19 17:16 ?2060次閱讀

    如何實現Python復制文件操作

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

    基于Python的深度學習人臉識別方法

    基于Python的深度學習人臉識別方法是一個涉及多個技術領域的復雜話題,包括計算機視覺、深度學習、以及圖像處理等。在這里,我將概述一個基本的流程,包括數據準備、模型選擇、訓練過程、以及
    的頭像 發表于 07-14 11:52 ?1454次閱讀

    python訓練出的模型怎么調用

    Python,訓練出的模型可以通過多種方式進行調用。 1. 模型保存與加載 Python
    的頭像 發表于 07-11 10:15 ?3057次閱讀

    使用Python進行自然語言處理

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

    深度學習常用Python

    深度學習常用Python庫,包括核心庫、可視化工具、深度學習框架、自然語言處理庫以及數據抓取庫等,并詳細分析它們的功能和優勢。
    的頭像 發表于 07-03 16:04 ?951次閱讀

    直流電動機降低轉速常用幾種方法

    直流電動機是一種常見的電動機,廣泛應用于工業、交通、航空等領域。實際應用,有時需要根據需要調整直流電動機的轉速。本文將詳細介紹降低直流電動機轉速的幾種常用
    的頭像 發表于 06-12 15:45 ?2765次閱讀
    主站蜘蛛池模板: 欧美另类图片亚洲偷 | 男人的亚洲天堂 | 久久婷婷色 | 丁香五月欧美成人 | 久久久精品免费视频 | 狠狠色综合网 | 窝窝视频成人影院午夜在线 | 亚洲资源在线观看 | 亚洲第一成网站 | 日韩三级免费观看 | 五月开心六月伊人色婷婷 | 操操操天天操 | 日韩在线视频免费观看 | 欧美性满足hd1819 | 在线天堂bt中文www在线 | 免费成人黄色 | hd性欧美 | 91啦视频在线 | 色视频在线播放 | 五月丁香六月综合缴清无码 | 推倒都市极品贵妇 | 色综合欧美综合天天综合 | 在线看片成人免费视频 | 天天拍夜夜添久久精品中文 | 日本大片在线看 | 日本免费不卡视频一区二区三区 | 国产高清美女一级a毛片 | 天天做人人爱夜夜爽2020 | 丁香六月纪婷婷激情综合 | 天天拍夜夜添久久精品免费 | 日韩黄网| 亚欧美色 | 亚洲人的天堂男人爽爽爽 | 亚洲一级影院 | 5g成人影院 | 亚洲乱亚洲乱妇41p 亚洲乱亚洲乱妇41p国产成人 | 最新黄色大片 | 四虎影院网站 | 欧美草比 | 婷婷亚洲综合一区二区 | 性欧美1819hd|

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品