日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

上海磐啟微電子有限公司 ? 來源:Python數(shù)據(jù)科學 ? 作者:Python數(shù)據(jù)科學 ? 2021-08-10 15:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

import random

population = 100

data = range(population)

print(random.sample(data,5))

》 4, 19, 82, 45, 41

2.分層抽樣(Stratified Sampling)

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

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

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)

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

用Python可以先給聚類的群體分配聚類ID,然后隨機抽取兩個子群體,再找到相對應(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)

# 隨機選出兩個聚類的 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 個元素抽取一下。一般來說,這種抽樣方法往往比普通隨機抽樣方法更有效。

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

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

population = 100

step = 5

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

print (sample)

5.多級采樣(Multistage sampling)

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

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

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)

# 隨機選出兩個聚類的 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 (random.sample(cluster_associated_elements, sample_size))

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

1.簡單采樣(convenience sampling)

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

2.自愿抽樣(Voluntary Sampling)

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

3.雪球抽樣(Snowball Sampling)

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

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

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

參考:

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

編輯:jq

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

    關(guān)注

    8

    文章

    7349

    瀏覽量

    95056
  • 機器學習
    +關(guān)注

    關(guān)注

    67

    文章

    8567

    瀏覽量

    137257
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4889

    瀏覽量

    90330

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    降壓穩(wěn)壓器展頻實現(xiàn)方法的優(yōu)缺點

    本期為大家?guī)淼氖恰督祲悍€(wěn)壓器展頻實現(xiàn)方法的優(yōu)缺點》,本文介紹芯片設(shè)計人員降壓轉(zhuǎn)換器實現(xiàn)
    的頭像 發(fā)表于 04-22 14:32 ?6759次閱讀
    降壓穩(wěn)壓器<b class='flag-5'>中</b>展頻<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>方法</b>的優(yōu)缺點

    使用PYTHON進行的跨平臺仿真

    如何使用編程語言Python來調(diào)用和控制VirtualLab Fusion的模擬。請查看下面鏈接的文檔,以找到關(guān)于如何設(shè)置和使用Python和VirtualLab Fusion之間的接口的詳細指南,
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python運行VirtualLab Fusion光學仿真

    Fusion的簡單方法本示例,我們將演示如何使用Python腳本運行光學仿真,以向用戶簡要概述這種跨平臺的仿真能力。 用例概覽 文件路徑 用戶可以
    發(fā)表于 03-31 09:39

    [VirtualLab] 使用Python進行跨平臺參數(shù)掃描

    摘要 VirtualLab Fusion允許外部訪問其建模技術(shù)、求解器和結(jié)果。這有助于應(yīng)用其他數(shù)據(jù)處理或優(yōu)化工具來進一步研究光學模擬。本示例,我們演示如何使用Python腳本運行參數(shù)掃描,
    發(fā)表于 03-31 09:36

    Python運行本地Web服務(wù)并實現(xiàn)遠程訪問

    本文介紹使用Python搭建本地Web服務(wù)并結(jié)合 ZeroNews 實現(xiàn)公網(wǎng)訪問。
    的頭像 發(fā)表于 02-06 11:39 ?373次閱讀
    <b class='flag-5'>Python</b>運行本地Web服務(wù)并<b class='flag-5'>實現(xiàn)</b>遠程訪問

    CW32單片機支持哪幾種開發(fā)環(huán)境,比較常用的MDK支持嗎?

    CW32單片機支持哪幾種開發(fā)環(huán)境,比較常用的MDK支持嗎。 若使用MDK開發(fā),是否也需要下載芯片包,導(dǎo)入到MDK?xxx32的庫可以用嗎。
    發(fā)表于 01-26 06:14

    Termux環(huán)境下實現(xiàn)康威生命游戲

    檢查Termux的Python環(huán)境、終端字體兼容性,以及網(wǎng)格尺寸是否適配終端顯示。運行程序后,你會看到滑翔機終端緩慢移動,完美呈現(xiàn)康威生命游戲中“永恒二維世界”的核心特性,按`Ct
    發(fā)表于 12-21 18:36

    Python借助NVIDIA CUDA Tile簡化GPU編程

    模型更高的層級來實現(xiàn)算法。至于如何將計算任務(wù)拆分到各個線程,完全由編譯器和運行時底層自動處理。不僅如此,tile kernels 還能夠屏蔽 Tensor Core 等專用硬件的細節(jié),寫出的代碼還能
    的頭像 發(fā)表于 12-13 10:12 ?1474次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Python</b><b class='flag-5'>中</b>借助NVIDIA CUDA Tile簡化GPU編程

    labview如何實現(xiàn)數(shù)據(jù)的采集與實時預(yù)測

    現(xiàn)有以下問題:labview可以實現(xiàn)數(shù)據(jù)的采集以及調(diào)用python代碼,但如何將這兩項功能集成一個VI文件里,從而實現(xiàn)數(shù)據(jù)的采集與實時預(yù)測
    發(fā)表于 12-03 21:13

    Python調(diào)用API教程

    兩個不同系統(tǒng)之間的信息交互。在這篇文章,我們將詳細介紹Python調(diào)用API的方法和技巧。 一、用Requests庫發(fā)送HTTP請求 使用Python調(diào)用API的第一步是發(fā)送HTTP
    的頭像 發(fā)表于 11-03 09:15 ?1219次閱讀

    使用jQuery的常用方法與返回值分析

    使用jQuery的常用方法與返回值分析 jQuery是一個輕量級的JavaScript庫,旨在簡化HTML文檔遍歷和操作、事件處理以及動畫效果的創(chuàng)建。本文將介紹一些常用的jQuery
    發(fā)表于 10-01 20:18

    【Labview技巧合集】16 labview嵌入python做的界面

    labview嵌入python做的GUI界面 無所不能的labview啊
    發(fā)表于 09-22 05:30

    termux調(diào)試python猜數(shù)字游戲

    用termux做一個猜數(shù)字游戲 下面是Termux創(chuàng)建猜數(shù)字游戲的步驟及完整實現(xiàn)方案,結(jié)合Python實現(xiàn)(最適配Termux環(huán)境
    發(fā)表于 08-29 17:15

    Python字符串逆序有幾種方式,代碼是什么

    對于一個給定的字符串,逆序輸出,這個任務(wù)對于python來說是一種很簡單的操作,畢竟強大的列表和字符串處理的一些列函數(shù)足以應(yīng)付這些問題 了,今天總結(jié)了一下python對于字符串的逆序輸出的
    的頭像 發(fā)表于 08-28 14:44 ?1321次閱讀

    基礎(chǔ)篇3:掌握Python的條件語句與循環(huán)

    Python編程語言中,條件語句和循環(huán)是構(gòu)成復(fù)雜邏輯和數(shù)據(jù)處理的基石。本篇基礎(chǔ)教程將幫助您深入了解Python的條件語句和循環(huán)結(jié)構(gòu),讓您能夠更好地控制程序流程。 條件語句 條件語句
    發(fā)表于 07-03 16:13
    南皮县| 南丹县| 定南县| 彝良县| 教育| 阿尔山市| 秭归县| 桂林市| 金阳县| 温泉县| 隆化县| 青神县| 宜黄县| 永寿县| 林州市| 察哈| 大丰市| 富平县| 建昌县| 周宁县| 乐至县| 洪洞县| 集贤县| 信丰县| 慈利县| 黄平县| 萝北县| 石河子市| 潼南县| 合作市| 哈密市| 瓦房店市| 南漳县| 宜兰市| 日喀则市| 潮州市| 济阳县| 婺源县| 仙居县| 泰顺县| 乌拉特中旗|