算法
zhaosarsa
C'est la vie
Carpe diem
展开
-
2019阿里应届内推编程题
先挂题目————————————————————————————————————————————————————————光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么?光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连。光明小学的每个班都有M个学生,所以你要为他们设计出一条恰好经过M条边的路径。...原创 2018-07-24 13:27:49 · 2974 阅读 · 1 评论 -
【机器学习】决策树知识点小结
决策树原理简述决策树是一类常见的机器学习方法,它是基于树的结构进行决策的。每次做决策时选择最优划分属性,一般而言,随着划分过程不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一个类别,即节点的“纯度”(purity)越来越高。决策树学习算法包含特征选择、决策树的生成与剪枝过程。决策树的学习算法通常是递归地选择最优特征,并用最优特征对数据集进行分割。开始时,构建根节点,选择最优特征...原创 2018-08-20 13:22:03 · 5585 阅读 · 0 评论 -
【机器学习】LR与最大熵模型的关系
逻辑回归与最大熵模型MaxEnt的关系?逻辑回归跟最大熵模型到底有啥区别呢?简单粗暴 的回答是:逻辑回归跟最大熵模型没有本质区别。逻辑回归是最大熵对应类别为二类时的特殊情况,也就是当逻辑回归类别扩展到多类别时,就是最大熵模型。在进行下面推导之前,先上几个数学符号定义,假定输入是一个n维空间的实数向量:表示输入数据,其中。其中表示第条记录。同时使用来表示记录中的某个特征,或者对应...转载 2018-08-17 19:56:11 · 4233 阅读 · 1 评论 -
【机器学习】支持向量机面试知识点小结
之前写了几篇原理性的文章,先列一个目录好了。【数学基础】拉格朗日乘子法【数学基础】KKT条件【数学基础】拉格朗日对偶【机器学习】SVM线性可分【机器学习】SVM基本线性可分与多分类【机器学习】SVM核方法【机器学习】SVM之Hinge Loss,从LR到SVM,SVM核函数进一步理解【机器学习】SVM之回归模型写的还算详细,原理与推导具体可以参照以上。不过还差了...原创 2018-08-19 18:10:42 · 4535 阅读 · 0 评论 -
【机器学习】朴素贝叶斯(Naive Bayes)
在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数,要么是条件分布。但是朴素贝叶斯却是生成方法,也就是直接找出特征输出Y和特征X的联合分布,然后用得出。朴素贝叶斯很直观,计算量也不大,在很多领域有广泛的应用,这里我们就对朴素贝叶斯算...转载 2018-08-26 17:17:58 · 617 阅读 · 0 评论 -
【机器学习】逻辑回归特征的离散化与交叉
以下为综合转载。连续特征离散化有些特征虽然也是数值型的,但是该特征的取值相加相减是没有实际意义的,那么该数值型特征也要看成离散特征,采用离散化的技术。连续特征离散化主要分为有监督方法与无监督方法。无监督方法:无监督方法都具有的问题就是都需要人为规定划分区间这个参数,常用的方法有分箱法和直观划分。分箱法又分为等宽分箱法和等频分箱法,其实从名字就能看出算法的做法了,前者指定定长...转载 2018-08-19 14:18:09 · 3425 阅读 · 0 评论 -
【机器学习】逻辑斯蒂回归(Logistic Regression)详解
引言LR回归,虽然这个算法从名字上来看,是回归算法,但其实际上是一个分类算法,学术界也叫它logit regression, maximum-entropy classification (MaxEnt)或者是the log-linear classifier。在机器学习算法中,有几十种分类器,LR回归是其中最常用的一个。logit和logistic模型的区别:二者的根本区别在于广义...原创 2018-08-16 18:45:31 · 34553 阅读 · 1 评论 -
【机器学习】坐标下降法(Coordinate descent)
coordinate-wise minimization(坐标朝向最小)coordinate-wise minimization介绍的是坐标下降法的理论依据。问题的描述:给定一个可微的凸函数,如果在某一点,使得在每一个坐标轴上都是最小值,那么是不是一个全局的最小值。形式化的描述为:是不是对于所有的都有这里的代表第个标准基向量。答案为成立。这是因为:但是问题来...转载 2018-08-16 13:18:38 · 18440 阅读 · 3 评论 -
【数学基础】L2范数之解救矩阵病态
在之前的两篇文章岭回归以及L1正则化与L2正则化详解中都有提到L2范数。但对于L2范数在优化计算角度上都跳过了。故在这里新开一篇详细介绍一下,为什么L2范数可以解救病态矩阵,以及优化计算。病态系统现在有线性系统: , 解方程很容易得到解为: 。如果在样本采集时存在一个微小的误差,比如,将 A 矩阵的系数 400 改变成 401:则得到一个截然不同的解: 。当解集 x 对...原创 2018-08-14 00:06:07 · 9140 阅读 · 1 评论 -
【机器学习】LR的分布式(并行化)实现
逻辑回归(Logistic Regression,简称LR)是机器学习中十分常用的一种分类算法,在互联网领域得到了广泛的应用,无论是在广告系统中进行CTR预估,推荐系统中的预估转换率,反垃圾系统中的识别垃圾内容……都可以看到它的身影。LR以其简单的原理和应用的普适性受到了广大应用者的青睐。实际情况中,由于受到单机处理能力和效率的限制,在利用大规模样本数据进行训练的时候往往需要将求解LR问题的过程进...原创 2018-08-27 23:19:02 · 11121 阅读 · 2 评论 -
【机器学习】集成学习知识点总结二
GBDT原理概述GBDT是集成学习Boosting的一种。算法流程详见集成学习之梯度提升树GBDT。Gradient boosting的主要思想是,每一次建立单个学习器时,是在之前建立的模型的损失函数的梯度下降方向。损失函数越大,说明模型越容易出错,如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不断改进,而最好的方式就是让损失函数在其梯度的方向上下降。GBDT的核心就在于,...原创 2018-08-23 19:53:33 · 1141 阅读 · 1 评论 -
【机器学习】数据挖掘算法——关联规则(二),挖掘过程,Aprioir算法
关联规则挖掘的原理和过程从关联规则(一)的分析中可知,关联规则挖掘是从事务集合中挖掘出这样的关联规则:它的支持度和置信度大于最低阈值(minsup,minconf),这个阈值是由用户指定的。根据support=(X,Y).count/T.countsupport=(X,Y).count/T.countsupport=(X,Y).count/T.countconfidence=(X,Y).co...原创 2018-10-27 19:24:53 · 4002 阅读 · 0 评论 -
【机器学习】数据挖掘算法——关联规则(一),相关概念,评价指标
综述:数据挖掘是指以某种方式分析数据源,从中发现一些潜在的有用的信息,所以数据挖掘又称作知识发现,而关联规则挖掘则是数据挖掘中的一个很重要的课题,顾名思义,它是从数据背后发现事物之间可能存在的关联或者联系。关联规则的目的在于在一个数据集中找出项之间的关系,也称之为购物蓝分析 (market basket analysis)。例如,购买鞋的顾客,有10%的可能也会买袜子,60%的买面包的顾客,也...原创 2018-10-27 11:23:43 · 10577 阅读 · 1 评论 -
【机器学习】数据挖掘算法——关联规则(三),FP-growth算法
前言 上一篇文章介绍了用来挖掘发现强关联规则的Apriori算法。同时也知道了Apriori算法在实现过程中由于需要频繁的扫描数据集导致效率较低。 FP-growth算法基于Apriori构建,但采用了高级的数据结构减少扫描次数,大大加快了算法速度。FP-growth算法只需要对数据库进行两次扫描,而Apriori算法对于每个潜在的频繁项集都会扫描数据集判定给定模式是否频繁,因此FP-gr...转载 2018-10-28 15:23:16 · 1432 阅读 · 0 评论 -
【推荐算法入门】推荐系统之推荐算法概述
1. 什么是推荐算法推荐算法最早在1992年就提出来了,但是火起来实际上是最近这些年的事情,因为互联网的爆发,有了更大的数据量可以供我们使用,推荐算法才有了很大的用武之地。最开始,所以我们在网上找资料,都是进yahoo,然后分门别类的点进去,找到你想要的东西,这是一个人工过程,到后来,我们用google,直接搜索自己需要的内容,这些都可以比较精准的找到你想要的东西,但是,如果我自己都不知道...原创 2018-09-23 17:23:28 · 30901 阅读 · 0 评论 -
【机器学习】贝叶斯整理
简述朴素贝叶斯算法原理和工作流程事件A和B同时发生的概率为在A发生的情况下发生B或者在B发生的情况下发生A。所以有:对于给出的待分类项,求解在此项出现的条件下各个目标类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。工作原理:假设现在有样本这个待分类项(并认为x中的特征独立)。 再假设现在有分类目标 那么就是最终的分类类别。 而 因为x对于每个分类目标来说...原创 2018-08-25 21:26:41 · 3592 阅读 · 2 评论 -
【机器学习】集成学习知识点总结一
集成学习算法概述严格意义上来说,集成学习算法不算是一种机器学习算法,而更像是一种优化手段或策略,它通常是结合多个简单的弱机器学习算法,去做更可靠的决策。有人把它称为机器学习中的“屠龙刀”,非常万能且有效。集成模型是一种能在各种机器学习任务上提高准确率的强有力技术,能够很好地提升算法的性能。集成方法是由多个较弱的模型集成组成,一般弱分类器可以是决策树,SVM,KNN等构成。其中的模型可以单独...原创 2018-08-21 22:00:41 · 1231 阅读 · 0 评论 -
【机器学习】偏差-方差分解Bias-variance Decomposition
偏差-方差分解(Bias-Variance Decomposition)偏差-方差分解(Bias-Variance Decomposition)是统计学派看待模型复杂度的观点。Bias-variance分解是机器学习中一种重要的分析技术。给定学习目标和训练集规模,它可以把一种学习算法的期望误差分解为三个非负项的和,即样本真实噪音noise、bias和 variance。noise 样本真实...原创 2018-08-28 11:52:16 · 19404 阅读 · 3 评论 -
【机器学习】岭回归(L2正则在干嘛!)
在之前我们有介绍过贝叶斯线性回归,贝叶斯线性回归利用了最大后验估计(MAP)加上权重的高斯分布先验推导出带有L2正则项的线性回归。其实这就是岭回归,即 岭回归=MAP+高斯先验。推导就参见贝叶斯线性回归了,其实两者就是一模一样的东西,不过贝叶斯线性回归更侧重于推导这个过程,因为用了MAP方法,而提到岭回归我们就会更去研究强调其L2正则项的一些特性与作用。直接给出岭回归的推导结果...原创 2018-08-13 20:49:52 · 4721 阅读 · 2 评论 -
【机器学习】最大熵模型(Maximum Entropy Model)
最大熵模型(Maximum Entropy Model,以下简称MaxEnt),MaxEnt 是概率模型学习中一个准则,其思想为:在学习概率模型时,所有可能的模型中熵最大的模型是最好的模型;若概率模型需要满足一些约束,则最大熵原理就是在满足已知约束的条件集合中选择熵最大模型。最大熵原理指出,对一个随机事件的概率分布进行预测时,预测应当满足全部已知的约束,而对未知的情况不要做任何主观假设。在这种情...原创 2018-08-08 19:52:59 · 8801 阅读 · 0 评论 -
【机器学习】SVM之回归模型
review先回顾一下在基本线性可分情况下的SVM模型:分类svm模型中要让训练集中的各个样本点尽量远离自己类别一侧的支持向量。其实回归模型也沿用了最大间隔分类器的思想。误差函数对于回归模型,优化目标函数和分类模型保持一致,依然是,但是约束条件不同。我们知道回归模型的目标是让训练集中的每个样本点,尽量拟合到一个线性模型上。对于一般的回归模型,我们是用均方误差作为损失函数的,...原创 2018-08-06 00:46:01 · 29951 阅读 · 1 评论 -
【机器学习】SVM之Hinge Loss,从LR到SVM,SVM核函数进一步理解
Hinge Loss 解释SVM 求解使通过建立二次规划原始问题,引入拉格朗日乘子法,然后转换成对偶的形式去求解,这是一种理论非常充实的解法。这里换一种角度来思考,在机器学习领域,一般的做法是经验风险最小化 (empirical risk minimization,ERM),即构建假设函数(Hypothesis)为输入输出间的映射,然后采用损失函数来衡量模型的优劣。求得使损失最小化的模型即为最...原创 2018-08-05 20:32:56 · 8834 阅读 · 0 评论 -
【机器学习】SVM核方法
Kernel Trick在 SVM 中引入核方法便可使得 SVM 变为非线性分类器,给定非线性可分数据集 ,如下图所示,此时找不到一个分类平面来将数据分开,核方法可以将数据投影到新空间,使得投影后的数据线性可分,下图给出一个 的映射,原空间为 ,新空间为 ,根据图可以看出映射后样本点的变化,此时样本便为线性可分的了,直接用 分类即可。上图是一个 的映射,但一般情况下,特征空间...原创 2018-08-05 16:32:37 · 1949 阅读 · 0 评论 -
【机器学习】SVM基本线性可分与多分类
上一篇讲了线性可分的SVM推导,现在讲一讲基本线性可分的情形,后面还会介绍多分类的使用以及核函数的使用。outlier 的处理给定数据集 ,当样本数据大部分为线性可分的,存在少量异常值使得数据线性不可分,或者导致分离超平面被挤压,可以通过一些方法仍然按照线性可分的方式处理,异常值的情况如下图所示:以上情况意味着某些样本点的函数间隔并不满足大于 1 的要求。为了解决这个问题,为每个...原创 2018-08-05 12:38:45 · 2677 阅读 · 0 评论 -
【机器学习】SVM线性可分
Introduction支持向量机(Support Vector Machine,SVM)是定义在特征空间中的最大间隔线性分类器,对于非线性可分的数据,SVM引入核方法(kernel trick)使它实质上成为非线性分类器。SVM 有两种解释求解间隔最大的分类平面,这种情况可以转化为一个求解凸二次规划的问题,一般转换为对偶问题求解; Hinge Loss,通过经验风险最小化,采取 Hin...原创 2018-08-04 20:55:07 · 1744 阅读 · 0 评论 -
牛客网 在线编程 折纸问题
题目描述请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。给定折的次数n,请返回从上到下的折痕的数组,若为下折痕则对应元素为"down",若为上折痕则为"up".测试样例:1...原创 2018-07-26 12:47:42 · 335 阅读 · 0 评论 -
十种排序算法的java汇总
作为一个数学系的coding菜鸟,还是得多多练习coding,花了一个多小时又手撸了一遍排序,这次把代码补全关了,果然有点不习惯~排序算法算是基础中的基础,必须得多练。稍微讲一下要点吧。冒泡排序:每一趟将相邻元素比较,将大的元素往后挪。每一趟可以把最大的元素放到未排序数组的末尾。可以实现成稳定的排序。时间复杂度为N-1+N-2+N-3+...+1 = N(N-1)/2 = O(N^2)。空...原创 2018-07-25 13:41:27 · 242 阅读 · 0 评论 -
牛客网 在线编程 回文链表
题目描述https://www.nowcoder.com/practice/baefd05def524a92bcfa6e1f113ed4f0?tpId=8&&tqId=11006&rp=1&ru=/activity/oj&qru=/ta/cracking-the-coding-interview/question-ranking请编写一个函数,检查链...原创 2018-07-24 21:57:18 · 249 阅读 · 0 评论 -
【机器学习】线性回归之梯度下降、多元线性回归概述
线性回归是一种监督学习方法. 对每个样本来说: Hypothesis:即:其中, 为预测值, 为样本的第i个特征,且; 为该特征下的权重,bias偏差。线性回归就是要在已有的样本特征和标签下学习特征权重,从而在待测样本中应用学习好的特征权重,得到待测样本的标签。 定义损失函数:我们的目的是找到最优的 来最小化 , 使用梯度下降方法:对每一个样本来说...原创 2018-08-06 14:18:03 · 986 阅读 · 0 评论 -
【机器学习】线性回归之Normal Equation(矩阵求导与线性代数视角)
Normal Equation之前我们用梯度下降来求解线性回归问题的最优参数,除此之外我们还可以用正规方程法(Normal Equation)来求解其最优参数。Normal Equation方法的推导有两种方式矩阵求导(matrix derivative)其中其中X的行表示样本,列表示特征:令导数等于零:因此:关于矩阵求导的公式可以参见:常用的向量矩...转载 2018-08-06 14:59:33 · 13727 阅读 · 11 评论 -
【机器学习】L1正则化与L2正则化详解及解决过拟合的方法
在详细介绍L1与L2之前,先讲讲正则化的应用场景。正则化方法:防止过拟合,提高泛化能力所谓过拟合(over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。造成过拟合的本质原因是模型学习的太过精密,导致连训练集中的样本噪声也一丝不差的训练进入了模型。所谓欠拟合(under-fitting),与过拟...原创 2018-08-13 17:29:56 · 14235 阅读 · 3 评论 -
【机器学习】逻辑回归小结
之前对于LR的介绍已经不少了,有从LR的极大似然概率模型开始推导的,从极大似然开始推导可以得到我们常用的损失函数形式,接下来就可以利用梯度下降方法。也从最大熵模型推导了满足二项分布的LR模型Hypothesis函数来源,以及满足多项式分布的Softmax回归模型。接下来对LR模型做一个总结。(参照面经等,以后可能会有补充……)如何凸显你是一个对逻辑回归已经非常了解的人呢。那就是用一句话概...转载 2018-08-17 22:03:58 · 1278 阅读 · 0 评论 -
【机器学习】次梯度(subgradient)方法
次梯度方法(subgradient method)是传统的梯度下降方法的拓展,用来处理不可导的凸函数。它的优势是比传统方法处理问题范围大,劣势是算法收敛速度慢。但是,由于它对不可导函数有很好的处理方法,所以学习它还是很有必要的。次导数设f:I→R是一个实变量凸函数,定义在实数轴上的开区间内。这种函数不一定是处处可导的,例如最经典的例子就是,在处不可导。但是,从下图的可以看出,对于定义域...转载 2018-08-15 16:08:01 · 56843 阅读 · 14 评论 -
【机器学习】贝叶斯线性回归(最大后验估计+高斯先验)
引言如果要将极大似然估计应用到线性回归模型中,模型的复杂度会被两个因素所控制:基函数的数目(的维数)和样本的数目。尽管为对数极大似然估计加上一个正则项(或者是参数的先验分布),在一定程度上可以限制模型的复杂度,防止过拟合,但基函数的选择对模型的性能仍然起着决定性的作用。上面说了那么大一段,就是想说明一个问题:由于极大似然估计总是会使得模型过于的复杂以至于产生过拟合的现象,所以单纯的使用极大...原创 2018-08-07 23:48:20 · 41343 阅读 · 2 评论 -
【数学基础】参数估计之贝叶斯估计
从统计推断讲起统计推断是根据样本信息对总体分布或总体的特征数进行推断,事实上,这经典学派对统计推断的规定,这里的统计推断使用到两种信息:总体信息和样本信息;而贝叶斯学派认为,除了上述两种信息以外,统计推断还应该使用第三种信息:先验信息。下面我们先把是那种信息加以说明。总体信息:总体信息即总体分布或总体所属分布族提供的信息。譬如,若已知“总体是正态分布”等等 样本信息:即所抽取的样本的所有...原创 2018-08-07 16:50:35 · 55670 阅读 · 1 评论 -
【机器学习】Lasso回归(L1正则,MAP+拉普拉斯先验)
前言目前这个方法还没有一个正规的中文名,如果从lasso这个单词讲的话,叫套索。那么套索是啥呢,就是套马脖子的东西,见下图: 就是拿这个东西把动物脖子套住,不要它随便跑。lasso 回归就是这个意思,就是让回归系数不要太大,以免造成过度拟合(overfitting)。所以呢,lasso regression是个啥呢,就是一个回归,并且回归系数不要太大。具体的实现方式是加了一个L1正...原创 2018-08-14 20:37:20 · 5843 阅读 · 0 评论 -
【数学基础】参数估计之极大似然估计
背景先来看看几个小例子:猎人师傅和徒弟一同去打猎,遇到一只兔子,师傅和徒弟同时放枪,兔子被击中一枪,那么是师傅打中的,还是徒弟打中的? 一个袋子中总共有黑白两种颜色100个球,其中一种颜色90个,随机取出一个球,发现是黑球。那么是黑色球90个?还是白色球90个?看着两个小故事,不知道有没有发现什么规律...由于师傅的枪法一般都高于徒弟,因此我们猜测兔子是被师傅打中的。随机抽取一个球,是...原创 2018-08-07 00:05:20 · 16309 阅读 · 3 评论 -
【机器学习】线性回归之概率解释及局部加权线性回归
Probabilistic interpretation我们应该想这样一个问题:当我们讨论回归问题时,我们为什么要最小化平方损失函数?在CS229的课程中,吴恩达教授给我们做了详细的概率解释。现总结如下: 对单个样本来说: 其中 为预测误差,我们假定样本的误差属于独立同分布。 根据中心极限定理:多个随机变量的和符合正态分布;因为误差的随机性, 符合均值为0,方差为 的正态分布...原创 2018-08-06 20:21:39 · 801 阅读 · 0 评论 -
【机器学习】主题模型
主题模型(LDA)(一)–通俗理解与简单应用主题模型(LDA)(二)-公式推导主题模型-LDA浅析(简短清楚)通俗理解LDA主题模型(超详细)数学之美(上一篇的参考文章)plsa和LDA的区别–七月在线...转载 2018-11-01 21:34:42 · 735 阅读 · 0 评论