摘要:本文目的 当前spark(1.3版)随机森林实现,没有包括OOB错误评估和变量权重计算。而这两个功能在实际工作中比较常用。OOB错误评估可以代替交叉检验,评估模型整体结果,避免交叉检验带来的计算开销。现在的数据集,变量动辄成百上千,变量权重有助于变量过滤,去掉无用变量,提高计算效率,同时也可以帮助理... 阅读全文
posted @ 2015-05-28 19:39 bourneli 阅读 (2724) 评论 (0) 编辑
摘要:前言 最近阅读了spark mllib(版本:spark 1.3)中Random Forest的实现,发现在分布式的数据结构上实现迭代算法时,有些地方与单机环境不一样。单机上一些直观的操作(递归),在分布式数据上,必须进行优化,否则I/O(网络,磁盘)会消耗大量时间。本文整理spark随机森林实现中的相关技巧,方便后面回顾。 随机森林算法概要 随机森林算法的详细实现和细节,可以参考论文Brei... 阅读全文
posted @ 2015-05-03 14:23 bourneli 阅读 (7473) 评论 (0) 编辑
摘要:本文目的 最近使用spark处理较大的数据时,遇到了分区2G限制的问题(ken)。找到了解决方法,并且在网上收集了一些资料,记录在这里,作为备忘。 问题现象 遇到这个问题时,spark日志会报如下的日志, 片段1 15/04/16 14:13:03 WARN scheduler.TaskSetManager: Lost task 19.0 in stage 6.0 (TID 120, ... 阅读全文
posted @ 2015-04-25 16:22 bourneli 阅读 (8877) 评论 (0) 编辑
摘要:背景 使用spark开发已有几个月。相比于python/hive,scala/spark学习门槛较高。尤其记得刚开时,举步维艰,进展十分缓慢。不过谢天谢地,这段苦涩(bi)的日子过去了。忆苦思甜,为了避免项目组的其他同学走弯路,决定总结和梳理spark的使用经验。 Spark基础 基石RDD ... 阅读全文
posted @ 2015-04-05 16:11 bourneli 阅读 (48895) 评论 (3) 编辑
摘要:本文目的 最近在使用Spark进行数据清理的相关工作,初次使用Spark时,遇到了一些挑(da)战(ken)。感觉需要记录点什么,才对得起自己。下面的内容主要是关于Spark核心—RDD的相关的使用经验和原理介绍,作为个人备忘,也希望对读者有用。 为什么选择Spark 原因如下 代码复用:使用Scala高级语言操作Spark,灵活方便,面向对象,函数编程的语言... 阅读全文
posted @ 2015-03-07 20:36 bourneli 阅读 (6920) 评论 (0) 编辑
摘要:背景 之前所讨论的SVM都是非常严格的hard版本,必须要求每个点都被正确的区分开。但是,实际情况时很少出现这种情况的,因为噪声数据时无法避免的。所以,需要在hard SVM上添加容错机制,使得可以容忍少量噪声数据。 "软"化问题 软化SVM的思路有点类似正规化,在目标函数添加错误累加项,然后加一个系数,控制对错误的容忍度,并且在约束中添加错误容忍度的约束,形式如下: 现... 阅读全文
posted @ 2015-01-11 16:55 bourneli 阅读 (4883) 评论 (0) 编辑
摘要:背景 上一讲从对偶问题的角度描述了SVM问题,但是始终需要计算原始数据feature转换后的数据。这一讲,通过一个kernel(核函数)技巧,可以省去feature转换计算,但是仍然可以利用feature转换的特性。 什么是kernel Kernel的其实就是将向量feature转换与点积运算合并后的运算,如下, 概念上很简单,但是并不是所有的feature转换函数都有kernel的... 阅读全文
posted @ 2015-01-04 22:30 bourneli 阅读 (3672) 评论 (0) 编辑
摘要:背景 上一篇文章总结了linear hard SVM,解法很直观,直接从SVM的定义出发,经过等价变换,转成QP问题求解。这一讲,从另一个角度描述hard SVM的解法,不那么直观,但是可以避免feature转换时的数据计算,这样就可以利用一些很高纬度(甚至是无限维度)的feature转换,得到一些更精细的解。 拉格朗日乘子式 首先,回顾一下SVM问题的定义,如下: 线性约束... 阅读全文
posted @ 2015-01-03 21:33 bourneli 阅读 (2308) 评论 (0) 编辑
摘要:背景 支持向量机(SVM)背后的数学知识比较复杂,之前尝试过在网上搜索一些资料自学,但是效果不佳。所以,在我的数据挖掘工具箱中,一直不会使用SVM这个利器。最近,台大林轩田老师在Coursera上的机器学习技法课程上有很详细的讲授SVM的原理,所以机会难得,一定要好好把握这次机会,将SVM背后的原理梳理清楚并记录下来。这篇文章总结第一讲linear hard SVM的相关内容。 最... 阅读全文
posted @ 2015-01-02 21:21 bourneli 阅读 (3365) 评论 (0) 编辑
摘要:最近学习特征工程(Feature Enginnering)的相关技术,主要包含两块:特征选取(Feature Selection)和特征抓取(Feature Extraction)。这里记录一些要点,作为备忘。特征选取R中的FSelector包实现了一些特征选取的算法,主要分两大类:Algorith... 阅读全文
posted @ 2014-11-18 19:51 bourneli 阅读 (3109) 评论 (0) 编辑