自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TITANIC上的小景

IT路上人。崇尚科学,也怕鬼!

  • 博客(42)
  • 收藏
  • 关注

原创 机器学习中的决策树及其演化算法

1 树形算法家族族谱1.1 决策树采用divide-and-conquer算法思想,递归构建特征选择——决策树生成——树剪枝互斥与完备:每个训练样本有且仅有一条路径规则最终可能训练出多个,可能一个没有;从所有可能决策树中选择最优是NP问题,因此现实中常用启发式(heuristic)方法Loss Function:正则化的极大似然函数树形表征 特征空间表征 1.1.1 ID3算法采用信

2015-09-12 17:00:58 3154

原创 数据挖掘十大算法——SVM

SVM两大分支Support Vector Classifier(SVC)与Support Vector Regressor(SVR)SVC函数间隔: minγ=wx+bmin \gamma=wx+b,此时如果我们倍增w,bw,b可以无限扩大函数间隔,因此,它并不能作为标准 几何间隔,是归一化的函数间隔: minγ=wx+b||w||min \gamma=\frac{wx+b}{||w||}为了

2015-08-19 11:18:37 1419

原创 数据挖掘十大算法——Naive Bayes

简介Naive和BayesNaive:假定向量中的所有特征是相互独立的 Bayes:面向的问题NB主要用于解决有监督分类问题。相比于其他模型,其具备简单(不需要复杂的迭代式参数估计,由此方便处理大数据)、可解释性强(生成模型)、效果佳的特点。目标针对二分类问题,利用训练集数据学习一个判断阈值α,对于新来的数据做判定,大于α的数据属于正类,小于α的数据属于负类。有监督分类中存在两大流派 diagno

2015-08-12 09:21:29 2493

原创 一来就给LeetCode跪了

之前的OJ战场在 HackerRank ,今天终于禁不住铺天盖地的诱惑,加入 LeetCode 大军按照学编程就从“Hello world!”开始的尿性,刷OJ当然也从 1 号题出发Aha~~~!看起来是非常简单的问题呢!先来个暴力for for法!什么?!不行?!这我当然知道!玩玩儿你!如果不对数组进行排序,那么对于一般的方

2015-03-24 20:28:44 1338

原创 类的三个特殊成员Copy Constructor、Copy-Assignment Operator、Destructor重载与使用

今天看《C++ Primer》的13.1节——Copy, Assign, and Destroy被这几个玩意儿弄得晕得不行:  ◆   Copy Constructor  ◆   The Copy-Assignment Operator  ◆   Destructor主要问题集中在:  ◆   我们在什么时候需要自己重写?

2014-09-28 20:53:13 4051 3

翻译 MAKING A BAYESIAN MODEL TO INFER UBER RIDER DESTINATIONS

SEPTEMBER 2, 2014POSTED BY REN LU In this latest #UberData installment, we bring you the data science details of how we use classic Bayesian statistics to solve a uniquely Uber problem

2014-09-17 20:00:46 3228 1

原创 C++ vector长度扩展机制的探究

源起:C++ Primer 第五版,Exercise 9.38Write a program to explorer how vectors grow in the library you use.环境:WIN 7 + VS 2008 32bit测试代码:#include #include #include using namespace std;

2014-09-09 21:11:47 3904 2

原创 Python numpy数组扩展效率问题

