自定义博客皮肤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)
  • 资源 (3)
  • 收藏
  • 关注

转载 Python学习相关文档

试验性Numpy教程Numpy相关函数官方文档matplotlib教程

2019-02-03 10:26:22 182

原创 多分类问题的另一种处理策略——softmax回归

本篇博客主要讨论由logistic回归的推广出的softmax回归来处理多分类问题的一种方法,以下为本人的个人理解,如有错误,欢迎指出。同时对于参考的文章在最后有列出,对这些大佬们表示感谢。本文的主要内容如下:1.由logistic回归的不足引入softmax回归2.softmax函数的引入3.softmax回归的代价函数形式4.分析代价函数形式的由来——交叉熵的引入5.由交叉熵与代...

2018-12-19 19:25:35 3400 2

转载 机器学习中的范数规则化之L21范数

先看上面l21范数的定义,注意原始矩阵是n行t列的,根号下平方是对列求和,也就是说是在同一行中进行操作的,根号部分就相当于一个l2范数,由此可以看出l21范数实则为矩阵X每一行的l2范数之和。在矩阵稀疏表示模型中,把它作为正则化项有什么作用呢?前面说到它是每一行的l2范数之和,在最小化问题中,只有每一行的l2范数都最小总问题才最小。而每一个行范数取得最小的含义是,当行内尽可能多的元素为0时,约...

2018-12-12 14:49:40 11761

转载 机器学习中的范数规则化之核范数及其应用

我的博客中参考了大量的文章或者别的作者的博客,有时候疏忽了并未一一标注,本着分享交流知识的目的,如果侵犯您的权利,这并非我的本意,如果您提出来,我会及时改正。主要内容概述:1.核范数的引入及其作用2.稀疏与低秩3.核范数的相关应用1.核范数的引入及其作用核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm。这个相对于上面火热的L1和L2来说,可能大家就会陌生点。那它...

2018-12-12 14:42:24 7070 5

原创 机器学习中的范数规则化之L0、L1、L2范数

我的博客中参考了大量的文章或者别的作者的博客,有时候疏忽了并未一一标注,本着分享交流知识的目的,如果侵犯您的权利,这并非我的本意,如果您提出来,我会及时改正。本篇博客主要是为了解决机器学习中的过拟合和规则化问题,内容以线性回归为基础进行阐述,其优化使用的均为向量范数。主要内容概述如下:0.从监督学习中的优化问题谈起1.范数的引入2.范数的定义及公式3.L0、L1范数的理解4.L2范数...

2018-12-11 22:30:02 1336

原创 吴恩达机器学习之线性逻辑回归实现部分

C++实现“linear_regression.h”//二分类逻辑回归模型struct elem_log{ double y; double* x; //用数组传入自变量数据(x[0]=1,便于之后的计算)};class logistic_reg{//与线性回归的不同点在于hx不同public: logistic_reg(int xnum, ele...

2018-12-06 13:17:59 134 1

原创 吴恩达机器学习之逻辑回归理论部分

一.特征函数对应分类问题,我们先针对二分类问题进行讨论,对应计算机而言,分类即将数据按其特征值不同分为不同的集合,仅对应二分类问题,我们只需考虑分为:正类和负类,为此我们引入特征函数。y=1 — 代表二分类中的正类y=0 — 代表二分类中的反类这是特殊函数在集合意义上的理解,如果换成概率角度上的理解呢?对应二分类问题(监督学习),我们如果设置一个标准值,按照NG的说法设置为1(正...

2018-12-06 12:50:08 200

原创 吴恩达机器学习之多变量线性回归实现部分

C++实现梯度下降法“linear_regression.h”//多变量线性回归模型struct elem_var2{ double y; double* x; //用数组传入自变量数据(x[0]=1,便于之后的计算)};class var2_lin_reg{public: var2_lin_reg(int xnum, elem_var2* p, i...

2018-11-28 19:26:21 316

原创 吴恩达机器学习之多变量线性回归理论部分

本博客主要参考此博客:恋雨心一.Multiple Features — 多维特征相对于单变量线性回归模型,多变量线性回归模型适用于处理多个变量/特征。对比:以之前我们介绍的单变量线性回归模型为例:用房屋面积x预测房子价格y。现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,…,xn)。增添了更多特征后,我们引入以下新的注释...

2018-11-28 18:47:05 350 1

转载 pycharm快捷键、常用设置、配置管理

较全讲解

2018-11-21 21:01:32 116

原创 吴恩达机器学习之单变量线性回归实现部分

C++实现代码实现“linear_regression.h”//单变量线性回归模型struct elem_var1{ double x, y; //训练集元素数据:自变量、因变量};class var1_lin_reg{public: var1_lin_reg(const elem_var1* p, int size, double rate); ...

2018-11-17 15:35:55 170 1

