自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

转载 Hadoop中的数据倾斜整理

最近几次被问到关于数据倾斜的问题,这里找了些资料也结合一些自己的理解.     在并行计算中我们总希望分配的每一个task 都能以差不多的粒度来切分并且完成时间相差不大,但是集群中可能硬件不同,应用的类型不同和切分的数据大小不一致总会导致有部分任务极大的拖慢了整个任务的完成时间,硬件不同就不说了,应用的类型不同其中就比如page rank 或者data mining 里面一些计算,它的每条

2017-08-07 11:03:45 691

转载 Hadoop相关知识整理

主要参考以下四篇博客内容:http://blessht.iteye.com/blog/2095675http://blog.csdn.net/lifuxiangcaohui/article/details/23337905http://www.cnblogs.com/voidy/p/4162395.htmlhttp://blog.csdn.net/yclzh0522/a

2017-08-02 21:39:14 617

转载 大白话解析模拟退火算法

一. 爬山算法 ( Hill Climbing )         介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。         爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜

2017-07-20 16:35:26 775

转载 内存泄露如何调试

一、动态分配、回收内存是C/C++编程语言一个最强的特点,但是中国哲学家孙(Sun Tzu,我不知道是谁?那位知道?) 指出,最强的同时也是最弱的。这句话对C/C++应用来说非常正确,在内存处理出错的地方通常就是BUGS产生的地方。一个最敏感和难检测的BUG就是内 存泄漏-没有把前边分配的内存成功释放,一个小的内存泄漏可能不需要太注意,但是程序泄漏大块内存,或者渐增式的泄漏内存可能引起的现象是

2017-07-20 16:21:12 1287

转载 梯度下降(Gradient Descent)小结

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。1. 梯度    在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂

2017-07-20 16:04:05 1118

转载 C++常用字符串分割方法

字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可以使用stl提供的封装进行实现或者通过c函数strtok()函数实现。1、通过stl实现涉及到string类的两个函数find和substr: 1、find函数 原型:size_t find ( const string& str, size_t pos = 0 ) const; 功能:查找子字符串

2017-07-11 16:21:06 1099

原创 特征组合相关资源总结

组合特征较多时候是用在推荐系统或者CTR预估中,下面几篇博客大概讲解了其使用,但是并没有细化每步的具体实现。https://www.qcloud.com/community/article/701728http://www.jianshu.com/p/7445a7b94b45https://www.zhihu.com/question/31989952/answer/54184

2017-07-10 11:23:56 685

原创 机器学习性能评估指标资料汇总

相关资料:http://blog.csdn.net/mousever/article/details/46944265http://blog.csdn.net/l18930738887/article/details/50629409http://www.cnblogs.com/zhaokui/p/ml-metric.htmlhttp://blog.csdn.net/a

2017-07-09 12:06:29 398

原创 RF,GBDT,xgboost调参方法整理

1、RF调参方法参考:http://wakemeup.space/?p=187http://blog.csdn.net/y0367/article/details/51501780http://blog.csdn.net/sun_shengyun/article/details/54618121持续更新。。。

2017-07-04 18:41:19 14819

转载 层次遍历二叉树-三种不同的方法