Numpy库的ndarray数组可以方便地进行各种多维数据处理工作可是它最大的缺点就是不可动态扩展——“NumPy的数组没有这种动态改变大小的功能,numpy.append()函数每次都会重新分配整个数组,并把原来的数组复制到新数组中。”(引用自http://blog.chinaunix.net/uid-23100982-id-3164530.html)场景:今天用nd

2014-07-24 20:26:34 23785 5

原创 C++ 从类型转换到文件读入数组

很多时候,我们醉心于算法实现,研究高深的理论,却忽略了最基本的问题。这两天师兄开始华为机试,题目基本都涉及数据和文件操作,这方面自己一点儿都不熟,解决问题每次都是查,这次干脆总结下。1 类型转换(算数类型的强制类型转换,参考C++ PRIMER 2.1.2节)char * --> std::string由于string支持char初始化,因此事情很好办c

2014-07-15 20:25:39 1870

原创 QT子线程与主线程的信号槽通信

最近用QT做一个服务器,众所周知,QT的主线程必须保持畅通,才能刷新UI。所以,网络通信端采用新开线程的方式。在涉及到使用子线程更新Ui上的控件时遇到了点儿麻烦。网上提供了很多同一线程不同类间采用信号槽通信的方式,但是并不完全适合线程间的信号槽通信,这主要体现在自定义消息的传递上。首先我们看看一般的方式:testthread.h 文件#ifndef TESTTHREAD

2014-06-26 10:04:28 41692 10

原创 C++类的交叉引用问题

注:类的交叉引用本身就是一种不好的设计,BUT……如果我们非要这么用……1、错误的实现方法:main.cpp#include #include "class_a.h"#include "class_b.h"int main(){ A aa; aa.InvokeB(); B bb; bb.InvokeA();}class_a.h#ifnde

2014-04-04 10:03:55 8402 4

原创 Mahalanobis距离(马氏距离)的“哲学”解释

讲解教授:赵辉 (FROM : UESTC)课程:《模式识别》整理:PO主基础知识:假设空间中两点x,y,定义:欧几里得距离,Mahalanobis距离,不难发现,如果去掉马氏距离中的协方差矩阵,就退化为欧氏距离。那么我们就需要探究这个多出来的因子究竟有什么含义。第一个例子从下往上的一段50米长的坡道路,下面定一个A点,上面定B一个点。假设有

2014-03-05 15:34:49 20995 6

翻译 Boost.Asio的基本剖析(Basic Boost.Asio Anatomy)

Boost.Asio的基本剖析(Basic Boost.Asio Anatomy)Boost.Asio可以以同步或者异步方式应用于如socket这样的I/O对象。在使用Boost.Asio之前,我们或许最好先来看一下你的程序以及Boost.Asio各个部分是如何协同工作的。作为引入的例子,不妨考虑当我们在socket上进行一个连接操作时到底发生了什么。先讨论同步形式连接操作的情形。

2014-02-21 20:56:22 1551

原创 位字段的那些事儿

虽然在一般的PC编程中主要使用基本类型。但是如果涉及到嵌入式开发编程,位字段能够更好地节省存储空间,并且设置方便。关于位字段的一些特点与注意事项本文使用以下代码作为实例:#include typedef struct{ int show:1, color:3, volume:4, type:8, size:24;} BitStruct_1;typede

2012-06-26 15:34:35 2443

转载 想成为嵌入式程序员应知道的0x10个基本问题

想成为嵌入式程序员应知道的0x10个基本问题 经典文章,转载于此。为方便阅读,博主已经重新调色和编辑。        C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。         从被面试者的角度来讲,你能了解许多关

2012-06-20 19:56:13 1013

原创 弃用gets(),改用fgets()就能解决问题了?!

首先自问自答,错!fgets()里面同样有陷阱!其实http://www.cplusplus.com/reference/clibrary/cstdio/gets/说得很清楚了Notice that gets does not behave exactly as fgets does with stdin as argument: First, the ending new

2012-06-07 15:32:32 4023

原创 for(;;)与while(1)循环的比较

写程序无聊了,就会想点DT的问题今天突然在想for(;;)与while(1)循环的效率问题。直接写个程序来跑估计是比不出高下的。直接上链接编译后的汇编看吧。关于GCC汇编连接的方法,详见:http://blog.csdn.net/jmy5945hh/article/details/7435234源文件a.cvoid main(){ while(1

2012-05-22 22:29:07 1416

原创 在链表中使用头结点与尾指针

1 头结点首先,不要被以下三个词组弄混了:链表头:数据内容为第一个元素的结点。头指针:指向头结点元素的指针。头结点:数据内容无效,其指针是头指针。一句话描述为:头指针是指向头结点的指针,头结点是指向链表头的结点。对于一个链表来说,头指针和是一定存在的,是访问链表的入口,如果没有头指针则无法对其进行访问;链表头对于非空表来说是一定存在的,非空表则不存在。注意到,如

2012-05-17 16:53:08 31919 6

原创 步步LINUX C--进程间通信(二)信号

linux间进程通信的方法在前一篇文章中已有详细介绍。http://blog.csdn.net/jmy5945hh/article/details/7350564本篇详细介绍及代码测试第二种方式,即信号(Signal)。1 信号简介信号全称为软中断信号,主要用于进程控制。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知。信号机制经过POSIX实时扩展后,

2012-05-15 21:05:51 2753

原创 步步LINUX C--进程间通信(一)管道

linux间进程通信的方法在前一篇文章中已有详细介绍。http://blog.csdn.net/jmy5945hh/article/details/7350564本篇详细介绍及代码测试第一种方式,即管道(Pipe)及有名管道(named pipe)。1-1 管道简介也称匿名管道,其在系统中没有实名,是进程的一种资源,因此不可以在文件系统中以任何形式查看。生存周期从被

2012-05-02 16:51:44 2941

原创 算法分析的基础知识

《数据结构与算法分析--C语言描述》第二章笔记主要记录算法分析的一些理论基础,包括数学定义以及时间复杂度分析法等。数学知识关于时间复杂度的定义(目的在于建立一个相对的级别关系):定义一:Θ(g(n)) = { f(n) | 如果存在正常数c1、c2和正整数n0,使得当n>=n0时,0定义二:Ο(g(n)) = { f(n) | 如果存在正常数c和正整数n0,使得当n

2012-04-24 15:24:30 943

原创 步步LINUX C--基于流的I/O操作

前一篇步步linux C系列文章介绍了文件I/O操作这篇文章进一步介绍linux系统中的另一种输入输出方法。相对来说,流式I/O由于其简单以及方便性,应用范围更为广泛。概念与操作流程:流,类似于无保存不可见的文件。其中包含有特定结构体,结构体里面是管理该流的所有信息,如关联文件描述符,缓存长度,缓存中字符数,出错标志等。一个例子是stdin->_flags表示缓存区的类型。

2012-04-24 12:36:27 1399

原创 C语言非常用关键字解析

对于我等菜鸟来说,看到void,int,double,char还算有亲切感,但是经常一遇到那些不常用的C语言关键字就有点晕头转向。本篇文章就对那些非常用关键字(主要是变量声明)进行一个总结。1、auto :声明自动变量auto声明的变量的后果其实就是不加auto时一样,不加的时候默认为隐式声明而已。int a;auto int a;//与第一个声明无差别a

2012-04-19 21:32:55 1101

原创 堆栈的应用--计算机对运算表达式编译

在源程序的表达式中,常出现这样的形式:A*B+C/D,这种形式便于我们理解,但是由于加入了运算符优先级,运算的最终顺序不是按照从左至右,因而不便于计算机的理解。这个时候运用堆栈可以较好地完成这个任务。在编译系统中对一个中缀表达式进行计算前,总是先将中缀表达式转换为后缀表达式。例如:A*B+C/D --> AB*CD+/在堆栈里面,变换方法为:1、首先建立两个栈,一个为操作数

2012-04-17 20:11:44 1268

原创 步步LINUX C--文件I/O操作

熟悉linux系统的同学都知道,所有的设备在linux下都被当作文件来处理,因此了解文件的I/O操作是十分重要的。1/具体来说,有以下几种文件类型(控制台ls -l命令的第一列即为文件类型):符号类型符号类型s套接字文件d目录文件l链接文件b块设备文件c字符设备文件p管道文件

2012-04-16 19:35:03 3465 1

原创 拆解GCC命令的预处理-编译-汇编-链接4个阶段

在linux下使用gcc命令编译程序时,整个过程实际上在底层处理分为四个步骤--预处理/编译/汇编/连接下面通过gcc的不同命令参数来拆解这四个步骤。源代码:hello.c#include #define PP printfint main(int argc, char **argv) { int a = 5; PP("a = %d\n", a); retur

2012-04-07 15:40:59 3469 3

转载 C语言时间处理函数strftime

很方便实用的函数,mark一下~functionstrftimesize_t strftime ( char * ptr, size_t maxsize, const char * format, const struct tm * timeptr );Format time to stringCopies into ptr the co

2012-03-30 18:45:17 3297

原创 LINUX进程间通信(IPC)学习手记

linux间进程通信的方法在前一篇文章中已有详细介绍。http://blog.csdn.net/jmy5945hh/article/details/7350564本篇对六种IPC方法进行简单的代码测试。由于博主最近在研究父子进程间通信,因此实例代码都基于此。如果要应用于无亲缘关系进程间通信,稍加修改即可。篇幅有限,本文没有列出函数定义。相信你知道去哪里查询他们。1/管道(Pipe)

2012-03-22 22:15:03 3252

原创 被吞掉的scanf与神奇的printf

被吞掉的scanf在编程时使用scanf函数读取char值的时候很容易陷入十分“诡异”的情况偶尔你会发现scanf函数根本没有起作用,好像在运行时这段代码莫名其妙被吞掉了!测试代码:#include int main(int argc, char *argv[]) { char a, b; scanf("%c", &a); scanf("%c", &b); pri

2012-03-21 22:54:36 1624

转载 Linux进程间通信方式简介

序linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket

2012-03-13 21:09:08 19921

原创 Socket对传输文件结尾的判定

再调用socket API进行传输时会涉及到很多细节的问题,其中一条便是文件传输的结尾判定。这里的文件指广泛的文件而不单字符文件,因此无法使用EOF或者‘\0’来判定文件什么时候结束。如果不进行恰当的判定,接收方将重复接收最后一个buf里面的内容。直至填满整个文件!很多人提到了传输文件之前先发送文件长度。这样通过对比该长度与接收到的长度来判定是否继续写入文件。这是一个比较麻烦,但是

2012-03-12 22:38:28 3992

原创 Socket的C/S模型与TCP关系

首先我们看一下TCP的C/S设计基本模型。在模型中有两个关键点,与TCP连接可以对号入座:1/connet()与accept()的交互,完成TCP的三次握手连接。此处应该注意服务器是属于被动方。等待客户端发起握手。期间任何一个数据包的丢失都会使得连接不成功。2/双方close()的交互,完成连接的关闭。当客户端发起连接关闭请求之后,进

2012-03-12 12:44:32 1221

原创 谈Socket传输结构体

网上有很多关于Socket结构体传输的文章。正好前两天在纠结,于是翻开了几篇看。照着方法去做,结果发现不管用可能是我太笨了吧。仔细研究发现又一次输给了细节。由于在定义结构体时我们有两种定义方式A:struct mystruct aB:struct mystruct *b这两种方式的定义在传输中代码是有细微差别的。我具体用我的一个例子说明吧。#include //库中

2012-03-08 09:44:00 2590 3

原创 C文件读写函数总结

《C PRIMER PLUS》中的种种文件读写函数弄得我有点晕头转向的,总结一下好了。1/getc(),fgets(),fscanf(),fread()函数以上所列的四个函数都能从文件中读取数据#define MAX 100int location;char ch, buf[MAX];double target[MAX];FILE *fp;location = g

2012-03-01 11:07:48 1179

转载 GNU C 、ANSI C、标准C、标准c++的区别和联系

GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。它在编写linux的时候自己制作了一个标准成为 GNU C标准。ANSI 美国国家标准协会,它对C做的标准ANSI C标准后来被国际标准协会接收成为 标准C 所以 ANSI C 和标准C是一个概念。总体来说现在linux也支持标准C,以后标准C可以跨平台,而GUN

2012-03-01 10:11:53 1614 1

原创 Socket编程中常用C函数总结

本文总结Linux下Socket编程常用C函数,但是不包括套接字API(如:connect,socket等),持续更新。。。1/函数名:gets功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。用法:char*gets(char*

2012-02-28 20:19:15 1761

原创 最简单的Linux命令行Socket聊天程序源代码

只有今天贴出代码,明天看才知道自己有多么傻。单线程,一对一聊天,混搭风格编程,函数乱入不解释……/* * Chat on Linux Terminal--alpha * Worte by Jimmy's team@uestc * 2011-2-23 * * This is the sorce code of client * Some BUGS still

2012-02-23 14:13:47 6704 3

原创 inet_ntoa()返回整型参数,开玩笑?!

今天写socket程序,想在连接时打印出IP地址,于是查询得知可以使用inet_ntoa()函数函数相关说明如下:        函数声明:char *inet_ntoa (struct in_addr);  返回点分十进制的字符串在静态内存中的指针。于是在我的代码中加入:printf("%s join in!\n", inet_ntoa(clientSockadd

2012-02-21 17:46:59 2684 4

翻译 深度理解Unix/linux系列中Select()模型[中英对照]

翻译文章,为了自己更好地理解。英文原文贴在http://www.doserver.net/post/linux-unix-select-model.php ,吉林大学胡章优博士的个人主页。THE WORLD OF SELECT()So just why am I so hyped on select()?One traditional way to write networ

2012-02-19 20:37:38 2746

原创 《UNIX环境高级编程》apue源代码Ubuntu下的编译

在编译书中例程时,常会报错,主要问题是以下两句代码#include"apue.h"这两个头文件并非Ubuntu系统自带的,是《UNIX环境高级编程》作者自己编写的用于定义及报错的头文件解决方法:1--下载APUE的代码(http://www.apuebook.com/src.tar.gz)并解压,笔者的目标地址为/home/jimmy/p2p/apue.2e

2012-02-16 22:16:24 3405

空空如也

空空如也

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

TA关注的人

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