原创 吴恩达机器学习之单变量线性回归理论部分

理论部分1.方程形式在进行数据处理过程中,有时数据图像可拟合成单变量线性函数,即2.如何拟合此时,我们虽知道拟合函数的形式,但如何拟合仍是个问题,怎样拟合可以最接近实际数据情况呢?最小二乘法此时我们引入代价函数这个概念代价函数接下来我们来分析如何引入这个式子首先先看求和符号右边的平方式,这个平方式也叫做平方损失函数,这个式子是怎么来的呢?对于一个拟合的线性函数,函数对应...

2018-11-17 14:53:55 209 1

原创 枚举专题

POJ-2965:冰箱分析先看一个简单的问题,如何把’+‘变成’-‘而不改变其他位置上的状态? 答案是将该位置(i,j)及位置所在的行(i)和列(j)上所有的 handle 更新一次。 结果该位置被更新了 7 次,相应行(i)和列(j)的 handle 被更新了 4 次,剩下的被更新了 2次.被更新偶数次的 handle 不会造成终状态的改变. 因此得出高效解法,在每次输入碰到’+'的时候,...

2018-11-13 23:10:09 91

原创 new和delete创建和销毁二维数组

int** new_arry(int row, int col){//创建arry【row】【col】 int**arry = (int**)new int*[row]; for (int i = 0;i < row;i++) { arry[i] = new int[col]; } for (int i = 0;i < row;i++) for (int j = 0...

2018-11-11 21:36:30 482 1

原创 欧几里得算法

欧几里得算法部分内容转载于:欧几里得算法(辗转相除法)原理**辗转相除法:**以大数除以小数,如果能整除,那么小数就是所求的最大公约数(Greatest CommonDivisor:gcd)。否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数。依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数。即:gcd(x,y)表示x与y的最大公约数,有gcd(x,y)=gcd(...

2018-11-11 20:45:47 202

原创 二分查找

二分查找//二分法的标准写法while (L <= R){ if () L = mid; else R = mid;}因为a/b是向下取整,所以while(L<R)为二分判断标准时,循环会跳不出,因为当R=L+1时,mid=(L+R)/2=L,会变成死循环。题目修路HRBUST-1039解题分析:二分求解,分析时间的范围最大时间:整条路由一个队来...

2018-11-09 17:20:50 96

原创 树状数组模板类

树状数组//树状数组类class BITree{//树状数组数值处理部分:1~BITree_num //实际操作中建议数组开大一点public: BITree(int dim,int x,int y); //构造(维数,树状数组长度) ~BITree(); //析构 in...

2018-10-30 20:29:45 122

原创 树状数组相关应用之二元变量结构体组队问题

一维数组处理二元问题此类问题的处理方法一般采用定一议二POJ—1900:Moofest思路: 树状数组分析:1 题目给定n头牛的听力v[i]. 现在规定两头你i和j如果要进行交流的话那么消耗的能量就是dis(i,j)max(v[i].v[j]),现在问n头牛总共的n(n-1)*2种方式消耗的总的能量2 题目要求的是所有的牛的交流方式的总的消耗能量看这个样例3 12 52 6...

2018-10-30 09:39:18 170 1

原创 树状数组相关应用之多叉树子树问题

Poj-3321:Apple Tree题意:卡卡的房子外面有一棵苹果树。每年秋天,树上都会长出许多苹果。卡卡非常喜欢苹果,所以他一直在精心培育着这棵大苹果树。这棵树有N个分叉,这些分叉由树枝相连。卡卡把叉的编号从1到N,根编号总是1。苹果会在叉子上生长,两个苹果不会在同一个叉子上生长。卡卡想知道一个子树上有多少个苹果,因为他研究的是苹果树的生产能力。问题是一个新的苹果可能会在空叉子上生...

2018-10-27 11:11:56 560 1

原创 多叉树/图结构维护问题转线性结构——dfs序

dfs——深度优先遍历搜索存储结构:链式向前星下面是我看到的一篇很好的链式向前星讲解文章:深度理解链式向前星转载出处: https://blog.csdn.net/ACdreamers/article/details/16902023链式向前星的逻辑结构如下dfs的运行代码//建立边结构体struct edge{ int To; //第i条边的...

2018-10-27 11:01:14 266

原创 树状数组相关应用之区间更新单点查询问题

区间更新单点查询树状数组的基本应用是单点更新,区间查询(例如求区间和)。鉴于树状数组的空间复杂度和时间复杂度都比线段树小 而且代码也短 所以就有大神用强大的脑洞YY出了区间修改+单点查询的树状数组区间更新原理差分法设a数组表示原始的数组;设d[i]=a[i]-a[i-1] (1<i≤n,d[1]=a[1]);设f[i]=f[i-1]+d[i] (1<i≤n,f[1]=...

2018-10-24 20:57:54 364

原创 树状数组相关应用之区间包含问题

区间包含问题对于一维区间问题一般是采用定一议二的方法区间外包含问题:POJ-2481对于此问题我们可以先按x升序排序(x值相同,y大的排在前面),保证之后输入的区间的左端必在之前输入区间之内,若x值相等,y降序,则之后输入区间的右端必在之前输入区间之内,那么此题便转化为对y求后缀数组和问题#include <iostream>#include <cstring&gt...

2018-10-18 13:21:42 244 1

原创 树状数组相关应用之平面范围求和问题

平面范围求和此类问题实际上是树状数组推广到二维的情形平面子矩阵求和:POJ-2352此题是求【0–x】【0–y】矩阵中除自身【x】【y】外的求和二维解法:#include <iostream>#include <cstring>#include <algorithm>#include <stdio.h>#define M...

2018-10-18 12:58:15 113 1

原创 树状数组相关应用之逆序对问题

求逆序对一元逆序对问题:POJ-2299此题本质是一个求逆序对问题,对于一个无序数列,我们按照其顺序依次输入,并在每次输入时通过树状数组对已输入数列在其后方的序列进行个数求和,即可得到逆序数(先输入却比他大,在其后方)需要注意的是数列的值可能相差较大,如果按值更新树状数组会浪费很多空间,对于此问题我们可以利用数据的离散化来处理#include <iostream>#inc...

2018-10-17 20:25:28 132

原创 关于树状数组的个人理解

以下内容部分转载于:彻底理解树状数组树状数组彻底入门树状数组(Binary Indexed Tree)——二进制索引树树状数组问题模型首先我们搞明白树状数组是用来干嘛的,现在有一个这样的问题:有一个数组a,下标从0到n-1,现在给你w次修改,q次查询,修改的话是修改数组中某一个元素的值;查询的话是查询数组中任意一个区间的和,w + q < 500000。这个问题很常见,首先分...

2018-10-13 00:17:21 243 1

转载 排序专题之C++中的sort函数调用

近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧!(一)为什么要用c++标准库里的排序函数Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!(二)c++标准库里的排序函数的使...

2018-10-12 21:06:13 176

原创 排序专题之归并排序

基本原理归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把 待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有 序序列。归并排序的平均时间复杂度 O(NlogN)。 归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操 作。如:设有数列{6,202,100,301,38,8,1}初始状态: [6] [20...

2018-10-10 21:41:01 154

原创 排序专题之冒泡排序

冒泡排序原理(1)将整个待排序的记录序列划分成有序区和无序区。初始状态有序区为空,无序区 包括所有待排序的记录。(2)对无序区从前向后依次将相邻记录的关键字进行比较,若逆序则将其交换,从而 使得关键字值小的记录向上“飘”(左移),关键字值大的记录向下“沉”(右移)。 每经过一趟冒泡排序,都使无序区中关键字值大的记录进入有序区,对于由 n 个记录组 成的记录序列,多经过 n-1 趟冒泡排序,就...

2018-10-10 19:43:18 448

转载 KMP算法的理解

具体理解细节参考转载:https://blog.csdn.net/starstar1992/article/details/54913261说明KMP算法看懂了觉得特别简单,思路很简单,看不懂之前,查各种资料,看的稀里糊涂,即使网上最简单的解释,依然看的稀里糊涂。我花了半天时间,争取用最短的篇幅大致搞明白这玩意到底是啥。这里不扯概念,只讲算法过程和代码理解:KMP算法求解什么类型问题...

2018-10-09 11:41:56 151

原创 利用栈来处理大数加法

大数加法问题用栈来模拟因为两个数串由高位到低位输入,由低位到高位计算,最后由高位到低位输出,故选择用栈模拟#include <iostream>#include <cstring>#define MAXSIZE 200using namespace std; //使用名称空间stdtypedef struct{ int* to

2018-10-05 17:13:30 441

原创 约瑟夫环的两种解法

n个人想玩残酷的死亡游戏,游戏规则如下:n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号。Input输入n和m值。m>1。Output输出胜利者的编号。Sample Input5 3Sample Output4Hint第一轮:3被杀第二轮:1被杀第三轮:5被杀第四轮:2被...

2018-10-04 16:03:23 233

原创 用数组模拟链式结构

在实际程序设计过程在,手撸链表及单链表的单向遍历和双链表的复杂操作带来很多不便。其实,为了模仿链式结构可用两个数组代替,及前驱数组pre和后继数组next。这种方法方便了我们对于链式结构的建立与处理,但其不足之处在于占用了较多的空间,有较高的空间复杂度,且其只是单纯的逻辑模拟,只支持删除操作,不支持插入操作,即使如此,其作为逻辑跳转表也是可取的,下面以一道简单题为例:#include &lt...

2018-09-28 00:30:10 532

空空如也

空空如也

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

TA关注的人

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