随机抽样

python,pandas之随机抽样

馋奶兔 提交于 2020-02-25 00:40:10
''' 生成抽样数据 ''' import pandas as pd import numpy as np df = pd . DataFrame ( np . arange ( 600 ) . reshape ( 100 , 6 ) , #100行6列 columns = [ 'A' , 'B' , 'C' , 'D' , 'E' , 'F' ] ) print ( df ) #设置随机种子 np . random . seed ( 10 ) #若不设置随机种子,则每次抽样的结果都不一样 #按个数抽样,不放回 df . sample ( n = 10 ) #抽取10个数据,这10个数据肯定不一样,因为是不放回抽样 #按个数抽样,有放回抽样 df . sample ( n = 20 , replace = True ) #抽取20个数据,这20个数据里可能有一样的数据,因为是放回抽样 #按照百分比抽样,不放回 df . sample ( frac = 0.2 ) #抽取20%的数据 #按照百分比抽样,有放回 df . sample ( frac = 0.2 , replace = True ) #抽取20%的数据 print ( np . random . seed ( 10 ) ) 来源: CSDN 作者: 徕胖 链接: https://blog.csdn.net

RANSAC(随机抽样一致算法)

匿名 (未验证) 提交于 2019-12-02 23:59:01
1. 算法介绍 可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法――它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。 最小二乘法不能找到有局外点的直线,原因是最小二乘法尽量去适应包括局外点在内的所有点。 2.概述 RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证: 1.首先我们先随机假设一小组局内点为初始值。然后用此局内点拟合一个模型,此模型适应于假设的局内点,所有的未知参数都能从假设的局内点计算得出。 2.用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点,将局内点扩充。 3.如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。 4.然后,用所有假设的局内点去重新估计模型,因为此模型仅仅是在初始的假设的局内点估计的,后续有扩充后,需要更新。 5.最后,通过估计局内点与模型的错误率来评估模型。 整个这个过程为迭代一次,此过程被重复执行固定的次数,每次产生的模型有两个结局: 1、要么因为局内点太少,还不如上一次的模型,而被舍弃。 2、要么因为比现有的模型更好而被选用。 4.算法优缺点 其实核心就是随机性和假设性。随机性用于减少计算了,那个循环次数就是利用正确数据出现的概率。所谓的假设性,就是说随机抽出来的数据我都认为是正确的

RANSAC(随机抽样一致性)算法在sift中的应用

跟風遠走 提交于 2019-12-02 06:02:12
RANSAC简介 ransac是RANdom SAmple Consensus的简称,它是根据一组包含异常数据的样本数据集,通过迭代的方法计算出数据的数学模型参数,得到有效样本数据的非确定性的算法。它于1981年由 Fischler和Bolles最先提出。 对于RANSAC算法有一个基本的假设:样本中包含正确数据(inliers,符合模型的数据)和异常数据(Outliers,不符合模型的数据),即数据集中含有噪声。这些异常数据可能是由于错误的测量、错误的假设、错误的计算等产生的。同时RANSAC也假设, 给定一组正确的数据,存在可以计算出符合这些数据的模型参数的方法。 RANSAC算法的输入是一组观测数据(往往含有较大的噪声或无效点),一个用于解释观测数据的参数化模型以及一些可信的参数。RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验 1.有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。 2.用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。 3.如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。 4.然后,用所有假设的局内点去重新估计模型(譬如使用最小二乘法),因为它仅仅被初始的假设局内点估计过。 5.最后,通过估计局内点与模型的错误率来评估模型。