精华内容
下载资源
问答
  • 有放回随机抽样

    2015-08-14 21:46:29
    MATLAB程序,有放回随机抽样,实现随机抽样而且是放回的,每次抽取样本一样。
  • Pytorch不放回随机抽样

    2020-08-05 16:30:21
    放回只能用WeightedRandomSampler,其他都是放回取样 只需将权重都设为1(or相同值) from torch.utils.data import WeightedRandomSampler,DataLoader a = torch.Tensor([1, 2, 3, 4, 5]) dataloader = ...

    WeightedRandomSampler

    不放回只能用WeightedRandomSampler,其他都是放回取样

    只需将权重都设为1(or相同值)

    from torch.utils.data import WeightedRandomSampler,DataLoader
    
    a = torch.Tensor([1, 2, 3, 4, 5])
    dataloader = DataLoader(dataset=a,
                        batch_size=4,  # 组织成batch大小
                        sampler=WeightedRandomSampler(torch.ones(a.size()), 20))
    for i in dataloader:
         print(i)

    结果 

    tensor([1., 5., 1., 2.])
    tensor([5., 1., 5., 2.])
    tensor([1., 4., 2., 2.])
    tensor([4., 5., 4., 3.])
    tensor([5., 2., 2., 1.])

    参数

    Arguments:
            weights (sequence)   : a sequence of weights, not necessary summing up to one
            num_samples (int): number of samples to draw
            replacement (bool): if ``True``, samples are drawn with replacement.
                If not, they are drawn without replacement, which means that when a
                sample index is drawn for a row, it cannot be drawn again for that row.

     

    展开全文
  • 如果不是有放回抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是“偏的”,都是绝对“片面的”(当然这样说可能不对),也就是说每棵树训练出来都是很大的差异的;而随机森林最后分类取决...

    1.为什么要随机抽样训练集?

    • 如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的

    2.为什么要有放回地抽样?

    • 如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是“有偏的”,都是绝对“片面的”(当然这样说可能不对),也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决。
    展开全文
  • XGBoost重要参数subsample(有放回随机抽样

    原理透析

    确认了有多少棵树之后,我们来思考一个问题:建立了众多的树,怎么就能够保证模型整体的效果变强呢?集成的目的是为了模型在样本上能表现出更好的效果,所以对于所有的提升集成算法,每构建一个评估器,集成模型的效果都会比之前更好。也就是随着迭代的进行,模型整体的效果必须要逐渐提升,最后要实现集成模型的效果最优。要实现这个目标,我们可以首先从训练数据上着手。


    我们训练模型之前,必然会有一个巨大的数据集。我们都知道树模型是天生过拟合的模型,并且如果数据量太过巨大,树模型的计算会非常缓慢,因此,我们要对我们的原始数据集进行有放回抽样(bootstrap)。有放回的抽样每次只能抽取一个样本,若我们需要总共N个样本,就需要抽取N次。每次抽取一个样本的过程是独立的,这一次被抽到的样本会被放回数据集中,下一次还可能被抽到,因此抽出的数据集中,可能有一些重复的数据。

    无论是 Bagging 还是 Boosting 的集成算法中,有放回抽样都是防止过拟合,让单一弱分类器变得更轻量的必要操作。实际应用中,每次抽取50%左右的数据就能够有不错的效果了。 sklearn 的随机森林类中也有名为 boostrap的参数来帮助我们控制这种随机有放回抽样。同时,这样做还可以保证集成算法中的每个弱分类器(每棵树)都是不同的模型,基于不同的数据建立的自然是不同的模型,而集成一系列一模一样的弱分类器是没有意义的。在梯度提升树中,我们每一次迭代都要建立一棵新的树,因此我们每次迭代中,都要有放回抽取一个新的训练样本。不过,这并不能保证每次建新树后,集成的效果都比之前要好。因此我们规定,在梯度提升树中,每构建一个评估器,都让模型更加集中于数据集中容易被判错的那些样本。来看看下面的这个过程。

    首先我们有一个巨大的数据集,在建第一棵树时,我们对数据进行初次又放回抽样,然后建模。建模完毕后,我们对模型进行一个评估,然后将模型预测错误的样本反馈给我们的数据集,一次迭代就算完成。紧接着,我们要建立第二棵决策树,于是开始进行第二次又放回抽样。 但这次有放回抽样,和初次的随机有放回抽样就不同了,在这次的抽样中,我们加大了被第一棵树判断错误的样本的权重。 也就是说,被第一棵树判断错误的样本,更有可能被我们抽中。 基于这个有权重的训练集来建模,我们新建的决策树就会更加倾向于这些权重更大的,很容易被判错的样本。 建模完毕之后,我们又将判错的样本反馈给原始数据集。下一次迭代的时候,被判错的样本的权重会更大,新的模型会更加倾向于很难被判断的这些样本。如此反复迭代,越后面建的树,越是之前的树们判错样本上的专家,越专注于攻克那些之前的树们不擅长的数据。对于一个样本而言,它被预测错误的次数越多,被加大权重的次数也就越多。我们相信,只要弱分类器足够强大,随着模型整体不断在被判错的样本上发力,这些样本会渐渐被判断正确。如此就一定程度上实现了我们每新建一棵树模型的效果都会提升的目标。

    参数设置

    参数含义
    xgb.train()
    随机抽样的时候抽取的样本比例,范围 (0,1]
    subsample ,默认 1
    除了让模型更加集中于那些困难样本,采样还会减少样本数量,而从学习曲线来看样本数量越少模型的过拟合会越严重,因为对模型来说,数据量越少模型学习越容易,学到的规则也会越具体越不适用于测试样本。所以subsample 参数通常是在样本量本身很大的时候来调整和使用。
    展开全文
  • Python 随机抽样

    千次阅读 2021-03-17 03:41:31
    8 -*-import numpyimport pandasdata = pandas.read_csv('D:\\PDA\\4.9\\data.csv')#设置随机种子numpy.random.seed(seed=2)#按照个数抽样data.sample(n=10)#按照百分比抽样data.sample(frac=0.02)#是否可放回抽样,...

    # -*- coding: utf-8 -*-

    import numpy

    import pandas

    data = pandas.read_csv(

    'D:\\PDA\\4.9\\data.csv'

    )

    7f69d19a3757

    #设置随机种子

    numpy.random.seed(seed=2)

    #按照个数抽样

    data.sample(n=10)

    7f69d19a3757

    #按照百分比抽样

    data.sample(frac=0.02)

    7f69d19a3757

    #是否可放回抽样,

    #replace=True,可放回,

    #replace=False,不可放回

    data.sample(n=10, replace=True)

    7f69d19a3757

    #典型抽样,分层抽样

    gbr = data.groupby("class")

    gbr.groups

    7f69d19a3757

    typicalNDict = {

    1: 2,

    2: 4,

    3: 6

    }#定义一个字典,从一班级中抽取2个人,二班级中抽取4个人,三班级中抽取6个人

    7f69d19a3757

    def typicalSampling(group, typicalNDict):

    name = group.name

    n = typicalNDict[name]

    return group.sample(n=n)

    result = data.groupby(

    'class', group_keys=False

    ).apply(typicalSampling, typicalNDict)#向量化运算的函数apply

    7f69d19a3757

    typicalFracDict = {

    1: 0.2,

    2: 0.4,

    3: 0.6

    }#定义字典,按照百分比抽样

    def typicalSampling(group, typicalFracDict):

    name = group.name

    frac = typicalFracDict[name]

    return group.sample(frac=frac)

    result = data.groupby(

    'class', group_keys=False

    ).apply(typicalSampling, typicalFracDict)

    idclassscore

    3940145

    45163

    5354195

    2526164

    37381107

    7071175

    8586277

    8182263

    54552121

    6869256

    1314269

    8687293

    5758282

    8485285

    94952103

    96972108

    35362101

    8990286

    4546295

    8081281

    20212138

    6566383

    8384352

    3435366

    67387

    7778377

    8283354

    55563126

    1718358

    6768393

    1011389

    2627364

    61623103

    8889389

    6970396

    01377

    9091391

    9192359

    4849398

    78348

    5253362

    展开全文
  • PYTHON :(无)放回简单随机抽样

    千次阅读 2020-12-04 02:55:37
    模拟概率论中的无放回简单随机抽样问题。问题:从1,2,3,4,5中无放回的抽取三个数字,组成一个三位数,并输出。顺序编程,易理解import random## 1、目标数字集合number_set = [1, 2, 3, 4, 5]## 2、抓取第一个数字...
  • 随机森林有放回抽样

    千次阅读 2019-10-28 23:05:23
    为什么要有放回抽样 如果不放回抽样,每棵树用的样本完全不同,结果是偏的,基学习器之间的相似性小,投票结果差,模型偏差大 如果不抽样,基学习器用所有样本,那么模型的泛化能力弱,基学习器之前相似性太大...
  • 随机森林是一种判别模型,既支持分类问题,也支持回归问题,并且支持多分类问题。它是一种非线性模型,其预测函数为分段常数函数。...Bootstrap抽样的做法是在n个样本的集合中有放回的抽取n个样本形
  • 比如A100个数据, 每次抽100个, 不放回直到抽完. 可以考虑使用randperm函数来生成随机序列, 间接地达到目的. 先生成序列: index=randperm(length(A)); 开始抽样: B=A(index); for i=100:100:1000 C=B(1:i); .......
  • # 无放回抽样:在整数区间[1,1000]中有放回地抽取count次,并统计每次搜索的时间,只需要改变count次数即可实现 import numpy as np # 无放回抽样:在整数区间[1,1000]中有放回地抽取count次 count =1 #随机次数 s...
  • 随机森林为何要有放回抽样

    千次阅读 2020-02-13 23:42:03
    最近的一次面试经历中,被问到过随机森林为什么要用有放回随机采样。平时的自己确实没有去仔细想过这些问题,所以最终惨淡而归。 好了,回到正题吧,随机森林是可以降低模型的方差,这里借鉴了下其它同学的回答...
  • RandomForest 随机森林在上一篇博文 “集成算法— 简介 + 决策树”中,简要介绍了集成算法的3种分类:Boosting、Bagging、Stacking以及它们经常使用的弱分类器—决策树(分类树和回归树)。集成算法可分为序列集成法和...
  • 题目:设一组数据:[11,13,16,19,27,36,43,54,62,75],现在想要从中不放回随机抽样5个数据,每个数据被抽中的概率分别为[0.1,0.05,0.05,0.05,0.05,0.1,0.1,0.1,0.1,0.3]。 抽样过程如下。 根据...
  • R语言sample.int有放回或者无放回采样随机整数实战 目录 R语言sample.int有放回或者无放回采样随机整数实战 #sample.int无放回采样随机整数 #sample.int有放回采样随机整数 #sample.int无放回采样随机...
  • 资源里面一共三种随机抽样的方法,分别是别名表抽样、罐子抽样、直接抽样 使用MATLAB语言实现的,希望对你帮助。
  • Bagging的意思是自助抽样集成,这种方法将训练集分成m个新的训练集,然后在每个新训练集上构建一个模型,各自不相干,最后预测时我们将这个m个模型的结果进行整合,得到最终结果。整合方式就是:分类问题用majority ...
  • Matlab之放回抽样

    2021-07-14 19:48:32
    以前写过一篇不放回的抽样, 详细见matlab之实现不放回随机抽样. 那么如何实现放回的抽样呢? 两个思路: A=[1,2,3]; % 在A中抽取 idx=ceil(rand(1,k)*3); % k为采样次数 B=A[idx]; % 抽样 或者 A=[1,2,3]; % 在A中...
  • 例如,想象一台从训练集中随机选择元组的机器,在有放回的的抽样中,允许机器多次选择同一个元组。 多种自助方法,最常用的是 .632自助法。方法如下:​假设给定的数据集包含d个元组,该数据集有放回抽样d次,...
  • pandas对dataframe的数据行进行随机抽样(Random Sample of Rows):使用sample函数进行数据行随机抽样有放回随机抽样,replacement) 目录 pandas对dataframe的数据行进行随机抽样(Random Sample of Rows...
  • 利用随机数生成函数rand()进行不放回抽样,代码如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> typedef struct { char name[32]; }MAN; MAN ...
  • python实现抽签功能(不放回抽样

    千次阅读 2020-05-25 17:13:21
    使用python中random库中的chioce实现抽签功能(不放回抽样) 代码如下: names = input("请输入参与抽签的人员名单,并用空格键开:").split(' ') import random i = len(names) n = 1 while i >= 1: name1 = ...
  • 原标题:Python面试宝典之基础篇-08题目36:如何使用random模块生成随机数、实现随机乱序和随机抽样?点评:送人头的题目,因为Python标准库中的常用模块应该是Python开发者都比较熟悉的内容,这个问题如果答不...
  • % 重量且无替换的随机采样% O/P : 样本--> 随机样本% I/P : N--> 人口; n--> 样本量; W--> 权重向量 函数样本 = RandSampleWR(N,n,W) %% 检查if(长度(N)<=0)||(n<=0)||(长度(N)<=n) disp('...
  • Bootstrap Sample (有放回抽样)

    万次阅读 2014-12-24 21:59:37
    一个盒子里100个小球(编号1到100),抽样规则是每次从盒子里随机挑选一个小球,记录该球的编号,并将小球放回。重复抽样步骤100次,问抽样得到的不重复小球的个数是多少? 问题分析 首先,问题的答案应该是一个...
  • 和np.random.randint(0,5,3)意思相同,表示从[0,5)之间随机以等概率选取3个数
  • R语言随机抽样及分层抽样

    千次阅读 2021-04-05 15:26:19
    R语言随机抽样及分层抽样问题1、计算层次个数2、固定随机提取3、随机抽样 问题 > dim(ml_data) [1] 201253 11 场景:20万行数据中,抽取每个月中的任意一天的数据,即,2019-9-6/2019-9-7/2019-9-8… 1、计算...
  • %% 不等概率有放回抽样(按权重抽样) % 待抽样的样本 alphabet = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]; % 每个样本对应得抽样概率 prob = [0.0225 0.0225 0.0225 0.0332 0.0332 0.0009 0.0009 0.7979 0....
  • ------ table (5) 两表关联,完成随机抽样 ----- 最终表 use databasename; drop table if exists databasename.Tmp_CiiFcst_hotel_Cii_up_sample_1020_4; create table databasename.Tmp_...
  • 原标题:R语言中实现简单随机抽样抽样的基本概念从总体中抽取样本的方法很多种,比较常用的就是简单随机抽样。从容量为N的总体中随机抽取出容量为n的样本,每个样本被抽取到的可能性相等,则抽到的样本是一个容量...
  • R语言 随机抽样

    万次阅读 2020-04-12 21:28:53
    简单随机抽样是指从总体N个单位中任意抽取n个单位作为样本,使每个可能的样本被抽中的概率相等的一种抽样方式 可通过srswr函数,srswor和sample函数实现 srswr函数和srswor函数在sampling包中,使用前需要先加载...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,879
精华内容 4,351
关键字:

有放回随机抽样

友情链接: paper3.rar