- 博客(67)
- 资源 (4)
- 收藏
- 关注
转载 高斯判别分析(Gaussian discriminant analysis)和朴素贝叶斯方法(Naive Bayes)
高斯判别分析(Gaussian discriminant analysis)和朴素贝叶斯方法(Naive Bayes) 生成模型和判别模型监督学习一般学习的是一个决策函数: y=f(x)或者是条件概率分布: p(y|x)判别模型直接用数据学习这个函数或分布,例如Linear Regression和Logistic Regression。 生成模型是用数据先学习联合概率分布p(x...
2018-05-13 15:04:26 2708
原创 xgboost原理
Xgboost原理Obj(Θ)=L(Θ)+Ω(Θ)=∑i=1nL(yi,yi~)+∑i=1KL(yi,yi~)(280)(280)Obj(Θ)=L(Θ)+Ω(Θ)=∑i=1nL(yi,yi~)+∑i=1KL(yi,yi~)\begin{equation}\begin{aligned}Obj(\Theta) &= L(\Theta) +\Omega(\Theta) \\&=\sum_{i=...
2018-05-07 20:43:42 209
原创 信息熵,交叉熵和相对熵
1 信息熵的抽象定义 信息熵是由信息论之父香农提出来的,它用于随机变量的不确定性度量,先上信息熵的公式。H(P)=∑ip(i)logp(i)H(P)=∑ip(i)logp(i)H(P) = \sum_i p(i) \log{p(i)}我们可以用log ( 1/P )来衡量不确定性。P是一件事情发生的概率,概率越大,不确定性越小。可以看到信息熵的公式,其实就是log ( 1/P ...
2018-03-12 09:58:04 355
转载 机器学习中的范数规则化之(一)L0、L1与L2范数
今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化。我们先简单的来理解下常用的L0、L1、L2和核范数规则化。最后聊下规则化项参数的选择问题。这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文。知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正。谢谢。 监督机器学习问题无非就是“minimizeyour error whil...
2018-03-02 14:11:06 297
原创 统计学习方法-感知机
感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1 二值。感知机对应输入空间中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面。为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机是神经网络和支持向量机的基础。import numpy as np"""感知机学习算法的原...
2018-02-28 10:09:00 192
原创 统计学习方法-逻辑斯蒂回归
梯度下降法import numpy as npimport math"""逻辑斯蒂回归算法 梯度下降方法"""def L_W(X, y, w, b): wx = np.dot(w, X.T) + b return np.dot(y, wx) - np.sum( np.log(1+np.exp(wx) ), axis=0)def update_w(X, y, w, b, delta=1...
2018-02-28 10:06:48 291
原创 统计学习方法-隐马尔科夫模型
import numpy as np import mathdef HMM(): Pi = np.array([0.2, 0.4, 0.4]) print(Pi) A = np.array([[0.5, 0.2, 0.3], [0.3, 0.5, 0.2], [0.2, 0.3, 0.5]]) print(A) B = np.array([[0.5, 0.5], [0.4, 0.6]...
2018-02-28 09:59:28 317
原创 牛顿法和拟牛顿法
牛顿法和拟牛顿法是求解无约束最优化问题的常用方法,收敛速度快。牛顿法是迭代算法,每一步需要求解目标函数的海塞矩阵(Hesse matrix)的逆矩阵,计算复杂。拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,计算速度快。 牛顿法 考虑无约束优化问题 min f(x) 其中x* 为目标函数的极小值点 假设f(x)具有二阶连续偏导数,若第k次迭代值为x^(k),...
2018-02-23 15:17:28 356
原创 使用Python求一个全排列
为了编写方便,这里使用递归def swap(l_date, a, b): temp = l_date[a] l_date[a] = l_date[b] l_date[b] = temp# Input: s=0 ,e = len(l_date)# OutPut: l_outputdef perm(l_date, s, e, l_output): if s
2016-07-27 08:54:14 520
原创 python 递归保存数据在list中不正确
这里使用python来求一个组合数def combine(l_date, n, m, l_output, result): for i in range(n, m - 1, -1): l_output[m - 1] = l_date[i - 1] if m > 1: combine(l_date, i - 1, m - 1
2016-07-27 08:41:59 3651 1
原创 取n个数中第k大数
#include#include#includeusing namespace std;int random_partion(int *arry, int n){ time_t t; srand((unsigned)time(&t)); int index=rand()%n; swap(arry[index], arry[n-1]); //起到随机
2016-07-19 21:24:00 505
原创 二分图最大匹配算法-匈牙利算法
#include#includeusing namespace std;int map[105][105];int visit[105],flag[105];int n,m;bool dfs(int a){ for(int i=1; i<=n; i++) { if(map[a][i]&&!visit[i]) {
2016-07-18 09:21:38 339
原创 Python 爬百度帖吧图片
import reimport urllibimport urllib.requestdef getHtml(url): page = urllib.request.urlopen(url) html = page.read() return htmldef getImg(html): reg = r'src="(http:/
2016-04-24 14:02:39 307
转载 Class对象
JAVA类型信息——Class对象一、RTTI概要 1、类型信息RTTI:即对象和类的信息,例如类的名字、继承的基类、实现的接口等。2、类型信息的作用:程序员可以在程序运行时发现和使用类型信息。3、RTTI真正含义:运行时,识别一个对象的类型。 4、如何在程序运行时识别对象和类的信息? 1)传统RTTI:即在编译时已知道了所有的类型。
2016-04-24 13:57:44 395
原创 codeblocks-13.12mingw 配置opencv-3.1.0(二)
1、选择Settings-->Compiler 选择头文件所在目录Search Directories ->Compiler 2、选择Settings-->Compiler 选择lib文件所在目录Search Directories ->Linker3、选择Settings-->Compiler 添加相应库文件,全部添加Linker set
2016-01-17 21:46:18 1110
原创 codeblocks-13.12mingw 配置opencv-3.1.0(一)
由于opencv-3.1.0 只提供编译好的vc12 和vc14版本,而codebooks默认使用的是mingw编译器,所以如果使用vc12或vc14就会出现Build: Debug in test (compiler: GNU GCC Compiler)===|obj\Debug\main.o||In function `main':|E:\OpenCv工程\test\main.cp
2016-01-17 21:18:36 2439
转载 ClassLoader详解及用途
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回 这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources(Class,文件,来自网络的字节流 等),通过ClassLoader从而将资源载入JVM 每个class都有一个reference,指
2016-01-02 22:03:53 450
转载 git忽略特殊文件
有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示“Untracked files ...”,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略
2016-01-01 22:40:52 452
转载 spring junit 做单元测试,报 Failed to load ApplicationContext 错误。
spring junit 做单元测试,报 Failed to load ApplicationContext 错误。 查找了好一会,最后发现。@ContextConfiguration(locations = { "classpath:/spring/applicationContext.xml","classpath:/spring/app-config.xml", ……
2015-07-18 21:38:36 6049
转载 log4j:WARN Please initialize the log4j system properly解决办法
log4j:WARN No appenders could be found for logger(org.springframework.context.support.ClassPathXmlApplicationContext).log4j:WARN Please initialize the log4j system properly.Spring 使用了LOG4J 这个开
2015-07-18 21:35:13 313
转载 spring AspectJ的Execution表达式-备忘笔记(转)
Aspectj切入点语法定义在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"例如定义切入点表达式 execution (* com.sample.service.impl..*.*(..))execution()是最常用的切点函数,其语法如下所示: 整个表达式可以分为五个部分:
2015-07-18 21:03:33 437
转载 百度_谷歌_雅虎搜索引擎URL参数全解析
一、百度搜索引擎URL参数全解析在搜索引擎的RUL地址参数中,我们可以清晰的知道,该软件是否与搜索引擎进行了点击付费类的合作,我们以百度搜索的URL参数部分举例说明如下:http://www.baidu.com/s?wd=关键字wd(Keyword):查询的关键词;(必要参数)http://www.baidu.com/s?wd=关键字& amp;cl=3cl(Class):
2015-06-22 22:45:49 3682
转载 windows下C语言多线程编程
_beginThreadex创建多线程解读一、需要的头文件支持 #include // for _beginthread()需要的设置:ProjectàSetting-->C/C++-->User run-time library 选择Debug Multithreaded 或者Multithreaded。即使用: MT或MTD。源码如下:
2015-01-24 23:29:40 3450
转载 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_beginthreadex? 使用多线程其实是非常容易的,下面这个程序的主线程会创建了
2015-01-24 23:26:05 413
转载 Windows静态库和动态库的创建和使用
偶们在实际的编程开发中,经常会遇到运行时无法找到某个DLL文件或者链接时无法找到某个LIB文件。然后,我们就开始乱GOOGLE一下,然后将VS2005的设置改变一下,或许就Ok了,我们将别人开发的DLL或者LIB导入到我们的编程中,那么这些lib,DLL到底是什么呢?下面,偶就细细道来。 首先,偶们说第一个:静态链接库(Static Libary)偶们用VS2005做一个静态链接库先
2015-01-24 22:45:05 792
原创 函数指针
在c语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址(入口地址),所以函数名跟数组名很类似,都是指针常量。函数指针就是指向这个入口地址的指针变量,注意函数指针是一个变量将函数名改成(*指针名)就可以了形式1:返回类型(*函数名)(参数表) void (*pFun)(int); void glFun(int a){ return;} vo
2015-01-24 22:01:24 348
转载 c++中__declspec用法总结
“__declspec”是Microsoft c++中专用的关键字,它配合着一些属性可以对标准C++进行扩充。这些属性有:align、allocate、deprecated、 dllexport、dllimport、 naked、noinline、noreturn、nothrow、novtable、selectany、thread、property和uuid。1,_declspec(1
2015-01-24 21:40:29 429
原创 Linux 静态库、动态库
库是一种软件组件技术,库里面封装了数据和函数。库的使用可以使程序模块化。Windows系统包括静态链接库(.lib文件)和动态链接库(.dll文件)。Linux通常把库文件存放在/usr/lib或/lib目录下。Linux库文件名由:前缀lib、库名和后缀3部分组成,其中动态链接库以.so最为后缀,静态链接库通常以.a作为后缀。在程序中使用使用静态库和动态库时,他们载入
2015-01-24 18:13:12 640
转载 数据挖掘入门指导
在下不是什么牛人,看大家对数据挖掘很感兴趣,自己也做这个方向的给大家介绍介绍。写的不对的地方求改正。真真要做数据挖掘还是要有良好的统计背景,概率论和数理统计,泛函,实变函数,测度论等。如果你这些都懂了的话那么水平应该很高了。我在这里这写点自己的感受吧。当做科普。数据挖掘解决的主要问题就是分类,聚类,回归,关联分析等问题。搜索中的分词,专名识别等都是用crf模型来做的。数据挖掘广泛的运用在各
2015-01-24 12:27:53 568
原创 规避重复包含
文件1.h#ifndef INFO#define INFOstruct info{ int num; char name[20];} ;#endif文件2.h#include "1.h"文件 main.c#include #include #include "1.h"#include "2.h"int main() { return 0;}
2015-01-23 20:55:32 281
原创 const用法
constt的本质是伪常量,无法用于数组初始化,以及全局变量初始化,原因在于const仅仅限定变量一旦初始化后无法在直接赋值(const 只是限定一个变量无法直接赋值,但是可以间接赋值)。但是还是有可能被意外修改,例如间接赋值,并不是完全只读,所以并非真正意义上的常量,例如把局部const常量放在栈区,而不是静态区(静态区会一直存在),也不知代码区禁止修改#include#include
2015-01-23 20:02:16 303
原创 宏定义#号用法
#define S(#X) //自动给参数X转换为"X",转换为字符串#include#define S(X) system(#X)void main(){ S(calc);}
2015-01-23 19:26:12 496
转载 C_语法_宏定义define和函数的作用对比
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义: #define M
2015-01-23 14:30:34 447
转载 函数中省略号的意义和用法
某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎样实现的呢?C编译器通常提供了一系列处理这种情况的宏,以屏蔽不同的硬件平台造成的差异,增加程序的可移植性。这些宏包括va_start、va_arg和va_end等。 ---- 采用ANSI标准形式时,参数
2015-01-22 21:53:22 1464
原创 C/C++assert 断言
一、动态断言assertassert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。#include
2015-01-22 20:53:41 5407
原创 进程管理演示
一、设计内容 设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制、同步与通讯机构,其进程调度算法可任意选择(优先级调度,时间片轮转,短进程优先中的一种)。每个进程用一个PCB表示,其内容根据具体情况设置。各进程之间有一定的同步关系(可选)。系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察诸进程的运行过程及系统的管理过程。二、设计指
2015-01-20 23:13:20 3120 4
原创 编程序模拟银行家算法
一、编程序模拟银行家算法1)对用银行家算法来避免死锁的方法有较深入的了解,给出系统的初始状态,模拟避免死锁的动态过程。2)银行家算法中的数据结构(1)可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。Available[j]=K,则表示系统中现
2015-01-20 23:03:53 2559
转载 boost在DevC++中的安装过程
Boost的源码主要分为两类:一类是源码都在头文件中源码。只用这类源码只需要包含特定的头文件即可。一类是源码包含在头文件和源文件中。想要使用该类源码需要连接该头文件对应的动态链接库文件。第二类的源码主要有以下几类:· Boost.Filesystem· Boost.GraphParallel· Boost.IOStreams· Boost.MPI· Boost.Pr
2015-01-19 23:34:32 973
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人