最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)8種常用抽樣方法

 更新時間:2021年06月27日 11:30:11   作者:Python數(shù)據科學  
抽樣是統(tǒng)計學、機器學習中非常重要,本文就用Python實現(xiàn)抽樣方法,主要介紹了八種方法,感興趣的小伙伴們可以參考一下

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

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

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

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

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

概率抽樣技術

1.隨機抽樣(Random Sampling)

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

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

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)

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

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

Python中我們通過train_test_split設置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,然后隨機抽取兩個子群體,再找到相對應的樣本值即可,如下。

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.系統(tǒng)抽樣(Systematic Sampling)

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

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

Python實現(xiàn)的話可以直接在循環(huán)體中設置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))

非概率抽樣技術

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

1.簡單采樣(convenience sampling)

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

2.自愿抽樣(Voluntary Sampling)

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

3.雪球抽樣(Snowball Sampling)

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

總結

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

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

到此這篇關于Python實現(xiàn)8種常用抽樣方法的文章就介紹到這了,更多相關Python 抽樣方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python 信息同時輸出到控制臺與文件的實例講解

    python 信息同時輸出到控制臺與文件的實例講解

    今天小編就為大家分享一篇python 信息同時輸出到控制臺與文件的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 基于Python編寫詞云軟件并顯示分詞結果

    基于Python編寫詞云軟件并顯示分詞結果

    這篇文章主要為大家詳細介紹了如何基于Python編寫一個簡單的詞云制作軟件并顯示分詞結果,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-10-10
  • python單例模式之selenium driver實現(xiàn)單例

    python單例模式之selenium driver實現(xiàn)單例

    這篇文章主要介紹了python單例模式之selenium driver實現(xiàn)單例,使用裝飾器實現(xiàn)單例,文章基于python的相關資料實現(xiàn)主題,具有一的的參考價值,需要的朋友可以參考一下
    2022-03-03
  • Python安全獲取域管理員權限幾種方式操作示例

    Python安全獲取域管理員權限幾種方式操作示例

    在不考慮直接攻擊域控的情況下,如何快速獲取域管理員權限呢?本文分享幾種常見的獲取域管理員權限的方式,有需要的朋友可以借鑒參考下
    2021-10-10
  • Python實現(xiàn)購物評論文本情感分析操作【基于中文文本挖掘庫snownlp】

    Python實現(xiàn)購物評論文本情感分析操作【基于中文文本挖掘庫snownlp】

    這篇文章主要介紹了Python實現(xiàn)購物評論文本情感分析操作,結合實例形式分析了Python使用中文文本挖掘庫snownlp操作中文文本進行感情分析的相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2018-08-08
  • 基于scrapy的redis安裝和配置方法

    基于scrapy的redis安裝和配置方法

    今天小編就為大家分享一篇基于scrapy的redis安裝和配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python?pydash庫處理大規(guī)模數(shù)據集執(zhí)行復雜操作

    Python?pydash庫處理大規(guī)模數(shù)據集執(zhí)行復雜操作

    在數(shù)據處理和分析領域,Python一直是一種強大的編程語言,然而,在處理大規(guī)模數(shù)據集和執(zhí)行復雜操作時,有時候需要更高效的工具,在本文中,我們將深入探討pydash庫,這是一個專注于提高Python代碼性能的工具
    2023-12-12
  • 用Django寫天氣預報查詢網站

    用Django寫天氣預報查詢網站

    今天小編就為大家分享一篇關于用Django寫天氣預報查詢網站的文章,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Pandas讀取行列數(shù)據最全方法

    Pandas讀取行列數(shù)據最全方法

    本文主要介紹了Pandas讀取行列數(shù)據最全方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • python去重,一個由dict組成的list的去重示例

    python去重,一個由dict組成的list的去重示例

    今天小編就為大家分享一篇python去重,一個由dict組成的list的去重示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

唐海县| 九寨沟县| 吴堡县| 上高县| 阿克苏市| 四子王旗| 宜君县| 九龙城区| 留坝县| 长顺县| 怀宁县| 寻甸| 奉节县| 福州市| 区。| 从江县| 祁阳县| 芷江| 河南省| 石嘴山市| 密山市| 佛教| 新沂市| 铁岭市| 霍邱县| 金湖县| 湘乡市| 县级市| 灯塔市| 中宁县| 广安市| 噶尔县| 饶平县| 桦甸市| 阿尔山市| 海原县| 益阳市| 河西区| 轮台县| 鸡东县| 安多县|