前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab自助法实现

matlab自助法实现

作者头像
听城
发布2018-04-27 15:52:44
1.8K0
发布2018-04-27 15:52:44
举报
文章被收录于专栏:杂七杂八杂七杂八杂七杂八

方法:以bootstrap sampling为基础,给定包含m个样本的数据集,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复m次以后,我们就得到了包含m个样本的数据集D’。将D’用作训练集,D\D’用作测试集;这样实际评估的模型与期望评估的模型都使用m个训练样本,而仍有数据总量约1/3的、没在训练集中出现的样本用于测试,这样的测试结果,也成为“包外估计”(out-of bag estimate).

在这个过程中,样本在m次采样中始终不被采到的概率是(1-1/m)m,取极限得到 即通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D’中。

使用条件: (1)在数据集较小,难以有效划分训练/测试集时很有用; (2)可从初始数据集中产生多个不同的训练集,对集成学习等方法很有用。

clear all;
close all;
clc;

data=csvread('irisdata.csv');
[s,t]=zizhu(data);
csvwrite('s.csv',s);
csvwrite('t.csv',t);

function [s,t]=zizhu(data)
    t = data;
    [m,n] = size(data);
    s = zeros(m,n);
    labels = [];
    for i=1:m
        index = UNIDRND(m);
        labels = [labels index];
        s(i,:) = data(index,:);
    end
    kind=unique(labels);
    disp(length(kind))
    t(kind,:) = [];
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.10.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档