该系列将整理机器学习相关知识。这篇博客主要讨论:
1 什么是集成学习?
2 集成学习的总类?
3 随机森林
4 boosting框架
这篇博客紧接着上一篇:决策树,在集成学习中用到较多决策树的知识。

1 什么是集成学习?

俗话说”三个臭皮匠,顶个诸葛亮”。在机器学习中,集成学习也是类似这种思想,意思是多个模型结合起来的作用好于单个模型。这里需要先说一下强可学习和弱科学系的概念

Read More

该系列将整理机器学习相关知识。这篇博客主要讨论:
决策树的基本思想、分类原理
决策树的分类
决策树的剪枝

1 引言

决策树是一种基本的分类回归方法。决策树模型是一种树形结构,构建决策树时根据特征空间对实例进行划分。决策树学习本质上是从训练数据集中归纳出一组分类规则,从另一个角度,决策树的学习是由训练数据集估计条件概率模型。基于特征空间划分的类的条件概率有无穷多个,决策树生成过程就是选择一个条件概率最大的模型。决策树学习通常包括3个步骤:1 特征选择,2 决策树生成,3 决策树修剪。根据特征选择算法的不同,决策树可以分类为ID3,C4.5和CART等。

Read More

该系列将整理机器学习相关知识。这篇博客主要讨论:
1 机器学习基本概念
2 模型评估与选择
3 正则化和交叉验证
4 偏差与方差

1 机器学习基本概念

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.在实际中,经验E通常以数据形式存在,T表示机器学习模型(分类回归强化等),P表示机器学习评价指标。
机器学习可以分为监督学习、非监督学习、半监督学习以及强化学习。监督学习按照目标值和样本空间的关系,又可以分为分类(LR感知器决策树svm集成学习:随机森林、GBDT等)和回归(线性回归SVRCART集成学习:随机森林、GBDT等)。无监督学习常见的有聚类、降维、异常值判定等。

Read More

摘自http://xudongyang.coding.me/math-in-hexo/

在markdown写技术文章时,经常会用到latex渲染公式,markdwon集成了mathjax用于渲染公式。
默认next主题是集成公式的,只需要在每篇博客前面加上mathjax: true即可。

问题描述:

Hexo默认使用hexo-renderer-marked引擎渲染网页,该引擎会把一些特殊的markdown符号转换为相应的html标签,比如在markdown语法中,下划线_代表斜体,会被渲染引擎处理为<em>标签。
因为类Latex格式书写的数学公式下划线 _ 表示下标,有特殊的含义,如果被强制转换为<em>标签,那么MathJax引擎在渲染数学公式的时候就会出错。例如,$x_i$在开始被渲染的时候,处理为$x<em>i</em>$,这样MathJax引擎就认为该公式有语法错误,因为不会渲染。

解决办法

  • 更换markdown公式渲染引擎
1
2
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save

hexo 默认渲染引擎是hexo-renderer-marked, 另一个渲染引擎 hexo-renderer-kramed在默认引擎上修复了一下bug。

  • 修改语义转义规则

更换引擎后,行间公式$$ $$确实可以正常渲染了,但行内公式$ $还是有一些问题,接下来到node_modules\kramed\lib\rules\inline.js下,修改第11行

1
2
//  escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
escape: /^\\([`*\[\]()#$+\-.!_>])/,

修改第20行:

1
2
//  em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

重启hexo

1
2
hexo clean 
hexo g

XGBoost是Extreme Gradient Boosting的简称,Gradient Boosting是论文”Greedy Function Approximation: A Gradient Boosting Machine”中介绍的梯度提升算法。Boosting Tree树数据挖掘和机器学习中常用算法之一,其对输入要求不敏感,效果好,在工业界用的较多。

Traing loss + Regularization

XGBoost用于监督学习问题(分类和回归)。监督学习的常用目标函数是:
通常目标函数包含两部分:训练误差和正则化
$$obj(θ)=L(θ)+Ω(θ)$$
其中L是损失函数,度量模型预测与真实值的误差。常用的损失函数:
预测问题的平方损失函数:
$$L(\theta) = \Sigma_{i}{(y_i-\hat{y_i})}^2 $$
logistic 损失:
$$L(\theta) = \Sigma_{i}[y_i ln(1+e^{-\hat{y_i}}) +(1-y_i) ln(1+e^{\hat{y_i}})] $$
$Ω$是正则化项,度量模型的复杂度,避免过拟合,常用的正则化有L1 和L2正则化。

Read More

新年伊始,一切看起来都那么美好。在一个新的起点,我可以不用对此刻有过多的焦虑,轻装上阵。认真思考走过的路、做过的事,发现优点和不足,接下来的步伐才能迈的更加坚实。2017年对我来说,是特别的一年,或许是因为90后已经正式步入中年人的行列(00后正式走上社会的舞台)。此刻,应该准备一份我温馨的早餐,一边享受美食、一边数数17年的经历。

Read More

最近在写服务端接口(基于php)时,为避免接口完全暴露出来,一种简单的方式就根据客户端传入的参数进行签名验证。比如一种接单的签名就是根据客户端传入的参数,外加一个服务端分配的token,计算一个摘要sign,加在请求参数后面。

Read More