- 博客(29)
- 资源 (14)
- 收藏
- 关注
原创 分治算法-03多项式乘法问题
多项式乘法简介多项式的运算表示是一个很常见的算法问题。问题描述给予两个多项式A(x)与B(x),得出C(x)=A(x)B(x)。例如,A(x)=3+2x+3x2+4x3,B(x)=2+x2,C(x)=6+4x+9x2+10x3+3x4+4x^5。问题分析一般情况下,使用系数表示多项式,不存在的项系数为0。但是,除了系数表示外,多项式还有一种表示叫做点值表示。若多项式...
2019-04-18 15:13:14 3252
原创 分治算法-02凸包问题
几何问题之凸包简介简单地说,凸包是正好包含所有点的凸多边形,可以将它想象为一个包围点几何的橡皮筋。之所以叫凸包是因为这个凸多边形包围所有点。本案例主要讲解分治法解决凸包问题,常见的还有Graham扫描法、Jarvis步进法、快包法等。问题描述给定点集合,输出凸包的顶点集合。问题分析分治法讲究分而治之,核心思想很容易理解,难的是想出实施的具体步骤。怎么把大问题拆分成小问题...
2019-04-18 13:48:05 2292
原创 分治算法-01连续子序列的最大和问题
连续子序列的最大和前言分治算法的核心思想是将一个规模很大的问题化简为n个规模较小的问题,这些子问题虽然独立而不同,但是问题的本质是一致的,从而达到分而治之的目的。首先通过“分”将问题分解为n个子问题,再将子问题一步步分解,知道达到最小的子问题。这时,“治”子问题再利用子问题的解推导总问题的解。子问题应与原问题拥有同样的结构,或者拥有同样的形式。只有这样,才能利用递归解决子问题。问...
2019-04-18 12:56:21 1481
原创 贪心算法-03哈夫曼编码问题
哈夫曼编码简介哈夫曼编码是一种字符编码方式,可以对指定的字符集进行数据压缩,压缩率在20%到90%。问题描述现在有一个包含5个字符{A,B,C,D,E},各个字符的出现频率依次为{0.35, 0.1, 0.2, 0.2, 0.15}。需要构造一种有效的编码类型,使用该编码表达以上字符表时可以产生平均长度最短的位串。问题分析n个字符组成的文本编码时有两种方式,定长编码(为...
2019-04-16 21:35:11 2433
原创 贪心算法-02活动安排问题
活动安排问题简介活动安排问题是需要共享公共资源的一系列活动的高效安排问题,以在限定的资源前提下尽可能多地安排活动。一般,算法题中给出开始结束时间的活动序列都可以使用这种贪心思路。问题描述有若干个活动,第i个活动的开始时间和结束时间是[Si,fi),只有一间教室,活动之间不能交叉,即一个活动结束后另一个才能开始,求解最多能安排多少个活动?问题分析目的是提高教室的利用率,尽...
2019-04-16 20:45:03 1045
原创 贪心算法-01硬币找零问题
硬币找零问题前言所谓贪心算法,就是遵循某种既定原则,不断选取当前条件下最优的选择来构造每一个子步骤的解决方案,直到获得问题最终的求解。即在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所做的仅是在某种意义上的局部最优解。利用贪心算法,需要解决两个问题。一是问题是否适合使用贪心算法求解,即所求解问题是否具有贪心选择性质。所谓贪心选择性质,是指应用同一规...
2019-04-15 15:36:41 4309
原创 回溯算法-03八皇后问题
八皇后问题简介回溯法的经典问题。问题描述有8*8=64个格子,每个格子里面可以放一个棋子,现在要求任意两个棋子不在一条横向、纵向或者斜向的直线上。问题分析显然,每一行、每一列都只有一个棋子才有可能满足答案要求。现在,对于这个矩阵,按照行去摆放棋子,第一行只能有一个,假设其在(0,0)的位置,但是现在无法判断棋子在这个位置是否合适,因为后面的棋子都没有确定。所以只能继续...
2019-04-13 14:57:17 368
原创 数据挖掘竞赛-北京PM2.5浓度回归分析训练赛
北京PM2.5浓度回归分析训练赛简介DC上的一个回归题,比较简单。时间原因没有细看,提交到70多名就结束了。使用stacking方法结合多个回归模型。过程数据获取官方给定。数据探索训练集有35746条记录,13个字段,有表头,其中pm2.5为目标。叙述数据预处理主要对date属性进行预处理,因为其字符串属性无法参与建模。利用time模块解...
2019-04-12 21:08:42 5645 10
原创 回溯算法-02遍历所有组合方式问题
遍历所有的组合方式简介经典的数学组合问题,对应之前的排列问题。问题描述现在有四本书为A,B,C,D,要求选出两本,输出所有的选择情况。问题分析和之前一样,如果试求组合数目,那么DP将会是一个不错的选择,但是DP不是很擅长这种序列输出的题。其实,这还是个回溯题,因为每一步的问题都是一样的只不过参数不一样罢了。每一步都是在剩余书籍中挑出一本。与之前的排列问题不同之处...
2019-04-12 14:39:15 791
原创 回溯算法-01遍历所有排列方式问题
遍历所有排列方式前言回溯采用试错的方法解决问题,一旦发现当前步骤失败,回溯算法就返回上一个步骤,继续另一种方案继续试错。回溯算法的优点是速度快,没有尝试所有路径就可能找到答案。当然,如果运气不好,回溯算法就是一个暴力遍历(当答案就是最后一条搜索路径)。回溯算法又称为试探法,它的主要思想如上。回溯算法针对大多数问题有如下特点:问题的答案有多个元素、答案需要满足一些约束(如数独)、寻找答案...
2019-04-11 19:48:01 728
原创 广度优先遍历算法-03树的右侧问题
树的右侧简介一个有点变形的二叉树的层序遍历。问题描述现在有一个果树,该树果子节点符合二叉树的分布,小王按照规定只能摘到从树的右侧看过去看到的第一个节点,求出节点序列。问题分析举例如下假定树形如上,小王得到的结果为1,3,5,7。其实,这不过是一个层序遍历,求出每一层最后的那个结果而已。算法流程初始化队列,将根节点入队,当前第一层。遍历队列的每个节点,...
2019-04-10 17:09:26 306
原创 广度优先遍历算法-02合法的括号问题
合法的括号简介比较基础的BFS题目。注意,由于要对不合法的字符串最小步数删减为合法的字符串,所以BFS合适。之所以选择BFS,是因为要返回的结果为删减最小数目的括号后使字符串合法,“就近搜索显然合适”。问题描述给定一个字符串,字符串会出现字母和"(“以及”)",认为左右括号匹配完全的字符串是合法的,不完全的通过删除若干个括号得到合法字符串,现在要求移除最少数目的括号,使得其合...
2019-04-10 16:14:14 424
原创 数据挖掘竞赛-美国King County房价预测训练赛
美国King County房价预测训练赛简介DC上的一个回归题(正经的回归题)。比较简单。时间原因(暂时没什么时间看国内旧赛),看了一下网上的解答,改善了一下神经网络就提交了。过程数据获取报名成功后到官网提供的入口下载,或者我的Github也上传了。数据探索简单了解数据格式。训练集有10000条记录,14个特征,描述如下。(注意,官方数据集没有表头)其...
2019-04-09 21:40:26 5041 9
原创 广度优先遍历算法-01寻找制高点问题
寻找制高点简介比较基础的BFS问题,但是是很多算法题的模板。问题描述现在,有一个矩阵,矩阵的每个值代表山的高度(均大于1),现在要求找到这个山的所有制高点。制高点指的是通过这个点可以从上下左右四个边界走出去这个矩阵平面,注意,是四个边界都能走出去。在整个平面的移动规则是从一个点只可以向上下左右四个方向走,并且只能走到不大于自己的值的位置上去。问题分析这是一个典型的搜...
2019-04-09 18:24:43 1470
原创 深度优先遍历算法-03二叉树路径遍历问题
二叉树路径遍历简述比较基础的一个DFS的题目,但是确实很多难题的模板。LeetCode很多二叉树的题本质上就是这个路径遍历。本题为了输出路径,使用DFS的经典结构栈完成。问题描述给定一个二叉树结构(通过类定义节点及父子关系),输出所有到达叶子节点的路径。(二叉树只是标准二叉树)问题分析明显的遍历题,那么是何种遍历呢?显然,优先的是到达叶子节点而不是辐射更大的范围,这是...
2019-04-08 14:56:54 1046
原创 深度优先遍历算法-02最大岛屿问题
最大的岛屿简介比较常见的棋盘类型的DFS问题。问题描述给定一个二维矩阵,其中0代表海洋,1代表陆地(相邻的1连接形成岛屿),现在要求找到最大岛屿面积。是不是有一种LeetCode的既视感。问题分析简单暴力的核心思路就是计算每个岛屿的面积,找到最大的即可。使用从左到右,从上到下的思路遍历矩阵,找到1就说明发现了岛屿,就以岛屿为出发点开始计算面积(根据这个面积决定是否更...
2019-04-07 18:41:58 1961 2
原创 深度优先遍历算法-01小偷偷东西问题
小偷偷东西问题前言深度优先遍历是经典的图论算法,深度优先遍历算法的搜索逻辑和它的名字一样,只要有可能,就尽量深入搜索,直到找到答案,或者尝试了所有可能后确定没有解。简单来说,深度优先遍历就是按照某规则(如检索当前节点的第一个子节点)检索某个节点,直到检索完毕再去检索其他节点。搜索问题的本质就是试探问题的所有可能选择,按照特定的规律和顺序,不断去搜索答案,直到找到问题的解。如果把所有可能...
2019-04-06 16:09:08 2673
原创 机器学习-回归之逻辑回归算法原理及实战
逻辑回归简介在一元回归和多元回归模型中,处理的因变量都是数值型区间变量,建立的模型描述的是因变量的期望与自变量之间的线性关系。然而,在实际的问题分析时,所研究的变量往往不全是区间变量而是顺序变量或者属性变量,如二项分布的问题。例如,在医疗诊断中,可以通过分析病人的年龄、性别、体质指数、平均血压、疾病指数等指标,判断这个人是否有糖尿病,假设y=0表示未患病,y=1表示患病,这里的因变量就是...
2019-04-05 19:21:09 590
原创 机器学习-回归之一元回归与多元回归算法原理及实战
一元回归分析和多元线性回归前言在统计学中,回归分析(Regression Analysis)指的是确定两种或两种以上变量间的相互依赖的定量关系的一种分析方法。该方法常使用数据统计的基本原理,对大量统计数据进行数学处理,并确定因变量与某些自变量的相关关系,建立一个相关性较好的回归方程(函数表达式),并加以外推,用于预测以后的因变量的变化的分析方法。回归分析是一种预测性的建模技术,它研究的是...
2019-04-05 14:48:51 6131
原创 机器学习-聚类之K均值(K-means)算法原理及实战
K-means算法前言机器学习方法主要分为监督学习和非监督学习两种。监督学习方法是在样本标签类别已知的情况下进行的,可以统计出各类样本的概率分布、特征空间分布区域等描述量,然后利用这些参数进行分类器设计。在实际应用中,很多情况是无法预先知道样本标签的,因而只能利用非监督机器学习方法进行分析。聚类分析就是典型的非监督学习方法,它在没有给定划分类别的情况下,根据数据自身的距离或者相似度进行样本...
2019-04-04 21:03:10 1282
原创 机器学习-降维之奇异值分解SVD算法原理及实战
奇异值分解简介PCA是通过特征值分解来进行特征提取的,但它要求矩阵必须是方阵,但在实际应用场景中,经常遇到的矩阵都不是方阵,如N个学生,每个学生有M门课程,其中N!=M, 这就组成了一个M*N的非方阵矩阵,这种情况下无法使用主成分分析,也限制了特征值分解方法的使用。而奇异值分解(SVD),是线性代数中重要的一种矩阵分解,该方法对矩阵的形状没有要求。原理在很多情况下,数据的一小段携...
2019-04-03 13:53:46 1198
原创 机器学习-降维之主成分分析PCA算法原理及实战
主成分分析前言近年来,随着互联网和信息行业的发展,数据已经渗透到各行各业,成为重要的生产因素如数据记录和属性规模的急剧增长。社会已经进入大数据时代,数据越多越好似乎已经成为公理。然而,数据量并不是越大越好,有时过犹不及,在数据分析应用中大量的数据反而会产生更坏的性能。这些海量数据可能含有噪声或冗余信息,当数据集包含过多的数据噪声时,会导致算法的性能达不到预期的效果。移除信息量较少甚至无效信...
2019-04-02 21:21:17 1430
原创 机器学习-集成之AdaBoost算法原理及实战
Boosting和AdaBoost简介Bagging采用的是一种多个分类器简单评分的方式。而Boosting是和Bagging对应的一种将弱分类器组合成为强分类器的算法框架,它根据分类器学习误差率来更新训练样本的权重。AdaBoost算法就是Boosting算法的一种。它建立在多个若分类器的基础上,为分类器进行权重赋值,性能好的分类器能获得更多权重,从而使评分效果更理想。原理Ad...
2019-04-01 19:33:53 1296
OpenCV安装过程缺失文件
2022-03-11
mathpix安装包(201910月更新)
2019-09-27
基础学习路线.mmap
2019-05-19
Mathpix软件安装包
2019-04-17
windows右击新建.md文件的注册表脚本
2018-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人