自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Exziro的小窝

恩 只是一个宅男的程序员之路。。。

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

原创 梯度下降法总结.推到.以及实现

 一.前言二.简述三.简单线性回归中的梯度下降实现四.多元线性回归下的梯度下降算法五.随机梯度下降算法六.scikit-learn中的随机梯度下降算法使用七.总结一.前言很久不总结,对于很多知识都出现了遗忘,很久以前曾经写过一篇有关线性回归算法博文,所以打算接着上一次的来经行总结。说到线性回归就不得不提及与它有着密切关系的一种优化算法也就是梯度下降法。梯度下降法...

2018-08-04 20:51:55 1338

原创 K-近邻算法(KNN)

前言  这篇博文其实可以算是一个对上一篇博客的补充,前面我们说到的是皮尔逊算法和欧氏算法,这里的K近邻算法和这两种算法其实也非常接近。  K-近邻算法属于监督学习的一个分支,主要是用来对相关问题进行分类。简单的说,K-近邻算法采用测量不同特征值之间的距离来进行分类。   工作原理:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签(label),即我们知道样本集中的每一数据与所

2017-10-22 17:09:44 702

原创 皮尔逊相关度欧式距离以及曼哈顿距离

前言  有些时候我们需要获得一些事物的相似度评价值,例如我们可以获取到大量的数据用以分析人们在品味方面的相似度,为此,我们可以将没个人与所有其他人进行对比,并计算他们的相似度评价。有很多种方法能够帮助我们来实现这个目的,而我们今天要提到的则是欧几里得距离和皮耶尔逊相关度,同时作为引申,简单地涉及一些曼哈顿距离的算法。欧几里德距离  计算相似度评价值的一个非常简单的方法是使用欧几里德距离的评价方法,因

2017-10-12 20:51:04 2491 1

原创 numpy 维度、轴和transpose的理解

前言  最近在看pandas的创始人写的一本数据分析,在其中使用numpy建立多维数组的时候提到了很多有关数组的维度和轴的一些相关的知识,而刚开始阅读的时候由于对这部分有些理解不到位,导致后面理解数组转换的时候出现了很多坑爹问题。所以特此写几个简单的实例分析一下。小伙伴们也可以一起瞅瞅,看看能不能加深一下印象。   维度  在数学上我们说维度是什么呢?–在一定的前提下描述一个数学对象所需的参数个数

2017-10-02 21:19:10 4410 4

原创 梯度下降中的归一化、标准化问题

简述  在我上一篇完结的Tianic测试中,我曾提到了一个在使用sklenlearn包中出现的一个问题,这成为了我们这里预留的一个悬念,也就是为了防止不拟合时而使用了scaling,但是当时我在scaling的时候报错了,这一下就十分尴尬了,因此我在网上查找了一些相关的资料,最终我找出了问题的所在。当然没读过上一篇的童鞋也不需要担心,这一篇文章的内容我将结合查找到的资料,简要的介绍一下梯度下降过程中

2017-09-24 19:36:26 4881

原创 Kaggle实例-Titanic分析(二)-补全 拟合

前言  本来是打算用一篇博客把完整的一次数据处理全部记录下来,但是无奈断(lan)电(ai)。同时也是为了写的更详(tuo)细(ta)一些,防止以后看不懂,所以我决定把三个大部分分开来写,同时,后面的内容我也打算这样处理希望各位大佬海涵。———-我是逗逼的分割线———-数据补充  上回书说到,船帆了,人挂了,大家各安天命了。(摔)。我们简单的对我们当前得到的数据进行了简单的分析,以此来找出我们最后训

2017-09-15 20:54:12 1053

原创 Kaggle实例-Titanic分析(一)

看了很多发掘类和ML的文章,但是一直苦于没有想法,没有进行过想关的尝试以及练习,无意中在csdn中看到了hanxiaoyang大佬的一篇初学者测试的文章,对照着dalao的教程,我开始进行我的首次尝试,该篇文章同时也是记录同时也是分析我在对其内容进行分析的过程。同时,其中dalao没有注意到的一些小问题 我也会相关地进行说明(因为真是从零开始掉了不少坑ORZ)。   首先我们看一下当前的这个被练烂

2017-09-14 22:42:07 875

原创 Linux下shell脚本中的eval命令

简介功能说明:重新运算求出参数的内容。语  法:eval [参数]补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。参  数:参数不限数目,彼此之间用分号分开。命令说明1.eval命令将会首先扫描命令行进行所有的替换,憨厚再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。2.eval也可以用于回显简单

2017-08-03 21:10:22 1612

原创 Linux select服务器

简介  系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、stdout

2017-08-01 00:13:35 467

原创 TCP三次握手与四次挥手

简介  TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。

2017-07-30 22:16:11 342

原创 网络端口及其分类

