自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 内部排序算法

外部排序:待排序的记录数量很大,以至内存不能一次全部容纳,在排序过程中还需对外存进行访问。内部排序:待排序记录存放在计算机随机存储器中进行的排序过程。内部排序大致分为五类:插入排序,交换排序,选择排序,归并排序和计数排序。常用基于比较的排序算法:冒泡排序、插入排序、选择排序、希尔排序、归并排序、快速排序非比较的排序算法:计数排序、桶排序、基数排序 插入排序1.直接插入排序...

2018-12-10 19:50:04 343

转载 简述动量梯度下降

原文链接:https://blog.csdn.net/yinruiyang94/article/details/77944338 梯度下降是机器学习中用来使模型逼近真实分布的最小偏差的优化方法。 在普通的随机梯度下降和批梯度下降当中,参数的更新是按照如下公式进行的:W = W - αdW b = b - αdb其中α是学习率,dW、db是cost function对w和b的偏导数。...

2018-11-25 12:36:11 1162 1

原创 哈夫曼树

1.路径长度:一串节点序列k1,k2......kn,从k1到kn经过的分支数即为这两点之间的路径长度,路径长度等于路径上节点个数减1。2.带权路径长度:有时树的节点具有权值,这时节点的带权路径长度规定为从树根节点到该节点之间的路径长度与该点权的乘积。3.树的带权路径长度(WPL):定义为树中所有叶子节点的带权路径长度之和。哈夫曼树又称为最优二叉树,它是n个带权叶子节点构成的所有二...

2018-11-19 19:31:41 316

原创 线索二叉树

已知各种形态的二叉树,假设有n个节点,那么其二叉链表有2n个链域,其中n-1个是非空,n+1个是空链域,那么为了充分利用这些空指针,让这些空指针指向其他节点,这些指针称为线索,该二叉链表又称为线索链表,该二叉树称为线索二叉树(另外设置一个头节点指向树的根)。建立线索有相应的规则,以中序线索二叉树为例:对于一个节点,如果它的左孩子为空,则令其左指针指向该节点在中序遍历时的前驱节点;如果它的右...

2018-11-16 09:13:35 413

转载 几个常用算法的适应场景及其优缺点

