Weka manual 3.6翻译: 16.4 随机化数据

更好的排版点这里

16.4 随机化数据

因为学习算法容易出现按数据到达的顺序来操作,因此随机(也称为“洗牌”)是一种常见的方法来缓解这个问题。特别是重复的随机化,例如,在交叉验证时,有利于产生更逼真的统计数据。

WEKA提供了两种可能性进行数据集随机化:

      使用weka.core.Instances对象的 randomize(Random)方法,weka.core.Instances对象本身包含数据。这个方法需要一个java.util.Random类的实例。 下面解释如何正确地实例化这样一个对象。

      使用 Randomize 过滤器( weka.filters.unsupervised.instance包)。有关如何使用过滤器的更多信息,请参阅第16.5节。

机器学习实验一个非常重要的方面是实验必须是可重复的。在相同的实验设置情况下,后续的实验运行必须得到完全相同的结果。这可能看起来不可思议,但在这种情况下,随机化仍然是可能的。无论如何,随机数生成永远不会返回一个完全随机的数字序列,只会得到一个伪随机的序列。为了实现可重复的伪随机序列, 将使用给定种子 的生成器。使用相同的 种子值 将会得到相同的序列。

java.util.Random(随机数生成器类)中的默认构造函数不应该使用,因为这样构造出来的对象最有可能产生不同的序列。构造函数 Random(long)使用指定的种子值,推荐使用。

为了得到与数据集更相关的数据随机化,可以使用weka.core.Instances类的getRandomNumberGenerator(int)方法。该方法返回一个java.util.Random对象,生成这个对象所使用的的种子是,提供的种子与Instances对象随机选择的一个weka.core.Instance(选择时使用一个随机数发生器,其使用的种子是提供给此方法种子)的字符串表示的哈希值的和。

转载于:https://my.oschina.net/leopardsaga/blog/91914

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值