自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (2)
  • 收藏
  • 关注

原创 softmax回归

softmax回归假设函数:是逻辑回归中sigmoid的扩展。损失函数为:但是softmax有一个特点:它有一个“冗余”的参数集。例如我们从每个theta向量中减去一个向量。换句话说,softmax模型被过度参数化了,对于任意一个用于拟合数据的假设函数,可以求出多组参数值,这些参数得到的是完全相同的假设函数。进一步而言,如果(theta1, theta2, ..

2018-01-30 15:39:03 371

原创 为什么交叉熵可以作为损失函数?

通俗的理解:熵:可以表示一个事件A的自信息量,就是A包含多少信息。KL散度:可以用来表示从事件A的角度来看,事件B有多大不同。交叉熵:可以用来表示从事件A的角度来看,如何描述事件B。熵的公式:KL散度的公式:交叉熵的公式:所以A与B的交叉熵 = A与B的KL散度 - A的熵当A的熵一定,最小化交叉熵与最小化KL散度等价。例如在逻辑回归中,

2018-01-30 14:25:49 4151

原创 c++中的异常

一个简单的例子:#include <iostream>using namespace std;double division(int a, int b){ if(b == 0){ throw "divided by zero!"; } return (a / b);}int main(){ try{ double z = divis

2017-11-15 10:35:45 385

原创 c++面向对象笔记

1.继承类型继承形式如下:class derived-class: access-specifier base-class当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。我们几乎不使用 protected 或 private 继承,通常使用 public 继承。当使

2017-11-15 10:26:58 282

原创 c++中虚继承

为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。 class 派生类名:virtual 继承方式 基类名 virtual是关键字,声明该基类为派生类的虚基类。 在多继承情况下,虚基类

2017-11-14 21:51:28 259

原创 c++中lambda表达式的用法

基础用法两点注意1.基础用法c++11提供了对匿名函数的支持,称为Lambda函数(也叫Lambda表达式)。Lambda表达式把函数看作对象。Lambda表达式可以像对象一样使用,比如将它们赋给变量和作为参数传递,还可以像函数一样对其求值。Lambda表达式本质上与函数声明非常类似。Lambda表达式具体形式如下: [capture](parameters)mutable->return-ty

2017-11-14 16:56:52 8999

原创 gcc编译cpp文件为什么要加-lstdc++

gcc可以编译c++文件,也可以编译c文件,但默认是编译c文件的,加-lstdc++表示编译c++文件,即链接c++库,加-lc表示链接c库,默认情况下就是链接c库,所以如果编译c文件可以不加-lc。

2017-11-14 09:37:23 9913

原创 linux下运行文件为什么要加./

原因是可执行文件的目录没有包含在环境变量PATH中,linux系统只会搜索PATH变量。而windows下却可以是因为系统会搜索PATH变量和当前目录。

2017-11-13 21:21:35 5228 1

原创 基础的vimrc设置

" 设置新文件的编码为 UTF-8set encoding=utf-8"显示当前的行号列号:set ruler""在状态栏显示正在输入的命令set showcmd" 左下角显示当前vim模式set showmode" 在上下移动光标时,光标的上方或下方至少会保留显示的行数set scrolloff=7" tab相关变更set tabstop=4

2017-11-01 10:59:46 471

原创 EM算法——一步步推导

可观测数据Y,不可观测数据Z,模型参数为Θ\Theta,那么我们的目标就是(极大似然函数):maxΘ∏i=1mp(xi;Θ)\max_{\Theta}{\prod_{i=1}^{m}{p(x_i; \Theta)}}log似然函数:maxΘ∑i=1mlogp(xi;Θ)\max_{\Theta}{\sum_{i=1}^{m}{\log p(x_i; \Theta)}}加入隐变量:maxΘ∑i=1ml

2017-09-22 18:40:48 512

原创 生成式算法与判别式算法

前言:网易公开课机器学习 第五课 生成学习算法的观后感或者总结笔记1. 区别生成式算法:对p(x|y)和p(y)进行建模,也可以说是对p(x,y)进行建模,即求x,y的联合分布。比如GDA(Gaussian Discriminant Analysis),有两个类别0和1,分别对p(x|y=0)和p(x|y=1)进行建模,还有p(y=0)和p(y=1)进行建模,最终y^=argmaxip(x|y=i)

2017-09-21 12:25:36 2285

原创 泰勒公式

泰勒公式就是用某点的导数信息来求附近某点的值,用多项式来逼近函数值。f(x)在点a处泰勒展开,要求f(x)在x=a处n阶可导:f(x)=∑n=0∞f(n)(a)(x−a)nn!=f(a)+f′(a)(x−a)+f′′(a)(x−a)22!+⋯+f(n)(a)(x−a)nn!+Rn(x)\begin{aligned}f(x)&=\sum_{n=0}^{\infty}{\frac{f^{(n)}(a

2017-09-17 21:05:55 4017

原创 机器学习之CART算法python实现

#coding=utf-8################################################################Copyright: CNIC#Author: LiuYao#Date: 2017-9-15#Description: implements the CART algorithm#############################

2017-09-15 17:16:30 2218

原创 机器学习之线性回归python实现

一 理论基础线性回归岭回归lasso回归局部加权线性回归二 python实现代码结果数据一. 理论基础1. 线性回归损失函数: L(w)=12M∑i=1m(y−xiw)2L(w) = \frac{1}{2M}\sum_{i=1}^{m}{(y - x_iw)^2} 闭式解:W=(XTX)−1XTYW = (X^TX)^{-1}X^TY 如果XTXX^TX没有逆矩阵,则不能用这种

2017-09-14 15:03:28 5774

原创 协方差与相关系数 numpy中cov与corrcoef的使用

协方差与相关系数协方差与相关系数协方差相关系数1.协方差如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值时另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。可以通俗的理解为:两个变量在变化过程中是同方向变化?还是反方向变化?同向或反向程度如何?

2017-09-12 18:17:16 42754

原创 机器学习算法之AdaBoost算法python实现

一 理论基础算法描述算法步骤训练误差分析算法的理论解释与推导前向分步算法前向分步算法步骤前向分步算法与AdaBoost二 python实现代码结果一. 理论基础结合后面代码看理论基础,将会更加清楚。1. 算法描述AdaBoost算法是boosting方法的代表性算法。给定一个训练集,adaboost求一系列比较粗糙的分类器(弱分类器),每学完一个弱分类器,改变训练数据的概率分布(权

2017-09-11 16:39:18 1510

原创 机器学习之决策树算法python实现

一 理论基础特征选择a 信息熵b 条件熵c 信息增益d 信息增益比决策树的生成决策树的剪枝二 python实现代码结果一. 理论基础1. 特征选择a. 信息熵H(D)=∑i=0kpilogpiH(D)=\sum_{i=0}^{k}p_i \log{p_i}b. 条件熵H(Y|X)=∑i=0npiH(Y|X=xi)H(Y|X) = \sum_{i=0}^{n}{p_i H(Y | X

2017-09-06 20:34:43 712

原创 机器学习之KNN算法python实现

机器学习之KNN算法python实现机器学习之KNN算法python实现一 理论基础距离度量k值选择分类决策规则kd树二 python实现代码结果数据一. 理论基础1. 距离度量特征空间中两个实例点的距离是两个实例点相似程度的反映。一般采用欧氏距离,但也可以是其他距离,如cosine距离,曼哈顿距离等.2. k值选择 k值越大,意味着模型越简单,学习近似误差大,估计误差小,欠拟合;

2017-09-05 16:06:02 1486

原创 机器学习之感知机python实现

机器学习之感知机python实现机器学习之感知机python实现一 理论基础损失函数更新参数二 python实现代码结果一. 理论基础1. 损失函数L(w,b)=−∑i=0myi(wxi+b)L(w,b) = -\sum_{i = 0}^{m}{y_i(w x_i + b)}2. 更新参数w=w+α∑i=0mxiyiw = w + \alpha \sum_{i=0}^{m}{x_i y_i

2017-09-04 14:01:40 2718 1

原创 机器学习之支持向量机python实现

前言:纸上得来终觉浅,绝知此事要躬行。 [TOC]一. 理论基础1. 函数间隔: γ^=yi(w∗xi+b)\hat{\gamma}=y_i(w*x_i+b)几何间隔: γ=yi(w∗xi+b∣∣w∣∣)\gamma=y_i(\frac{w*x_i+b}{\mid\mid{w}\mid\mid})2. 优化目标:minα      12∑i=0m∑j=0mαiαjyiyjxixj−∑i=0mαi\

2017-09-03 16:45:32 5441

原创 机器学习之逻辑回归python实现

机器学习之逻辑回归python实现前言: 纸上得来终觉浅,绝知此事要躬行机器学习之逻辑回归python实现理论基础python实现1. 理论基础模型假设: H(W;X)=11+e−(wx+b)H(W;X)=\frac{1}{1+e^{-(wx+b)}} 损失函数(通过最大似然推导): L(W;X)=−1m∏i=0m[yilog(H(W;X))+(1−yi)log(1−H(W;

2017-08-31 20:45:01 739

原创 C语言学习笔记之文件I/O(fgets()函数和fputs()函数)

1、fgets()函数//函数成功将返回buf指针,失败或读到文件结尾返回NULLchar *fgets(char *buf, int bufsize, FILE *stream); 注意: (1)与gets相比使用这个好处是:读取指定大小的数据,避免gets函数从stdin接收字符串而不检查它所复制的缓存的容积导致的缓存溢出问题。 (2)与gets还有一点不同的是,fgets()

2016-03-28 18:52:51 327

原创 C语言学习笔记之字符串I/O(gets()函数和puts()函数)

1、gets()函数//读入成功,返回与参数相同的指针;读入过程中遇到EOF(End-of- File)或发生错误,返回NULL指针。char *gets(char \*); 注意:gets()函数不获取‘\n’,换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。2、puts()函数int puts(const char *string); 注意:

2016-03-28 18:36:58 526

原创 C语言学习笔记之字符I/O(getchar()函数与putchar()函数)

1、getchar()函数1.1 函数原型 //读取成功返回输入字符的ASCII码,出错返回-1。 int getchar();1.2 缓冲区⎧⎩⎨输入a2x+b2y+c2z=d2a3x+b3y+c3z=d3\begin{cases}输入 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3\end{cases}

2016-03-28 16:43:32 869

原创 C语言学习笔记之格式化I/O(scanf函数、printf函数)

1、printf()函数1.1 函数原型//若输出成功,则返回输出的字符数;若输出出错,返回负数int printf(const char *format, item1, item2, ...);1.2 转换说明符|转换说明|输出||--|--------||%a|浮点数、十六进制数字和p-记数法(C99)||%A|浮点数、十六进制数字和p-记数法(C99)||

2016-03-28 14:29:09 918

原创 C语言学习笔记之数据类型

1、整数类型1.1 类型 类型 位数 short(或short int) 16位 int 16位或32位 long (或long int) 32位 long long(或long long int) 64位 注意: (1)如果在long类型等于int类型的系统中编写代码,当确实需要32位整数是,应使用long类型,以便使程序移植到int类型为16

2016-03-27 14:15:00 2613

原创 C语言学习笔记之目标代码文件、可执行文件、库

目标代码文件:源代码转换为机器语言代码,放置其中。 库文件:源代码中用到的库文件中的函数的预编译机器语言代码。 启动代码:相当于程序与操作系统之间的接口。 可执行文件:目标代码文件+库文件+启动代码。

2015-12-02 19:19:38 687

原创 PS学习笔记之裁切的透明

裁切前: 裁切后: 步骤:选择裁切工具; 裁切一块内容,勾选“透明”选项; 调整好要裁切的位置;按enter键或者鼠标左键双击裁切区域内部,完成。

2015-11-03 08:59:45 638

原创 PS学习笔记之色彩模式

模式种类 描述 用途 色域 LAB L表示明度(Luminosity),a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围 眼睛看到的色彩 最大 HSI 色调H(Hue),饱和度S(Saturation),强度I(Intensity) 眼睛看到的色彩 跟LAB差不多 RGB R(Red)代表红色,G(Green)代表绿色,B(Blue)代表蓝色

2015-10-29 22:30:07 516

原创 PS学习笔记之初识分辨率

1、概念 这里介绍屏幕分辨率和图像分辨率(其他的分辨率如扫描分辨率和打印分辨率这里暂时不介绍)。 屏幕分辨率:确定计算机屏幕上显示多少信息的设置,以水平和垂直像素来衡量。 图像分辨率:指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为PPI(Pixels Per Inch),通常叫做:像素每英寸。2、表示方式 屏幕分辨率:水平像素数*垂直像素数

2015-10-14 22:31:08 792

原创 设计模式之备忘录模式

1、核心 就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。2、结构 —源发器类Originator:负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。 —备忘录类Memento:负责存储Originator对象的内部状态,并可以防止Origin

2015-10-13 16:38:27 295

原创 设计模式之观察者模式

1、核心 当一个对象(目标对象)的状态变化时,他需要及时告知一些列对象(观察者),令他们做出响应。将观察者和被观察的对象分离开。2、应用场景 —聊天室程序的服务器转发给所有客户端 —网络游戏(多人联机对战)场景中,服务器将客户端的状态进行分发 —邮件订阅 —Servlet中,监听器的实现 —Android中,广播机制 —JDK的AWT中事件处理模型基于观察者模

2015-10-13 14:54:19 298

原创 设计模式之状态模式

1、核心 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。2、结构 —Context环境类:环境类中维护一个State对象,他是定义了当前的状态 —State抽象状态类 —ConcreteState具体状态类:每一个类封装了一个状态对应的行为 3、适用场景 一个对象的行为取决

2015-10-13 11:52:02 236

原创 设计模式之模板方法

1、核心 定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。2、应用场景 —数据库访问的封装 —Junit单元测试 —servlet中关于doGet/doPost方法调用 —Hibernate中模板程序 —spring中JDBCTemplate、HibernateTemplate等3

2015-10-13 10:22:58 268

原创 设计模式之策略模式

1、核心 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。2、应用场景 JAVASE中GUI编程中,布局管理 Spring框架中,Resource接口,资源访问策略 javax.servlet.http.HttpServlet#service() 3、策略模式角色 —抽象策略角色: 策略类,通

2015-10-13 09:26:54 333

原创 设计模式之解释器模式、访问者模式

用的不多,做个标记,有时间回来补上。

2015-10-13 09:03:56 299

原创 设计模式之命令模式

1、核心 对命令进行封装,将发出命令的责任和执行命令的责任分割开。将“行为请求者”与“行为实现者”解耦。2、结构 —Command:定义命令的接口,声明执行的方法。 —ConcreteCommand:命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。 —Receiver:接收者,真正执行命令的对象。任何类都可能成为一个接收者,只要它能

2015-10-13 09:00:50 365

原创 设计模式之中介者模式

1、核心 -如果一个系统中对象之间的联系呈现为网状结构,对象之间存在大量多对多关系,将导致关系及其复杂,这些对象称为“同事对象” -我们可以引入一个中介者对象,使各个同事对象只跟中介者对象打交道,将复杂的网络结构化解为如下的星形结构 结构图: 2、本质 解耦多个同事对象之间的交互关系。每个对象都持有中介者对象的引用,只跟中介者对象打交道。我们通过中介者对象统一管理

2015-10-12 21:10:18 381

原创 设计模式之迭代器模式

1、核心 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。2、应用场景 JDK中内置迭代器(List/Set)3、结构 -聚合对象:存储数据 -迭代器:遍历数据 4、代码示例/** * 聚合接口 * @author ly1 * */public interface Aggregation { void add(Object o

2015-10-12 16:35:14 267

原创 设计模式之责任链模式

1、核心 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。2、应用场景 -Java中,异常机制就是一种责任链模式。一个try可以对应多个catch,当第一个catch不匹配类型,则自动跳到第二个catch -Javascript语言中,事件的冒泡和捕获机制。(Java语言中,事件的处

2015-10-12 15:41:53 828

正则表达式测试软件RegexBuddy

正则表达式测试软件RegexBuddy,用于测试正则表达式,比较方便。

2015-10-14

CMM解释器构造课程实践

武大国软解释器构造课程实践大作业,绝对没有抄袭网上的,当年自己写的,独一无二。当年课程得分85分。

2015-10-14

空空如也

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

TA关注的人

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