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 floatsdataMat = []                #assume last column is target valuefr = 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 dataMatdef RandomSampling(dataMat,number):try:slice = random.sample(dataMat, number)    return sliceexcept: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/numbersample=[]     i=0if k>0 :       while len(sample)!=number:sample.append(dataMat[0+i*k])i+=1            return sampleelse :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

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

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

  1. 机器学习:Python实现聚类算法(二)之AP算法

    1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者亲和力传播算法,是在2007年的Science杂志上提出的一种新的聚类算法.AP算法的基本思想是将全部数据点都 ...

  2. knn算法python代码iris_KNN算法原理及代码实现

    如何选择K值 首先让我们理解K值到底如何影响KNN算法.如果我们 有很多蓝色点和红色点数据,使用不同K值,最终的分类效果大概如下图.我们发现随着K值的增大,分界面越来越平滑. 一般在机器学习中我们要将 ...

  3. knn算法python代码_KNN 算法原理及代码实现

    在本文中,我们将讨论一种广泛使用的分类技术,称为K最近邻(KNN).我们的重点主要集中在算法如何工作以及输入参数如何影响预测结果. 内容包括: 何时使用KNN算法? KNN算法原理 如何选择K值 KN ...

  4. em算法python代码_EM 算法求解高斯混合模型python实现

    注:本文是对<统计学习方法>EM算法的一个简单总结. 1. 什么是EM算法? 引用书上的话: 概率模型有时既含有观测变量,又含有隐变量或者潜在变量.如果概率模型的变量都是观测变量,可以直接 ...

  5. 【数据结构与算法python】最小生成树算法-Prim算法

    1.引入 本算法涉及到在互联网中网游设计者和网络收音机所面临的问题:信息广播问题,如网游需要让所有玩家获知其他玩家所在的位置,收音机则需要让所有听众获取直播的音频数据 2.算法介绍 (1)单播解法 信 ...

  6. python多维向量聚类_机器学习:Python实现聚类算法(三)之总结

    考虑到学习知识的顺序及效率问题,所以后续的几种聚类方法不再详细讲解原理,也不再写python实现的源代码,只介绍下算法的基本思路,使大家对每种算法有个直观的印象,从而可以更好的理解函数中参数的意义及作 ...

  7. No.03 色散补偿 FSM算法 频域离散采样算法 MATLAB Python 代码实现

    色散系统的频域传输方程如下 G ( z , w ) = e D λ 2 z j 4 π c ω 2 G(z,w)=e^{\frac{D\lambda^2z}{j4\pi c}\omega^2} G(z ...

  8. 机器学习之Python使用KNN算法对鸢尾花进行分类

    文章目录 2. 编写代码,实现对iris数据集的KNN算法分类及预测 要求: 第一步:引入所需库 第二步:划分测试集占20% 第三步:n_neighbors=5 第四步:评价模型的准确率 第五步:使用 ...

  9. 机器学习之Python使用KNN算法进行电影类型预测

    1. 使用KNN进行电影类型预测: 给定训练样本集合如下: 求解:testData={"老友记": [29, 10, 2, "?片"]}. 解题步骤: 1.计算 ...

  10. c4.5算法python实现_算法:用Python实现—最优化算法

    今天给大家分享一下算法,用python来实现最优化算法.废话不多说,直接上代码: 一.二分法 函数详见rres,此代码使该算法运行了两次 def asdf(x): rres=8*x**3-2*x**2 ...

最新文章

  1. MSDN 教程短片 WPF 16(Path路径)
  2. python组成不重复的三位数是多少_超星Python 练习实例1-组成多少个互不相同且无重复的三位数字...
  3. (转载)mysql 用drop和delete方法删除用户的区别
  4. 中标麒麟怎么安装deb包_请教,如何制作中标麒麟系统可用的安装包?
  5. digester java_commons-digester 升级到 commons-digester3 的坑
  6. 系统学习机器学习之神经网络(十) --BAM网络
  7. 【sklearn第三讲】数据预处理
  8. jQuery事件命名空间多事件绑定自定义事件js 命名空间 javascript命名空间
  9. c#简单注册登录利用缓存存储账号密码_“密码代填”实现单点登录,安全吗?...
  10. STM32 ADC工作原理
  11. 塔式太阳能热发电技术在我国发展现状与前景分析
  12. 31个全网最常用python实现(体系学习,学完显著提高代码复用能力)
  13. axios请求下载excel文件以及文件乱码问题
  14. Egret之Eui.Button换肤
  15. Zend Studio 10.6.0正式版注册破解
  16. mysql 支持中文的字符集_MySQL 中文显示乱码
  17. js实现点击上一题和下一题出现对应的题目,
  18. 书摘—你不可不知的心理策略
  19. Error:(63, 24) 错误: 枚举 switch case 标签必须为枚举常量的非限定名称
  20. Laravel 5.8 前瞻 1

热门文章

  1. PAT甲级1020 Tree Traversals:[C++题解]树的遍历、由中序序列和后序序列递归建树
  2. 牛客网7-教417题解
  3. 哪些因素不会限制linux服务器并发,嵌入式技术工程师 经典面试题(含答案)
  4. setwindowshookex回调函数不执行_不一样的“悬停几秒后执行函数”?一个开源工具函数,请注意查收...
  5. iPhonexr安兔兔html5测试,给大家科普下iphonexr苹果手机安兔兔跑分多少分
  6. markdown软件_实用软件推荐|Markdown文本编辑器之Typora
  7. 计算机游戏的作文,玩电脑游戏作文
  8. thinkphp php resque,麻花儿
  9. python无法选择安装位置图_python怎么安装?(教程图解)
  10. 网络情况不稳定 无法连接服务器,提示网络正常无法连接服务器