【机器学习算法-python实现】采样算法的简单实现

简介: 1.背景    采样算法是机器学习中比较常用,也比较容易实现的(出去分层采样)。常用的采样算法有以下几种(来自百度知道):   一、单纯随机抽样(simple random sampling)将调查总体全部观察单位编号,再用抽签法或随机数字表随机抽取部分观察单位组成样本。优点:操作简单,均数、率及相应的标准误计算简单。 缺点:总体较大时,难以一一编号。二、系统抽样(sy

1.背景

    采样算法是机器学习中比较常用,也比较容易实现的(出去分层采样)。常用的采样算法有以下几种(来自百度知道):
   
一、单纯随机抽样(simple random sampling)

将调查总体全部观察单位编号,再用抽签法或随机数字表随机抽取部分观察单位组成样本。

优点:操作简单,均数、率及相应的标准误计算简单。 

缺点:总体较大时,难以一一编号。

二、系统抽样(systematic sampling搜索)

又称机械抽样、等距抽样,即先将总体的观察单位按某一顺序号分成n个部分,再从第一部分随机抽取第k号观察单位,依次用相等间距,从每一部分各抽取一个观察单位组成样本。

优点:易于理解、简便易行。

缺点:总体有周期或增减趋势时,易产生偏性。

三、整群抽样(cluster sampling)

总体分群,再随机抽取几个群组成样本,群内全部调查。

优点:便于组织、节省经费。

缺点:抽样误差大于单纯随机抽样。

四、分层抽样(stratified sampling)

先按对观察指标影响较大的某种特征,将总体分为若干个类别,再从每一层内随机抽取一定数量的观察单位,合起来组成样本。有按比例分配和最优分配两种方案。

优点:样本代表性好,抽样误差减少。

以上四种基本抽样方法都属单阶段抽样,实际应用中常根据实际情况将整个抽样过程分为若干阶段来进行,称为多阶段抽样。

各种抽样方法抽样误差一般是:整群抽样≥单纯随机抽样≥系统抽样≥分层抽样

2.代码实现

    
    无放回抽样:随机抽样(RandomSampling) 和系统抽样(SystematicSampling)。
    有放回抽样:随机抽样(RepetitionRandomSampling)。

'''
Sampling archive

@author: Garvin Li
'''
import random
def loadDataSet(fileName):      #general function to parse tab -delimited floats
    dataMat = []                #assume last column is target value
    fr = open(fileName)
    for line in fr.readlines():
        curLine = line.strip().split('\t')
#         fltLine = map(float,curLine) #map all elements to float()
        dataMat.append(curLine)
    return dataMat

def RandomSampling(dataMat,number):
    try:
         slice = random.sample(dataMat, number)    
         return slice
    except:
         print 'sample larger than population'

def RepetitionRandomSampling(dataMat,number):    
    sample=[]
    for i in range(number):
         sample.append(dataMat[random.randint(0,len(dataMat)-1)])
    return sample
def SystematicSampling(dataMat,number):    
    
       length=len(dataMat)
       k=length/number
       sample=[]     
       i=0
       if k>0 :       
         while len(sample)!=number:
            sample.append(dataMat[0+i*k])
            i+=1            
         return sample
       else :
         return RandomSampling(dataMat,number)   
       
            
if __name__=='__main__':
   dataMat=loadDataSet('/Users/hakuri/Desktop/data1.txt')
#    print RandomSampling(dataMat,7)    
#    RepetitionSampling(dataMat,4)
   print SystematicSampling(dataMat,9)

测试结果就不单独上图了,测试集和代码都提供下载,有兴趣可以去看一下。
过一段把高级聚类算法写好,实现一下分层抽样。

下载地址:点击我


/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/



目录
相关文章
|
25天前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
1月前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
107 5
|
2月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
172 26
|
1月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)
|
2月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
225 3
|
2月前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
274 4
|
2月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
402 4
|
2月前
|
算法 机器人 定位技术
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
137 4
|
2月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
219 3
|
2月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
154 0

热门文章

最新文章

推荐镜像

更多