【机器学习算法-python实现】采样算法的简单实现
2014-07-14 16:05
525 查看
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
******************************************/
相关文章推荐
- 一个简单的语义分析算法:单步算法——Python实现
- 简单的神经元算法实现(python)
- Kmeans 算法理论和Python实现(一)——简单K-Means实现
- python实现最简单的机器学习算法之一-----K-近邻算法
- KNN (K最近邻接算法)python 语言下的简单实现
- 简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现。
- 机器学习算法之KNN算法,python实现
- 【机器学习算法-python实现】採样算法的简单实现
- <基础原理进阶>机器学习算法python实现【1】--分类简谈&KNN算法
- 简单的逆向最大匹配算法实现中文分词(Python)
- kNN算法python实现和简单数字识别的方法
- python实现简单神经网络算法
- 使用Python语言写一个简单的KMP模式匹配算法实现
- 用Python函数实现求取一个正实数平方根的简单算法
- K最近邻结点算法(k-Nearest Neighbor algorithm)KNN——python简单实现
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
- 几个用Python实现的简单算法
- 感知机学习算法的简单实现(Python)
- 史上最简单!冒泡、选择排序的Python实现及算法优化详解
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库