本文主要回顾下几个常用算法的适应场景及其优缺点!机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在深度学习很火热,神经网络也是一个不错的选择。假如你在乎精度(accuracy)的话,最好的方法就是通过交叉验证(...

2018-11-13 09:11:14 1388

原创 基于概率论的分类方法:朴素贝叶斯

需要分类器做出分类决策,可以使分类器给出各个类别的概率估计值,然后选择概率最高的作为其的类别。在这里使用到了概率论中的贝叶斯公式:P(A|B)=P(A)*P(B|A)/P(B),其中P(A|B)是后验概率,P(A)是先验概率,P(B|A)/P(B)为调整因子(在已知结果的情况下对先验概率大小做出相应调整得到后验概率)使用朴素贝叶斯进行文档分类可以观察文档中出现的单词,并把每个词的出现或者不...

2018-11-11 17:44:04 426

原创 字符串哈希

Hash算法的意义在于提供了一种快速存取数据的方法。通过把任意长度的输入(又称预映射)通过哈希算法(哈希函数)转化成某种固定长度的输出,该输出即为哈希值(又称散列值):一般就将该哈希值作为数组的下标,将该输入存入其所指向的数组空间(该数组称为哈希表)中。那么再次查找该元素不必遍历数组而是通过计算该元素的哈希值进行直接访问。但是这种转换一般是一种压缩映射,即散列的空间远小于输入的空间,可能会有不...

2018-11-08 19:29:27 334

原创 拉格朗日乘子法与KKT条件解决优化问题

SVM支持向量机是目前非常好用的一种分类算法,但是其中的原理推导涉及了一些数学知识:例如其中在处理我们构建得到的数学模型时,最优化问题中就使用到了拉格朗日乘子法与KKT条件。通常需要解决的优化问题有三类:1.无约束的优化问题   min f(x)                         求取f(x)的导数使其为零,求解出候选值,在其中验证选择出最优值,就是高中常用的方法。...

2018-10-25 20:45:40 868

原创 KMP算法

KMP算法是解决字符串匹配问题的经典算法,相比较于二重循环暴力破解法,KMP匹配算法的效率大大提高。暴力破解法的第一重循环是主串的i指针遍历主串的所有位置作为基点的情况,第二重循环是模式串的j指针与i指针依次比较各自指向的元素是否相等,如果不相等则i指针回溯到新的基点开始与j重新比较。直到主串剩余元素个数小于模式串长度还没有找的,则说明无法完成匹配。明显暴力法会做出许多浪费的操作,KMP算...

2018-10-23 19:39:26 124

原创 sklearn-最小二乘线性回归

sklearn是机器学习中的一个常用的python第三方模块,里面对机器学习的许多方法进行了封装,在进行机器学习的任务时,许多常用的算法可在这个模块中直接调用。并且sklearn中还提供了许多可用于分类、回归的优质数据集。使用好sklearn最直接的方法就是仔细阅读官方http://scikitlearn.org/stable/index.htmlsklearn就像是一个模板库,是许多机器学习...

2018-10-22 08:50:54 3987

原创 《机器学习实战》使用ID3算法构造决策树

决策树是一个基本回归和分类的算法决策树的优点:1.易于理解和解释,并且可以可视化。2.几乎不需要数据预处理。决策树还不支持缺失值。3.可以同时处理数值变量和分类变量。其他方法大都适用于分析一种变量的集合。4.可以处理多值输出变量问题。决策树的缺点:决策树学习可能创建一个过于复杂的树,也就是过拟合(overfitting)但是我们可以通过修剪决策树,合并相邻的无法产生大量信息增益...

2018-10-18 19:45:01 3591 1

原创 《机器学习实战》K近邻算法

最近刚学完《机器学习实战》的K近邻算法,自己在Anaconda的JupyterNotebook环境下进行了代码实现和数据集的运行与测试。具体内容博士的博客写得非常详细,很值得深入学习了,该博客链接:http://blog.csdn.net/c406495762最近知道了KNN算法不仅可以用来分类,还可以进行回归的实现,原理是:通过找出一个样本最近的K个邻居,将这些邻居的特征值的平均值赋...

2018-10-14 22:35:20 156

原创 《机器学习实战》逻辑回归算法简单Python实现

Logistic回归假设有一些数据点,对这些数据点用一条直线进行拟合,这个拟合的过程称为回归。使用逻辑回归进行二分类的思想是:根据现有的数据对分类边界线建立回归公式依此进行分类!原理公式——求最佳的特征参数θ分类可知真实值只有两个取值0和1,那么需要将计算得到的函数值转换为在0—1之间的数值,于是用了Sigmoid函数:g(z)=1/(1+e^-z)将参数换成一个线性回归公...

2018-10-11 21:57:27 1018

原创 批量梯度下降算法及简单Python实现

算法理论为了实现监督学习,假设对于因变量y有自变量x1x2,则有y=θ1x1+θ2x2+θ0θ0是偏移量,令θ0=1,得到:我们再定义误差函数j(θ)(系数为1/2是用来消去后面的2)来表示h(x)与y的接近程度:目的是使误差函数最小,需要求得使误差函数最小时的参数θ。对θ先随机初始化然后不断更新,更新算法使用梯度下降算法:该更新公式的大致推导如下:那么需要计算的是...

2018-09-28 18:32:22 6133

原创 HDU 1571/1572(Java版)

下沙小面的(1)Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1429    Accepted Submission(s): 593Problem DescriptionLele 在下沙高校中有很多同学,所以他有时间也经常到...

2018-09-27 19:41:19 131

原创 pandas.read_csv() 读取csv文件

在Python中经常使用pandas来处理表格文件:import pandas as pdf=open("学生体测成绩表.csv",encoding='utf-8')myfile=pd.read_csv(f) //文件名中含有中文字符是不能直接作为read_csv的参数的如果报错CParserError: Error tokenizing data. C error: Expec...

2018-09-24 12:53:30 1221

原创 C++ 快速幂

快速幂就是在普通幂运算的基础上尽量减少乘法运算的次数:例如(7^7)%4可以看为((7%4)^7)%4(3^7)%4(((3*3)%4)^6)%4(1^6)%4(1^(2*3))%4   // 就像将(7^16)变成(49^8)(1^3)%4.......下面是对应代码 :a为底数,b是指数,m是要准备取模的数快速幂取模就是在快速幂的基础上每步取模!l...

2018-09-20 20:24:00 1678

原创 HDU1015 Safecracker

Problem Description=== Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Klein safe behind a painting in the second-floor library. Klein safes are extremely rare; most of them, al...

2018-09-19 19:35:59 132

原创 STL vector/set集合运算

经常用的集合运算有四种:求交集  set_intersection(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin())求并集  set_union(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin())求差集  set_difference(a.begin(),a...

2018-09-18 19:31:47 384

原创 HDU 1051Wooden Sticks

Problem DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It nee...

2018-09-17 20:46:46 228

原创 HDU 1175连连看

Problem Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将...

2018-09-15 19:01:46 117

原创 HDU 1072Nightmare

Problem DescriptionIgnatius had a nightmare last night. He found himself in a labyrinth with a time bomb on him. The labyrinth has an exit, Ignatius should get out of the labyrinth before the bomb e...

2018-09-15 12:40:17 228

原创 康拓展开式

X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0!。这就是康托展开式,该展开式是用来求一个排列在其全部排列序列中是在第几个的位置。举个例子:1324是{1,2,3,4}排列数中第几个大的数:第一...

2018-09-14 18:17:24 273

原创 HDU1597 find the nth digit

Problem Description假设:S1 = 1S2 = 12S3 = 123S4 = 1234.........S9 = 123456789S10 = 1234567891S11 = 12345678912............S18 = 123456789123456789..................现在我们把所有的串连接起来S = 112123...

2018-09-12 20:49:47 114

原创 HDU2141/POJ2785(二分查找)

HDU - 2141 Can you find it?Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate if you can find the three numbers Ai, Bj, Ck, which satisfy the formula...

2018-09-11 19:55:05 239

原创 P1097 蛇形矩阵

时间限制: 1Sec 内存限制: 64MB 提交: 1451 解决: 798题目描述蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。输入本题有多组数据,每组数据由一个正整数N组成。(N不大于100)输出对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。样例输入5样例输出...

2018-09-09 20:35:50 245

原创 P1094 字符串的输入输出处理

题目描述字符串的输入输出处理。输入第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。输出先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。样例输入2www.dotcpp.com DOTCPPA C MD O T...

2018-09-09 09:46:52 405

原创 筛选法求素数

普通筛法--埃拉托斯特尼筛法基本定理:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积从此定理出发,可得出以下求素数的方法:#include<iostream>#include<cstring>using namespace std;int main(){ int n, tot = 0; int prime[1000...

2018-09-09 08:39:12 210

原创 洛谷1334 瑞瑞的木板

题目描述瑞瑞想要亲自修复在他的一个小牧场周围的围栏。他测量栅栏并发现他需要N(1≤N≤20,000)根木板,每根的长度为整数Li(1≤Li≤50,000)。于是,他神奇地买了一根足够长的木板,长度为所需的N根木板的长度的总和,他决定将这根木板切成所需的N根木板。(瑞瑞在切割木板时不会产生木屑,不需考虑切割时损耗的长度)瑞瑞切割木板时使用的是一种特殊的方式,这种方式在将一根长度为x的模板切为两根...

2018-09-02 17:32:26 280

原创 洛谷1434 滑雪

题目描述Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813...

2018-09-01 20:22:27 188

原创 洛谷1536 村村通

题目描述某市调查城镇交通状况,得到现有城镇道路统计表。表中列出了每条道路直接连通的城镇。市政府“村村通工程”的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要相互之间可达即可)。请你计算出最少还需要建设多少条道路?输入格式:每个输入文件包含若干组测试测试数据,每组测试数据的第一行给出两个用空格隔开的正整数,分别是城镇数目N(N<1000)和道路数目M;随后...

2018-09-01 20:04:21 214

原创 洛谷1101 单词方阵

题目描述给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如:输入:8                     输出:qyizhong              *yizhonggy...

2018-09-01 16:43:38 169

原创 C++ cin.get及cin.getline的用法

C++中常用的输入有cin和scanf,但是它们的是以空白字符(空格符,回车符,制表符)作为分割字符的,如果涉及到整行的输入模式就不能在考虑cin和scanf了。1.  cin.get()从指定的输入流中提取一个字符,函数返回值是该字符。读取失败会返回EOFint main(){ char c; while(c=cin.get()!=EOF) //或者while(...

2018-09-01 14:14:24 729

原创 基于数组实现简易栈

手工栈的简单实现是借用数组完成,可以实现入栈出栈,检查栈是否为空等操作,实现的栈具有先进后出的特性。typedef struct Stack{ char data[1001]; //用来存放记录在栈中的数据 int top; //栈顶指针 int base; //栈底指针}Stack;Stack s;其中栈顶栈底指针...

2018-08-31 20:38:37 269

原创 十进制数转换为八进制(栈实现)

输入一个十进制数值,将其转换为相应的八进制(四进制二进制同理),完全可以利用栈先进后出的特性来实现,栈容器在C++中有现成模板可以直接使用(也可以手工实现使用函数调用)。#include<iostream>#include<stack>using namespace std;int num;int main(){ while (scanf("%d", &a...

2018-08-30 15:02:32 19553 1

原创 HDU 1272 小希的迷宫

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 38688    Accepted Submission(s): 11861Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在...

2018-08-30 14:34:38 95

原创 POJ1456 Supermarket

 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16773   Accepted: 7534 DescriptionA supermarket has a set Prod of products on sale. It earns a profit px for each prod...

2018-08-26 13:31:50 102

原创 HDU 1875畅通工程再续

Problem Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米...

2018-08-25 17:49:10 140

原创 解决最小生成树MST的两个算法

最小生成树:在N个顶点的图中选择N-1条边构成一个极小连通子图,使该极小连通子图的所有边权之和最小,称其为该图的最小生成树。求解图的最小生成树算法有常用的两个。Prim算法:普林算法是依赖点的算法,从点的方面去考虑构成一颗最小生成树,基本思想是:假设有图G,顶点集合U,先从U中任意选出一点进入集合V。再从U-V中选出一点使其到V中任意一点的权值最小,将该点也加入到V;继续依此重复从U-V中...

2018-08-24 20:29:15 1667

原创 拓扑排序

在一个表示工程的有向图中,如果顶点表示活动,有向边表示活动的优先关系,这种有向图叫做顶点表示活动的优先次序的网络,简称为AOV网。如果一个AOV网可以进行拓扑排序,则这个工程是可以顺利进行的。拓扑排序是确定AOV网拓扑序列的一种排序方法,AOV网的拓扑序列并不是唯一的。实现的基本思想也比较简单:使用一个容器维护每个点的信息,包含其入度数和所有后继点信息,将所有入度数为零的点压入队列(或者使...

2018-08-22 12:47:41 735

空空如也

空空如也

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

TA关注的人

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