Weka加载大数据量内存不足的解决办法

150M的训练集用WEKA做起来应该比较困难有这么几个办法:

1 增加内存。 其实WEKA不光可以用物理内存,还可以占用虚拟内存。把JAVA的可用内存设置成2G的话,如果机器的物理内存只有1G,操作系统是会在需要时自动在硬盘上划分一块出来作为虚拟内存的。不过这时候一般会处理得比较慢,因此不推荐这个方法。

2 抽样。从训练集中随机抽取一部分数据来作训练。在二分类的时候,一般样本数量达到几千个时就能预测得比较准确了。如果几千个样本还不怎么准,那要么是所用的分类算法不适合,要么数据中的输入变量根本无法预测目标变量。
我试过了KDD 99中“kddcup.data_10_percent” 数据集,接近50万条数据,做成ARFF文件后有70多M。在Explorer中10来秒就载入了,抽取1%的样本仅花了几秒钟。

3 增量学习(Incremental Learning)。所谓增量学习简单的说就是读取一条训练数据就修正一下模型,而不是把全部训练数据都读入之后才得到模型。在WEKA KnowledgeFlow 中支持增量学习算法。目前WEKA中有5种算法可以在这种方式下工作:NaiveBayesUpdateable, IB1, IBk, LWR。另外RacedIncrementalLogitBoost可以让任意的基于回归的算法来增量地学习分类任务。

要注意的是,有时候数据不是ARFF格式的,而是C45,CSV等格式。这时手动把数据转换成ARFF,会节省很多内存,并且数据集中的错误更容易被检测出来。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值