什么是端口?  在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等;二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535。端口的作用   如果把服务器比作房子,而把端口比作通向不同房间(服务)的门,黑客攻击时,需要占领这间房子,势必要破门而入(

2017-07-09 15:56:37 856

原创 Linux进程通信-队列

简介消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。我们可以通过发送消息来避免命名管道的同步和阻塞问题。消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出。消息队列与命名管道有一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数

2017-06-08 15:22:46 387

原创 Linux进程通信-管道(pipe)

简述  在Linux系统中,管道是一种最基本的IPC机制,要理解管道的机制,我们可以举一个简单的例子,在linux系统下的进程都是独立,如果两个进程需要交流也就是通信,我们需要开辟一个他们两个可以共同访问的区域,而管道,简单来讲就是为了实现这一目的而建立的,管道由pipe函数创建,调用pipe函数时,在内核中会开辟一块缓冲区(简称管道)用来通信,由两个文件描述符引用,一个表示读端,一个表示写端。创建

2017-06-06 12:32:42 756

原创 AVL树的实现与图解

简述  AVL树简单来讲可以说是一种二叉树的变种,它由搜索二叉树变化而来,在AVL树中,任何节点的两个子树的高度最大差别为一,所以它也称为高度平衡树,相比于二叉树,它对于每一个节点赋予了一个新的信息,就是平衡度。平衡度,简单来讲就是一个把一个树的右子树的高度减去左子树的高度。而AVL树则是给其添加了一个限制条件,即平衡度只能为1,0,-1。   AVL树是一种比较经典的平衡二叉搜索树,它规定每个节

2017-05-29 17:57:10 789

原创 Linux中文件描述符与FILE结构体

文件描述符  我们知道在Linux系统中一切皆文件,文件的类型也是多种多样的,有普通文件,目录文件,链接文件。而当系统需要调用文件时,又是如何进行操作的,而文件描述符就是因此而诞生的,文件描述符(file descriptor)是内核为了高效管理已被打开的文件创建的索引。文件描述符的操作返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述表,所有打开的文件都将通过此表中的文件描述符来引用。

2017-05-09 22:28:47 1708

原创 僵尸进程与孤儿进程

简述  进程,简单来讲就是正在执行的程序。进程是一种动态描述,但是并不是所有的进程都在运行。   为了弄明白正在执行的程序是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态。下面就是几个进程的状态      我们在这里要说的是其中两个我们没有听过的进程,孤儿进程和僵尸进程,孤儿进程在上图中并没有这类状态,而僵尸进程则是用‘Z’来表示。   正常情况下,子进程是通过父进程创建的,子

2017-05-01 11:24:03 415

原创 Machine Learning逻辑回归(Logistic Regression)

分类问题  在分类问题中,我们会去尝试预测结果是否属于某一个类(比如正确或错误)。分类问题是一个判断类的问题,例如判断一封电子邮件是否为垃圾邮件,判断一个肿瘤是良性还是恶性的。   我们将因变量(dependant variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量y={0,1},其中0表示负向类,1表示正向类。

2017-04-16 22:59:13 806

原创 Linux进程描述符task_struct结构体

进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。进程的两个基本元素是程序和代码相关的数据集,进程是一种动态描述,但是并不代表所有的进程都在运行。每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的相关的信息。Linuxn内核的进程控制块是task_struct结构体.task_strct是linux内核的一种数据结构,它会呗装载到RA

2017-04-12 21:30:53 950

原创 Machine Learning多元线性回归算法及优化

多元线性方程  在上一周的学习中,我们给出了一个hθ(x)=θ0+θ1*x .这样的简单的线性方程,但是,我们一般得到的训练组都是有很多的数据,那么此时这个方程就变成了这样   我们把其中的θ和X数据提取出来,用一个多维矩阵表示   θ转置乘以X 就等于这个等式 这就给我们提供了一种表示假设的更加便利的形式,即用参数向量θ以及,特征向量X的内积。这就是改写以后的表示方法。这样的表示习惯就让我们可

2017-04-10 22:08:44 4659

原创 Machine learning 监督与无监督

前言:因为对于相关领域的兴趣,有幸观看到Ng大牛的视频,个人以为总结才是最好的理解方式,看过的童鞋也可以参考一下,同时可以指出我一些理解的不足,如有问题,请及时指出,感激不尽。machine learning  machine learning的学习我们首先来看两句非常经典的描述语句。 “the field of study that gives computers the ability to l

2017-04-04 17:02:51 486

原创 Linux下的进度条的实现

说到进度条,对没错,就是我们下载的时候显示百分比的东西,而我们在windows下看到的进度条都是经过精心设计过后得到的。同样的,在linux环境下我们也是需要这种东西的,但是在Linux的环境下我们只能用符号来代替条来进行实现。啥也不多说直接贴代码,详细的我们后面再解释。这就是我们想要实现的代码了。按照编程的思维逻辑来讲,当我们拿到这个命题的时候,首先我们需要分析一下 一个进度条需要有哪些

2017-04-04 16:24:23 1510

原创 vim的配置和相关补丁的安装

vim作为一款编译器在我们日后不管是编程还是查看文件都是一款必不可少的软件。但是最初的我们在使用vim时都会发现一些问题,他的手感相对于windows的VS集成开发环境来讲,个人感觉手感实在是不那么令人满意,这主要还得益于在VS下有许多人性化的设置让我们能够在编程中更加得心应手。而vim当我们第一次使用它的时候我们能感到他并不是那么的友好,原因并不在于vim本身而在于我们并未对其进行相关设置所导致

2017-04-03 21:47:05 848

原创 linux下的Find指令

为何使用Find 我们常说linux下皆文件,这在强调Linux下文件操作的重要性的同时,也向我们暗示了linux一个操作系统的组成是由无数个文件构成的。在这些操作系统中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情。

2017-04-03 11:36:38 509

原创 linux中的粘滞位

简述粘滞位 在我的上一篇博客中曾提到了Linux中的权限问题,有权限就意味着我们需要去设置权限,但是当我们设定权限的时候有时候需要考虑的问题确是很多的,我们来假设一种情况:有没有可能我们需要给定一个用户能够写入和修改该目录的权限,但是我们并不想给予该用户能够删除该目录的权限?这时我们是给它什么权限呢?是只读只写还是只运行呢?我们发现我们没有办法来达到我们想要的目的

2017-04-01 22:26:39 545

原创 Linux中的权限简介

linux中权限简单介绍在上一章讨论modifytime和accestime的时候,我们曾说过几个查看文件属性的几种方法,我们在用stat命令的时候曾详细地查看过一个文件的属性,在这里我们打算再详细地讨论一下文件的属性。 以及linux环境下 进入已有目录 创建文件 并显示文件 各至少需要什么权限 权限的类型这里为了方便起见,我们就使用ll命令来查看一下当前目录下的文件类型

2017-03-25 22:51:56 552

原创 探索Linux下的Time问题

探索Linux下的Time问题———-Access time Modify time and Change time 初学Linux的同学一定都会先学习ls和ll这两个命令。ls命令只是简单地显示出在当前目录下的所有非隐藏的文件和目录等。ll则会以列表的形势显示出当前目录下的所有文件的一些详细信息 前面九个字符表示的是当前文件的权限等级,而后面的依次是指向,使用者以及穿件时间等。

2017-03-21 13:05:54 536

原创 C++多态部分以及虚函数虚表总结

多态性是面向对象程序设计的一个重要特征,如果一个语言只支持类而不支持多态,是不能被称为面向对象语言的,只能说是基于对象的。    多态性简单来讲就如同字面意思一般,多种形态,在c++程序设计中,多态性是指具有不同功能函数可以用一个函数,这样就可以用一个函数名调用不同内容的函数。简单来说:向不同的对象发送同一条消息不同的对象在接收时会产生不同的方法。也就是说,每个对象可以用自己的方式去响应共同的

2017-03-04 23:28:26 498

原创 C++继承部分总结

C++是一门面向对象的语言,所以它的大部分操作都与类和方法息息相关,而C++语言也具有三大特性:封装、继承和多态。刚好我学习到的内容涉及到了继承,为了防止遗忘在此进行一下相关的总结。    继承从字面上的意思来看就是子承父业,继承首先需要的是一个子类和一个父类。从一个类派生出另一个类时,原始类称为基类,继承类称为派生类

2017-02-27 16:28:37 3824

原创 无头单链表节点的删除以及新节点之前的插入

想要理解这两种操作,我们首先需要了解的是什么事无头单链表,无头单链表就是指的没有头指针的一个单独节点。就好比我们永指针遍历链表一样,某一时刻指针指向的一个非尾节点就是一个无头单链表。这样一个链表的最大特点就是该节点我们只知道它的数值以及一个指向下一个节点的指针。    现在来考虑我们需要做的操作,一个添加一个删除,首先是删除。我们知道,在一个链表中,我们如果想要删除某一个节点,我们首先需要知道

2017-01-25 23:01:57 1124

原创 单链表的逆序打印方法简单分析

在学习数据结构的时候,我们会使用到单链表,其拥有一个结点和一个数据的结构很是让我们方便使用,但是我们会发现但我们顺序读取和打印都很方便,但是假设我们需要逆序读取或打印的时候就会出现问题,因为我们的单链表的存储空间并非像顺序表那样是连续的存储空间,经过我的一番查找和思考我发现了以下几种单链表逆序打印的方法。一、改变每一个链表指向下一个结点的指针指向我们上一个结点即可 这样做简单粗暴,而且算法我们

2017-01-23 22:38:44 1317

原创 C函数库qsort函数及最后一个参数的相关问题

在学习数据结构的时候,我们会学习到很多不同的排序算法,比如说冒泡排序法,哈希表(大雾),以及快速排序。而C的函数库也给我们了一个快速排序的函数。就是我所提到的这个qsort。这个函数内部是一个写好了的快速排序算法的函数。

2016-11-27 19:12:05 2003

原创 浅谈一些栈帧的问题以及相关实例

相信只要是了解计算机的人都知道栈和堆以及静态存储区之类的东西。但是说到栈帧可能知道的人就不是很多了= =!(大雾)。     栈帧(stack frame),用度娘解释一下:栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。可能所有的博客都说过这个。那么我们,换一个高大上的别的出处的解释:调用堆栈(英语:Call stack,港台称“呼叫堆叠”,英文直接简称为“栈”(th

2016-11-17 12:56:22 640

原创 可变参数的解释以及实例printf的实现

可变参数也称为多参函数。如果听说过可变宏的童鞋可能更好理解这个概念,该宏接受可变个数的参数。而头文件stdarg.h为函数提供了类似的能力。不过使用方法较之可变宏稍微复杂一些。同时也相对的有一些使用要求1.在函数原形中必须使用省略号XXXX(xx,...).2.在函数定义中创建一个va_list类型的变量。3.用宏将该变量初始化为一个参数列表。4.用宏访问这个参数列表。5.用宏

2016-11-14 10:23:16 631

原创 预处理标识符,预处理与函数的相关的区别;程序的编译与链接的过程

总结一下最近学习到的预处理的相关知识以及在使用Linux进行分步操作C语言后对于C程序的编译与链接过程自己的一点看法。首先 有几个在调试方面非常有用的预处理操作符 __FILE__;__LINE__;__DATE__;__TIME__;__STDC____FILE__替换值是 进行编译的源文件名__LINE__替换值是文件当前行的行号__DATE__替换值是文件编译的日期__T

2016-11-02 17:39:31 654

原创 Xshell5连接虚拟机中的Linux(Centos)的方法以及失败原因

很早以前就装了虚拟机,现在终于装上了Linux。虽然机子的配置还不错,虚拟机一般也不会特别卡,但是来回切换有时也是一件十分令人头疼的事情。虽然说不卡,但是CPU占用率还是很高的。也十分耗电。所以自从听说了有Xshell这个神器之后 我就开始对他进行了相关的钻研。

2016-10-30 00:54:26 48527 6

原创 马克一个无法循环的水仙花数

int main(){ int i =0; int a =0; int b =0; int c =0; for(i=100;i<=999;i++) { a=i%10; c=(i-a*100)/10; b=i/100; if(i==a*a*a+b*b*b+c*c*c) printf("%d ",i); } return 0;}还没有找

2016-10-16 17:28:39 512

原创 自己C代码中逗逼的错误- -!

今天在写一个代码的时候发现了一个问题 大家可以先瞅瞅#includeint main(){    int x=32;    int count=0;    int data;    printf("please enter an number:");    scanf("%d",&data);    while(x--);    {if(data&0x1==1)

2016-10-08 21:43:46 524

原创 First try play Git!Windows(change- dele)萌新的摸爬滚打之路

接着上回说到的,我们说到了我们可以来回地改变我们想要修改的内容,修改可以的话我们接下来就可以试试删除这个功能。首先我们需要创建一个新的文件。原理和方法如前文所示、我们可以用Cat来查看一下这个内容 就像这样。一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了。$ rm test.txt当然这个时候 git知道了你删除了文件,这个时候你的工作区和版本库就

2016-09-28 12:32:08 405

原创 First try play Git!Windows(change-return)萌新的摸爬滚打之路

当我沉迷于Git学习之时,我突然发现一个问题。就是当我往后看教程的时候 我突然发现。后面的内容有很长一部分都是change的内容。这样的话change的这个分类内容就很不友好了。因为修改的这一部分我已经整体看过一遍了。所以这一张博客我打算一次性记录完剩下的change的内容。    上回我记录到了我修改我所创建的版本库里面的部分内容。让后记录了几个简单的操作方法,可以查看当前版本库里面的内容以

2016-09-24 12:39:11 600

原创 First try play Git!Windows(change)萌新的摸爬滚打之路3

上回书说到如何创建一个版本库以及简单的如何提交问题。当当当!既然已经创建和提交了,那么我们的下一步就到了展示Git的与众不同以及它的特色部分了。那就是修改部分。上次提交过得文件我们需要对他进行一下修改。打开文件改两行代码啊,复制粘贴一些神秘代码的神马也是可以的XD、接下来我们在 git bash中输入一串指令 git status我们可以看到它会显示出一长串的内容。我们先解

2016-09-22 17:45:50 496

空空如也

空空如也

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

TA关注的人

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