给定一棵二叉树,要求进行分层遍历,每层的节点值单独打印一行,下图给出事例结构:对此二叉树遍历的结果应该是:1,2 , 34, 5, 67, 8第一种方法,就是利用递归的方法,按层进行打印,我们把根节点当做第0层,之后层次依次增加,如果我们想打印第二层怎么办呢,利用递归的代码如下:int print_at_level(Tree T,

2017-06-29 21:51:53 1052

转载 N问GBDT(1-12答案)

1. 怎样设置单棵树的停止生长条件?答:A. 节点分裂时的最小样本数B. 最大深度C. 最多叶子节点数D. loss满足约束条件2. 如何评估特征的权重大小?答:a. 通过计算每个特征在训练集下的信息增益,最后计算每个特征信息增益与所有特征信息增益之和的比例为权重值。b. 借鉴投票机制。用相同的gbdt参数对w每个特征训练出一个模型,然后在该模型下计算每

2017-06-29 15:26:07 2426

原创 GBDT算法整理

第一篇Gradient Boost Decision Tree:   GBDT是一个应用很广泛的算法,可以用来做分类、回归。在很多的数据上都有不错的效果。GBDT这个算法还有一些其他的名字,比如说MART(Multiple Additive Regression Tree),GBRT(Gradient Boost Regression Tree),Tree Net等,其实它们都

2017-06-29 15:23:30 15786 3

转载 Adaboost 算法总结

Adaboost 算法实例解析1 Adaboost的原理1.1 Adaboost基本介绍       AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,由Yoav Freund和Robert Schapire在1995年提出。Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这

2017-06-22 18:11:17 1096

原创 STL中容器相等(equality)和等价(equivalence)的区别

STL中相等(equality)与等价(equivalence)的区别1.相等(equality) 【无序数据】相等关系是以operator ==为基础的。a与b相等: a == b 例子:find,count,count_if等等大部分函数2.等价(equivalence) 【已序数据】等价关系是以“在已排序的空间中对象值得相对顺序”为基础的。也就是说,如果两个值中任何一

2017-06-10 22:26:13 1936

原创 string与int转换

比较常用的转换方式:string转int:例“123”转换为123:for(int i=0;i{    num=num*10+(str[i]-'0');//如果想转换为其它进制的数,则这里乘对应的进制进制就好。比如转换为16进制,则为*16。}int转string:例将123转换为“

2017-06-10 21:07:53 1586

转载 卷积神经网络

卷积神经网络自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN的理解和使用,特写此博文,以其与人交流,互有增益。正文之前,先说几点自己对于CNN的感触。先明确一点就是,Deep Learning是全部深度学习算法的总称,

2017-06-08 22:56:07 478

原创 sort与qsort排序方法整理

qsort排序:一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; //从小到大} qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排

2017-06-08 17:37:34 449

转载 C++双重检查锁定模式(DCLP)的风险

多线程其实就是指两个任务一前一后或者同时发生。1 简介当你在网上搜索设计模式的相关资料时,你一定会找到最常被提及的一个模式:单例模式(Singleton)。然而,当你尝试在项目中使用单例模式时,一定会遇到一个很重要的限制:若使用传统的实现方法(我们会在下文解释如何实现),单例模式是非线程安全的。程序员们为了解决这一问题付出了很多努力,其中最流行的一种解决方法是使用一个新的设

2017-06-07 10:22:34 799

原创 C++11中的delete关键字

C++11 中,可在想要 “禁止使用” 的特殊成员函数声明后加 “= delete”(当然也可以声明为私有函数或者保护函数),而需要保留的加 "= default" 或者不采取操作class LeafOfTree{public:  LeafOfTree() = default;  ~LeafOfTree() = default;  LeafOfTree(const LeafO

2017-06-07 10:20:51 6212

转载 C++的单例模式与线程安全单例模式(懒汉/饿汉)

1 教科书里的单例模式  我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。class singleton{protected: singleton(){}private:

2017-06-07 10:19:19 435

原创 SVM相关知识总结

一、相关理解1. 为什么一定要研究线性分类?首先说一下为什么对数据集一定要说线性可分或线性不可分,难道不可以非线性分开吗?想要非线性分开当然可以,实际上SVM只是把原来线性不可分的数据点映射到一个新的空间,转换为在新空间中线性可分数据来进行分类的。如果返回到原来数据的空间中,其实还是非线性分开的。但是,那为什么不直接在原数据空间中进行非线性分开,而是非要转到新的空间进行线性分开

2017-06-06 16:57:33 410

转载 assert()函数用法总结

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression );  assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badpt

2017-06-04 21:35:19 1561

转载 关于private继承

在C++的类中有许多种继承方式,而我们在软件设计和编写代码时用得最多的就是public继承,我们很少接触到private继承。但是我们在设计时真的有思考过什么时候应该用public继承,什么时候不该使用public继承,什么时候应该想想那些经常被我们遗忘的知识,让我们从它们被遗忘的角落里重拾它的光芒。例如private继承。As we all know,public继承是塑模出一种is

2017-06-04 17:05:50 3121

转载 C++之RAII惯用法

C++中的RAII全称是“Resource acquisition is initialization”,直译为“资源获取就是初始化”。但是这翻译并没有显示出这个惯用法的真正内涵。RAII的好处在于它提供了一种资源自动管理的方式,当产生异常、回滚等现象时,RAII可以正确地释放掉资源。举个常见的例子:void Func(){ FILE *fp; char* filename =

2017-06-03 21:56:40 659

转载 常见分类算法优缺点

1决策树(Decision Trees)的优缺点决策树的优点:一、           决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。二、           对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。三、           能够同时处理数据型和常规型属性。其他的技术往

2017-06-02 15:31:57 2346

转载 机器学习中常见分类器的应用场景

正好14年的时候有人做过一个实验[1],比较在不同数据集上(121个),不同的分类器(179个)的实际效果。论文题为:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?实验时间有点早,我尝试着结合我自己的理解、一些最近的实验,来谈一谈吧。主要针对分类器(Classifier)。

2017-06-02 15:22:54 15019 1

转载 多专家模型(mixture of experts)

Mixtures of experts本小节介绍多专家模型(the mixture of experts model),该模型的思想是训练多个神经网络(也就是多个专家),每个神经网络(专家)被指定(specialize)应用于数据集的不同部分。这就是说,数据集可能有着多个不同的来源(different regimes,意思是说数据集中的数据的产生方式不同,这里我翻译成了“不同的来源”),不

2017-06-02 15:09:29 26783

转载 模型融合(stacking&blending)

参考文献链接英文版本 http://mlwave.com/kaggle-ensembling-guide/ 这里写链接内容这个是上面英文翻译过来的汉语翻译版本 kaggle比赛集成指南 http://m.blog.csdn.net/article/details?id=53054686搜狗比赛第五名的stacking思路 http://prozh

2017-06-02 14:56:59 14478

转载 机器学习算法中GBDT与Adaboost的区别与联系

一、Adaboost原理参见博客http://blog.csdn.net/dark_scope/article/details/14103983二、GBDT与Adaboost的区别与联系(GBDT做分类时与LR的区别)https://www.zhihu.com/question/54626685?from=profile_question_card

2017-06-02 11:19:26 4001

转载 机器学习算法集锦:从贝叶斯到深度学习及各自优缺点

目录正则化算法(Regularization Algorithms)集成算法(Ensemble Algorithms)决策树算法(Decision Tree Algorithm)回归(Regression)人工神经网络(Artificial Neural Network)深度学习(Deep Learning)支持向量机(Support V

2017-06-01 21:07:46 498

转载 C++中的static关键字

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:#includeusing namespac

2017-06-01 11:47:36 459 1

转载 C++中const用法

C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。1.const 修饰成员变量  1 #include 2 using namespace std; 3 int main(){ 4 int a1=3; ///non-cons

2017-06-01 11:04:27 225

转载 C++中智能指针auto_ptr

1. 智能指针auto_ptr的引入auto_ptr是C++标准库中的智能指针模板类,头文件auto_ptr的出现,主要是为了解决“有异常抛出时发生内存泄漏”的问题。如下的简单代码是这类问题的一个简单示例。int* p = new int(100);try{ doSomething(); cout endl; delete p;}cat

2017-06-01 09:36:41 266

转载 C++中的explicit关键字

在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性

2017-06-01 09:07:55 227

转载 C++中Template

模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。函数模板在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下:void swap(int&a , int& b) { int temp = a;

2017-05-31 22:31:54 342

转载 C++中i++和++i的区别

答:理论上++i更快,实际与编译器优化有关,通常几乎无差别。 i++实现的代码为://i++实现代码为: int operator++(int) { int temp = *this;

2017-05-30 22:11:03 27499 5

转载 关于C++中的友元函数的总结

1.友元函数的简单介绍1.1为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。实际上具体大概有下面两种情况需要使用友元

2017-05-25 23:06:42 371

转载 C++中为什么构造函数不能为虚函数原因

1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。2. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身

2017-05-25 23:05:27 857

转载 C++析构函数为什么要为虚函数

1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。  a.第一段代码#includeusing namespace std;class ClxBase{public: ClxBase() {}; ~ClxBase() {cout << "Output from the destruc

2017-05-25 23:04:17 427

转载 C++中虚函数和纯虚函数的区别

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:class A { public: virtual

2017-05-25 23:02:19 328

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除