自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode每日一题求根节点到叶子结点的数字之和

给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点路径 1->3 代表数字 13.因此,数字总和 = 12 + 13 = 2...

2020-10-29 21:41:34 373

原创 leetcode每日一题数组中最长山脉

我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i< B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)给出一个整数数组 A,返回最长 “山脉”的长度。如果不含有 “山脉”则返回 0。来源:力扣(Leet...

2020-10-25 15:11:07 221

原创 leetcode每日一题重排链表

采用一个数组存放每个链表节点指针,就可以对链表节点进行索引了,假设链表长度为,通过分析可以得到:对于链表中第 个结点需要令其后继为第个节点,第个节点的后继为第个节点,代码如下class Solution {public: void reorderList(ListNode* head) { vector<ListNode*> vec; ListNode* p = head; while (p) { vec..

2020-10-20 19:48:39 94

原创 leetcode每日一题链表有环无环链表长度求解

1.链表有无环采用快慢指针求解,指针slow和fast从链表头开始走,slow每次往后走一步,fast每次往后走两步,若链表有环则俩指针必定在环内相遇2.有环链表长度如图所示,假设slow和fast在Pos处第一次相遇,join为环的入口,假设从表头Head到Join有l个节点,join沿逆时针到Pos有x个节点,环中有R个节点,显然fast走过的节点数是slow的两倍,那么有 ...

2020-10-14 21:08:58 188

原创 new、operator new 以及placement new

c++在堆中构造一个对象Foo* p(new Foo());语句new Foo()在内部实际上包含了两步,调用operator new分配内存与调用placement new 构造对象既Foo* p;void* ptr = operator new(sizeof(Foo));try { p = new(ptr) Foo(); //placement new,在已经分配...

2019-12-30 16:02:57 99

原创 PCA理论推导

令 \(X=\left[ \begin{matrix}x_1 & \cdots& x_N\end{matrix}\right]\in R^{D\times N}\)是一个给定的待降维的数据集,由\(X\)中的元素可以张成\(R^D\)中的一个子空间\(S=span \{x_1,\cdots,x_n\}\),在\(S\)中寻找一个\(d\)维子空间 \(U\),假设\(U\) 的...

2019-04-17 15:07:38 330

原创 泛化误差,偏差方差分解

训练是为了得到泛化性能好的模型,希望模型在未知数据上能够取得好的效果,偏差方差分解是解释模型泛化性能的一种方式,对于测试样本\(x\),使用数据集\(D\)训练的模型\(f\)在\(x\)上的输出记为\(f(x;D)\),\(x\)的真实标签为\(y\),在数据集\(D\)中模型的标签为\(y_D\)。记$$\overline f(x;D) = E_D[f(x;D)]$$偏差偏...

2018-09-06 09:41:08 2033 1

原创 指数族分布,广义线性模型,线性回归,LR

指数族分布$$p(x;\eta)=b(x)e^{(\eta^TT(x)+\alpha(\eta))}$$广义线性模型1.待遇测变量 \(y\) 在给定 \(x\) 和参数 \(\theta\) 时服从以 \(\eta\) 为参数的指数族分布2.模型的目的是预测给定 \(x\) 情况下 \(y\) 的期望3.\(\eta=\theta^Tx\),若 \(\eta\) 为向量,则 ...

2018-09-04 15:46:22 385

原创 Adam和AdamW

Adam可以看作是RMSprob和动量SGD的结合目的在于抑制震荡加速收敛Adam\(while \theta_t 不收敛\)计算损失函数关于\(\theta\)的梯度\(g_{\theta}\)\(t = t + 1\)计算一阶动量项\(s_t=\alpha_1s_{t-1} + (1 - \alpha_1)g_{\theta}\)计算二阶动量项\(v_t=\...

2018-08-31 09:52:23 5491 1

原创 LR和SVM

从目标函数的形式上看,使用线性核的SVM和带L2正则的LR是等价的,考虑LR的目标函数$$J_{LR}=-\frac{1}{m} \sum_{i=1}^{N} y_ilog(\frac{1}{1 + e^{-z_i}}) + (1 - y_i)log(1 - \frac{1}{1 + e^{-z_i}}) + \frac{\lambda}{2m}||w||^2$$SVM的目标函数$...

2018-08-30 21:32:12 275

原创 N皇后问题

题目N皇后问题  【问题描述】在N*N的棋盘上放置N个皇后(n&lt;=10)而彼此不受攻击(即在棋盘的任一行,任一列和任一对角线上不能放置2个皇后),编程求解所有的摆放方法。【输入格式】    输入:n【输出格式】每行输出一种方案,每种方案顺序输出皇后所在的列号,各个数之间有空格隔开。若无方案,则输出no solute!【输入样例】    4【输出样例】...

2018-08-30 15:50:55 500

原创 GBDT推导

给定样本集合\(\{(x_i,y_i)|i=1,\cdots,N\}\),对于分类或者回归有不同的损失函数,假设在某个样本\(i\)上的损失函数为$$L(y_i,F(x_i))$$其中F是学习到的决策函数。在GBDT中F是一簇函数的加权和,即$$F=\sum_{i=1}^m \gamma_i f_i$$对于所有的样本,gbdt的损失函数为$$\sum_{i=1}^N L(y...

2018-08-30 10:15:50 1454

原创 leetcode最长摆动序列

题目如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的...

2018-08-30 09:22:40 657

原创 leetcode跳跃游戏

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1步,然后跳 3 步到达数组的最后一个位置。1.动态规划超时假设输入数组为num,用...

2018-08-29 22:12:24 305

原创 n个骰子的点数

题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s,求s所有可能取值的概率。分析:i个骰子的点数之和最少为i最多为6i,用数组dp[i][j]表示i个骰子的点数之和为j出现的组合数其中\(1\leq i \leq n\), \(i\leq j\leq 6i\)。则$$dp[i][j] = \sum_{k=1,\cdots, 6, i-1\leq j - k\leq 6(i -...

2018-08-29 20:42:53 393

转载 红黑树详解

转自https://www.cnblogs.com/nullllun/p/8214599.html1.红黑树简介红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1972年发明,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为...

2018-08-29 10:51:21 210

原创 模型融合stacking与blending

1.stacking给定数据集\(D\),首先将数据集划分为训练集\(D_{train}\)和验证集\(D_{valid}\),然后将训练集划分为k份,记为\(D_{train}^1,\cdots,D_{train}^k\)。用其中的k-1份训练一个基模型并对剩余的一份进行预测,重复k次得到整个训练集的预测值(是k个相同模型使用不同训练集得到的预测结果),再换用不同的基模型可以得到训练集的多列...

2018-08-17 10:11:28 350

转载 特征选择

概念特征选择是从一组特征中挑选出一些最有效的特征以降低特征空间维数的过程,是模式识别的关键问题之一。样本中是否含有不相关或冗余信息直接影响着分类器的性能,因此研究有效的特征选择算法至关重要。特征选择的框架首先从特征全集中产生出一个特征子集,然后用评价函数对该特征子集进行评价,评价的结果与停止准则进行比较,若评价结果比停止准则好就停止,否则就继续产生下一组特征子集,继续进行特征选择。选出...

2018-08-17 09:23:21 1315

原创 堆排序

#include&lt;iostream&gt;#include&lt;vector&gt;using namespace std;void adjust(vector&lt;int&gt; &amp;num, int i, int len){    int large = i;    int left = 2 * i + 1;    int right = 2 * i + 2;...

2018-08-16 15:15:25 179

原创 蒙特卡洛采样

1.马尔可夫链及其平稳分布马尔可夫链的定义很简单,即后一个状态只与前面一个状态相关$$p(x_t|x_{t-1},\cdots,x_{1})=p(x_t|x_{t-1})$$2.马氏链定理如果一个非周期马尔可夫链具有状态转移矩阵\(P\),且它的任意两个状态都是连通的,那么\(\mathop{lim} \limits_{n\rightarrow \infty}(P^n)_{ij}\...

2018-08-16 09:21:59 2996

原创 KKT条件推导

考虑优化问题$$\min_x f(x)$$$$s.t. \begin{align} &amp; f_i(x)\leq 0, i=1,\cdots,m\\ &amp;h_i(x)=0, i=1,\cdots, n\end{align}$$拉格朗日函数$$L(x,\lambda,\mu)=f(x) + \sum_{i=1}^{m}\lambda_if_i(x) + \sum_{i=1}...

2018-08-15 19:25:42 4407

原创 FM与FFM

1.FM逻辑回归、线性回归等均没有考虑特征交叉,可以考虑$$y(x)=w_0+\sum_{i=1}^{n}w_ix_i + \sum_{i=1}^{n-1}\sum_{j=i+1}^{n}w_{ij}x_ix_j$$但此处\(w_{ij}\)为稠密矩阵,学习的计算复杂度高而且在特征高度稀疏的时候w得不到有效的学习,因此将w分解为向量的乘积,具体的$$w_{ij}=v_i^Tv_j$...

2018-08-15 16:32:06 526

原创 矩阵分解小结

1.LFM每个用户和每个物品都用一个k维向量表示,意义为用户u与k个隐藏主题的相关程度以及物品i与k个隐藏主题的相关程度用户u对物品i的评分,用户u对物品i的预测评分如下$$\hat r_{ui}=p_u^Tq_i$$目标函数为$$\sum_{(u,i)\in S}(\hat r_{ui}-p_u^Tq_i)^2 + \lambda \sum_u ||p_u||^2 + \gamm...

2018-08-15 11:46:17 297

原创 Lightgbm

Lightgbm是GBDT的一种高效实现,在寻找特征最优分裂点,减少样本数目和减少特征数目上都进行了优化。1.最优分裂点使用直方图算法,并不是遍历特征的所有取值,而是对特征取值建立直方图,并且在直方图上寻找最优分裂点2.减少样本GOSS算法样本的梯度可以当做样本的额权重,梯度很小的样本往往已经拟合的很好了,可以在下一次建树的时候忽略梯度小的样本。将样本按照梯度的绝对值进行降序排...

2018-08-14 19:25:38 627

原创 HMM推导

隐马尔科夫模型作了两个基本假设(1)齐次马尔可夫性假设:马尔可夫链每个时刻的隐藏状态只与前一个隐藏状态相关(2)观测独立性假设:任意时刻的观测只与当前时刻的状态有关隐马尔可夫模型有3个基本问题:(1)概率计算问题,即给定模型参数和观测序列,计算观测序列出现的概率。(2)学习问题,即给定观测序列,学习模型的参数。(3)预测问题,即给出模型参数和观测序列,求具有最大概率的状态序...

2018-07-21 15:51:10 436

原创 EM算法推导

给定观测样本集\({y_1,\cdots,y_N}\),求带有隐变量模型的最大似然。似然函数$$L(\theta)=logP(Y|\theta)=log\sum_ZP(Y,Z|\theta))=log(P(Y|Z,\theta)P(Z|\theta))$$将似然函数减去上一步的似然函数$$ \begin{align} L(\theta)-L(\theta^{(i)})=&amp; ...

2018-07-20 10:47:51 193

原创 XGBoost推导

输入样本集\(\{(x_1,y_1),\cdots ,(x_N,y_N)\}\),对于每个样本,其损失函数为$$L(F_m(x_i),y_i)$$其中\(F_m(x_i)\)表示已经学习到的\(m\)棵树对\(y_i\)的预测。考虑所有样本的损失$$L_m=\sum_{i=1}^N L(F_m(x_i),y_i) + \gamma \left |T\right | + \lambd...

2018-07-20 09:25:11 190

原创 推荐算法冷启动

冷启动主要分为三类用户冷启动 :为新用户推荐物品物品冷启动 :如何把新物品推荐给用户系统冷启动 :在新网站上设计个性化推荐系统解决方式主要有:提供非个性化的推荐 非个性化推荐的最简单例子就是热门排行榜,我们可以给用户推荐热门排行榜,然后等到用户数据收集到一定的时候,再切换为个性化推荐。利用用户注册时提供的年龄、性别等数据做粗粒度的个性化。利用用户的社交网络账号登录(需要用户授权),导入用户在社交网...

2018-06-07 10:17:01 1741 1

原创 推荐算法SVD

SVD在LFM的基础上了用户偏置、和商品偏置项,有的用户可能要求比较苛刻,他所有的评分都偏低,而有的商品可能质量比较好,所有用户对它的评分都偏高,其预测公式如下$$r_{ui}=\mu + b_u+b_i+p_u^Tq_i$$其中\(\mu\)表示所用评分的均值,b_u表示用户与物品无关的偏置项,b_i表示物品与用户无关的偏置项。求解上式依然用均方误差最小的梯度下降方法,为防止过拟合,常加入正则项...

2018-06-04 22:16:39 325

原创 推荐算法评估方式

RMSE与MAE计算方式如下$$RMSE=\frac{\sqrt{\sum_{(u,i)\in T}(r_ui-\hat{r_ui})^2}}{|T|}$$

2018-06-04 21:01:09 1646

原创 推荐算法LFM

将每个用户和物品都用一个\(K\)维向量表示,则某个用户\(u\)对某个物品\(i\)的感兴趣程度可以表示为$$r_{ui}=p_u^Tq_i$$其中\(p_u\)表示用户\(u\)与\(K\)个隐含类的关联关系,\(q_i\)表示物品\(i\)与\(K\)个隐含类的关联关系。训练的目标函数为$$min\sum_{(u,i)\in S}(r_{ui}-\hat{r_{ui}})=r_{ui}-p_...

2018-05-31 21:51:48 3008

原创 推荐算法随机游走

二分图中节点集$$V=\{v_1,\cdots,v_N\}$$其中\(N为节点个数\)从某个节点\(u\)出发进行随机游走,以\(\alpha\)的概率选择继续从当前节点任选一个与之相连的其他节点进行下一次的随机游走或者从\(u\)重新开始游走,那么节点\(v_i\)被访问到的概率$$p(v_i)=(1-\alpha)(v_i==u)+ \alpha \sum_{v_j\in in(v_i...

2018-05-31 20:59:47 5873 2

空空如也

空空如也

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

TA关注的人

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