文章分类 - DataMining
数据挖掘、自然语言处理、人工智能
golang调用tensor flow模型
摘要:1. 安装Go版TensorFlow TensorFlow 提供了一个 Go API,该 API 特别适合加载用 Python 创建的模型并在 Go 应用中运行这些模型。 安装TensorFlow C库 下载地址 TensorFlow C 库网址 Linux Linux CPU only https
阅读全文
调参工程师的日常
摘要:近期调参感受: 在实际项目中数据和特征对最终的效果贡献是最大的,所以要花时间打造你的数据流,花时间多想一些特征,特征要算准。 word2vec、FFM、XgBoost这些算法之所以能得到业界公认,是因为他们在各种数据集上都表现良好,而且对参数不太敏感。 试验总结: FFM优于FM,FM优于LR。 X
阅读全文
FFM代码实现
摘要:上一篇我们讲了《FFM原理及公式推导》,现在来编码实现一下。 把写代码所需要所有公式都列出来,各符号与原文《Field-aware Factorization Machines for CTR Prediction》中的保持一致。 符号约定: $n$:特征的维数 $m$:域的个数 $k$:隐向量的维
阅读全文
FFM原理及公式推导
摘要:上一篇讲了FM(Factorization Machines),今天说一说FFM(Field-aware Factorization Machines )。 回顾一下FM: \begin{equation}\hat{y}=w_0+\sum_{i=1}^n{w_ix_i}+\sum_{i=1}^n{\
阅读全文
FM在特征组合中的应用
摘要:特征组合 x1年龄 x2北京 x3上海 x4深圳 x5男 x6女 用户1 23 1 0 0 1 0 用户2 31 0 0 1 0 1 如上例特征X有6个维度,年龄是连续值,城市和性别用one-hot表示,假设我们用最简单的线性拟合来预测y值。 $$\hat{y}=w_0+\sum_{i=1}^n{w
阅读全文
随机森林和GBDT
摘要:本文由网上多篇博客拼凑而成。 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的。 模型
阅读全文
广义线性模型(Generalized Linear Model)
摘要:指数分布族 \begin{equation} p(y;\eta)=b(y)\cdot exp\{\eta^TT(y)-a(\eta)\} \label{exponential family} \end{equation}
$b(y)$和$T(y)$是关于y的函数,$a(\eta)$是关于$\eta$
阅读全文
一种基于共现的推荐算法
摘要:参考原文《亚马逊推荐系统20年》 现有所有用户的购物列表: 现在要计算商品X的相似商品。 思路:要计算X和Y的相似度直接计算p(Y|X)即可。根据极大似然估计 \begin{equation} p(Y|X)=\frac{count(X,Y)}{count(X)}=\frac{2}{3} \label
阅读全文
概率分布之间的相似度
摘要:我曾经讲过如何度量两个随机变量之间的独立性和相关性,今天来讲一下如何度量两个概率分布之间的相似度。 在概率论中,f散度用来度量两个概率分布$P$和$Q$之间的距离,距离函数具有如下形式: \begin{equation}D_f(P||Q) \equiv \int_{\Omega}f\left(\fr
阅读全文
最大熵模型MaxEnt
摘要:最大熵模型 最大熵模型的思想是在满足已知条件的情况下,不对未知情况做任何有偏的假设,这样得到的模型预测风险最小。 满足已知条件,且不对未知情况做任何有偏的假设,即认为未知情况各种事件发生的概率相等,这实际上就是说条件熵最大。 $$max \; H(Y|X)=-\sum_i{\sum_j{p(x_i,
阅读全文
判别模型和生成模型
摘要:所有机器学习算法的目标就是求得一个决策函数$y=f(x)$或者说是求得一个条件概率$p(y|x)$。 生成模型:直接求联合概率$p(x,y)$,得到$p(x,y)$后就可以去生成样本。HMM、高斯混合模型GMM、LDA、PLSA、Naive Bayes都属于生成模型。当我们得到HMM模型后,就可以根
阅读全文
EM算法
摘要:凸函数 如果一个函数处处二次可微,且对于任意的x都有$f^{''}(x) \ge 0$,则f(x)是凸函数。当x是向量时,$f^{''}(x)$就对应到Hessian矩阵,$f^{''}(x) \ge 0$就对应到Hessian矩阵H是半正定的,即$H \ge 0$。当$f^{''}(x) > 0$
阅读全文
FTRL代码实现
摘要:FTRL(Follow The Regularized Leader)是一种优化方法,就如同SGD(Stochastic Gradient Descent)一样。这里直接给出用FTRL优化LR(Logistic Regression)的步骤: 其中$p_t=\sigma(X_t\cdot w)$是L
阅读全文
RNN和LSTM
摘要:RNN 中文分词、词性标注、命名实体识别、机器翻译、语音识别都属于序列挖掘的范畴。序列挖掘的特点就是某一步的输出不仅依赖于这一步的输入,还依赖于其他步的输入或输出。在序列挖掘领域传统的机器学习方法有HMM(Hidden Markov Model,隐马尔可夫模型)和CRF(Conditional Ra
阅读全文
word2vec
摘要:统计语言模型 问题:如何计算一段文本序列出现的概率? 建模:句子S由T个词组成,$S=w_1,w_2,\cdots,w_T$。则句子出现的概率 p(S)=\prod_{i=1}^T{p(w_i|context_{w_i})}
$context_{w_i}$表示词$w_i$的上下文环境,统计语
阅读全文
神经网络调优
摘要:Michael Nielsen在他的在线教程《neural networks and deep learning》中讲得非常浅显和仔细,没有任何数据挖掘基础的人也能掌握神经网络。英文教程很长,我捡些要点翻译一下。 交叉熵损失函数 回顾一下上篇的公式(7)和(8),基于最小平方误差(MSE)的缺失函数
阅读全文
什么是神经网络
摘要:Michael Nielsen在他的在线教程《neural networks and deep learning》中讲得非常浅显和仔细,没有任何数据挖掘基础的人也能掌握神经网络。英文教程很长,我捡些要点翻译一下。 感知机 \begin{equation}output=\left\{\begin{ma
阅读全文
PLSA
摘要:PLSA模型 PLSA和LDA很像,都属于主题模型,即它们都认为上帝在写文章时先以一定概率选择了一个主题,然后在这主题下以一定概率选择了一个词,重复这个过程就完成了一篇文章,即$p(d_i,w_j)=p(z_k|d_i)p(w_j|z_k)$,其中$d$表示文章,$w$表示词,$z$表示主题。 模型
阅读全文
Adaboost算法实现
摘要:July已经把Adaboost的实现步骤讲述得非常清楚,我就不再赘述,这里用Python实现了一下。
阅读全文
基于RBM的推荐算法
摘要:很多人讲RBM都要从能量函数讲起,由能量最低导出极小化目标函数(你听说过最常见的建立目标函数的方法可能是最小化平方误差或者最大化似然函数),然后用梯度下降法求解,得到网络参数。Introduction to Restricted Boltzmann Machines这篇博客没有遵循这种套路来讲RBM
阅读全文