日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据预处理-采样

發(fā)布時間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据预处理-采样 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

采樣就是按照某種規(guī)則從數(shù)據(jù)集中挑選樣本數(shù)據(jù),大致分為3類:隨機(jī)采樣、系統(tǒng)采樣和分層采樣。

隨機(jī)采樣:就是從數(shù)據(jù)集中隨機(jī)的抽取特定數(shù)量的數(shù)據(jù),分為有放回和無放回兩種。

import randomdef noRepetRandomSampling(dataMat,number):'''無放回采樣:param dataMat: 數(shù)據(jù)集:param number: 采樣數(shù):return: sample 采樣到的數(shù)據(jù)'''try:length = len(dataMat)sample = random.sample(dataMat, number)return sampleexcept Exception as e:print(e)def repetRandomSampling(dataMat,number):'''有放回采樣:param dataMat: 數(shù)據(jù)集:param number: 采樣數(shù):return: sample 采樣到的數(shù)據(jù)'''sample = []i = 0while(i<number):sample.append(dataMat[random.randint(0,len(dataMat)-1)]) #randint的范圍是a<=x<=b,包括上限,注意要減一i+=1return sample

?

系統(tǒng)采樣:一般是無放回抽樣,又稱等距采樣,先將總體數(shù)據(jù)集按順序分成n小份,再從每小份抽取第k個數(shù)據(jù)。

import randomdef systemSampling(dataMat,number):'''系統(tǒng)采樣:param dataMat: 數(shù)據(jù)集:param number: 采樣數(shù):return: sample 采樣到的數(shù)據(jù)'''length=len(dataMat)k=int(length/number)sample=[]i=0if k>0:while (i<number):sample.append(dataMat[0+i*k])i+=1return sampleelse:return repetRandomSampling(dataMat,number)

分層采樣:就是先將數(shù)據(jù)分成若干個類別,再從每一層內(nèi)隨機(jī)抽取一定數(shù)量的樣本,然后將這些樣本組合起來。

?

import randomdef stratifiedSampling(dataMat1,dataMat2,dataMat3,number):'''分層采樣:param dataMat1: 數(shù)據(jù)集1:param dataMat2: 數(shù)據(jù)集2:param dataMat3: 數(shù)據(jù)集3:param number: 采樣數(shù):return: sample 采樣到的數(shù)據(jù)'''subNumber=int(number/3)sample=[]sample.append(noRepetRandomSampling(dataMat1,subNumber))sample.append(noRepetRandomSampling(dataMat2,subNumber))sample.append(noRepetRandomSampling(dataMat3,subNumber))return sample

?測試代碼:

?

dataMat=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] dataMat1=[101,102,103,104,105,106,107,108,109,110] dataMat2=[201,202,203,204,205,206,207,208,209,210] dataMat3=[301,302,303,304,305,306,307,308,309,310]print(repetRandomSampling(dataMat,6)) print(noRepetRandomSampling(dataMat,6)) print(systemSampling(dataMat,6)) print(stratifiedSampling(dataMat1,dataMat2,dataMat3,6))

運行結(jié)果:

E:\Anaconda3\python.exe E:/數(shù)據(jù)采樣.py [8, 1, 8, 13, 19, 3] [14, 8, 5, 1, 17, 16] [1, 4, 7, 10, 13, 16] [[108, 105], [201, 208], [301, 308]]

?

?

總結(jié)

以上是生活随笔為你收集整理的数据预处理-采样的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。