线性回归用梯度下降求解

原创 2018-03-19 11:46 阅读(110)次
对于多元线性回归还是一元线性回归,他们使用梯度下降求解的方法是相同的。 梯度下降法的介绍在这里: 梯度下降 gradient descent 都是遵循线性梯度下降方法,区别只是同时更新的θ的个数         代入 相当于 使用梯度下降法的几个加快收敛的注意事项: 1.    特征缩放 如果有多个特征项,他们的取值范围差异很大,会造成对应他们的θ的取值范围也很大。 假设x1 取值范围较大,对应的θ1的取值范围则会较小,因为θ1也改变得较大,会造成h(x)的振幅很大。反之亦然。 这样不利于梯度下降收敛。由于Θ中有一...

多元线性回归

原创 2018-03-18 00:55 阅读(92)次
在 线性回归的求解原理和cost function 中我们假设了预测函数是一元线性方程,即只有一个变量x。但现实生活中的问题,训练样本和待分析数据是不只一个特征项的,所以就有了多元线性回归的预测问题。 多元,意味着变量有x1,x2,x3...xn ,线性方程就是   θ0项可以认为是θ0 *  x0 ,x0 = 1 。 这样,n项特征项的变量,可以当成是 n+1项的向量,即   而参数θ也可以形成向量,即  而h(x)  可以写成     本站作品的版权皆为作品作者所有。本...

初识神经网络

原创 2018-03-16 22:46 阅读(134)次
有一些问题,如果他不是线性问题,无法用线性回归来处理。因为他需要非线性方程才能拟合训练数据。而非线性方程意味着存在多项式,比如只有x1,x2的两种特征项,那多项式有可能是x1^2,x1x2,x2^2,x1^3,x2^3,(x1^2)x2,.....等等,但当特征项有100个的时候,x1,x2,x3, .....x100,那多项式的组合就是几何倍的增长。 例如计算机视觉问题,分辨一张图片是什么类型的事物,一张图片即使只有30*30的分辨率,他也意味着有900个数据点,而这数据点的数量就是特征项数目。如果用多项式来做计算,那就是都是一个计算量浩大的工程。 所以只是增加多项式来拟合数据的一些算法,比...

线性回归的cost function 等高线图分析法

原创 2018-03-16 10:51 阅读(150)次
从上文  线性回归的cost function 3D图形分析法 我们能大概看出cost function的趋势和最低点,但3D图形并不那么直观。本文介绍用等高线图来分析cost function。 基本求J值的方法是一样的, clear ; close all; clc data = load('ex1data1.txt'); X = data(:, 1); y = data(:, 2); m = length(y); X = [ones(m, 1), data(:,1)]; % m * 2 theta0_vals = linspace(-1...

octave画图篇之3D图

原创 2018-03-05 00:08 阅读(216)次
几行程序画出这样的图,方便理解一些数学函数。 1. plot3方法就是用来画3D图的>> x = [1:1:10] x = 1 2 3 4 5 6 7 8 9 >> y = sqrt(x)>> z = cbrt(x)>> plot3(x,y,z)也就是分别设置x, y ,z 轴的值,如下图 ,0-10的轴是x,     1-3.5的轴是y,  1-2.2的轴是z view命令可以旋转角度,但本身figure的菜单中也可以旋转角度。 2....

线性回归的cost function 3D图形分析法

原创 2018-03-04 22:31 阅读(146)次
在上文 线性回归的cost function 2D图形分析法 我们假设θ0 =  0 ,使J(θ0,θ1) 变成 J(θ1)。所以可以用2D图形来表示J(θ)函数。本文将认为θ0 !=0,cost function  将有两个自变量的函数J(θ0,θ1) ,就是需要3D图形来表示(x轴θ0,y轴θ1,z轴为J(θ0,θ1))的值。 想要得到如下图的效果, 首先我们需要样本数据,这里用andrew Ng 课程一个的数据作为绘图的样本数据。 数据共97行,每行2列,第1列是特征项x,第2列是目标值y。我截取一些如下 6.1101,17.592 5.5277,...

线性回归的cost function 2D图形分析法

原创 2018-03-04 17:52 阅读(113)次
在 线性回归的求解原理和cost function 一文中我们已经介绍了线性回归的cost function和他的作用。 本文我们从cost function 的图形上来发现J的最小值。 预测函数 :           cost function :   为了理解方便,我们假设θ0 =  0 ,这样预测函数为 h(x) = 0 + θ1x =   θ1x  ,   对于cost function的自变量就只有θ1和因变量y...

线性回归的求解原理和cost function

原创 2018-03-04 01:19 阅读(217)次
上一篇 机器学习之回归入门     我们介绍了线性回归,这次我们来讲解线性回归的求解。求解原理举例说明cost function求解原理 中学学的一元的线性方程 y  =  ax + b, 为了后面的讲解简单,我们用θ来表示参数,即为  ,也是  我们称之为预测函数。 θ的不同取值,表示了不同的线性方程,坐标系上就表示了不同的直线。只有一条直线是最拟合训练样本的,求解线性回归就是找出这条直线,也就是找出对应的(θ0,θ1)举例说明 如图 五个红星代表了5个训练样本,分别有3条线对应3个线性方程。  &n...

机器学习之回归入门

原创 2018-03-03 18:18 阅读(114)次
什么是回归问题转换成数学问题线性回归什么是回归问题        预测明天甚至未来一周的气温,这是回归问题。 预测 iphone的价格走势,这是回归问题 预测房价的走势,这是回归的问题。 甚至位于数学界最深渊的问题,预测股价,也是回归问题 从上面这4个问题我们能发现回归问题预测的是连续的结果(这是相对于分类的离散值而言),是一个具体的数值。 这就是机器学习的回归问题。 同时他也是监督学习的一种。 监督学习:首先他需要由一定数量的训练数据集,数据集中包含训练需要的特征项,同时也包含正确的"答案"。   ...

python用selenium进行数据爬取

原创 2018-03-02 11:51 阅读(129)次
现在数据爬取无非针对两种数据:网页和API接口,API返回的数据基本是json,xml这类的格式。 而网页的数据则复杂的多,很多数据可能是用javascript的动态加载的。如果这时候只用httpclient或者python的requests来获取就无法满足。 模拟浏览器就可以攻破js这堵墙。selenium这方面技术的翘楚。 本文讲解win10环境,python3使用selenium爬取网页数据。 python 3 默认是没有selenium,需要安装。用pip安装pip install selenium 安装完成后,本文用firefox来作为启动的浏览器。#引入selenium包 fr...

在centos 6和7下用rpm安装mysql的步骤

原创 2018-02-28 18:34 阅读(95)次
mysql在进入centos7以后被mariadb替代了。但可能一部分人还是"想"(xi guan)用mysql,本文描述了安装mysql的具体步骤和一些特殊问题。 准备好mysql5.6.21.tar。可以在 https://dev.mysql.com/downloads/mysql/ 这里找到。        1.   把tar包上传到服务器上。用tar xvf   xxx.tar的方式解压 我的版本里面会有很多rpm包,但这边必需的只有server和client包。-rw-r--...

centos上安装一些必要工具和常用命令

原创 2018-02-28 15:50 阅读(119)次
本文将持续更新。 1.    rz    sz 这是一个用命令进行文件上传和下载的工具,很方便。缺点是指能单个文件操作yum install -y lrzsz 安装complete后,即安装成功。如果失败请根据报错信息修改。 在xshell中执行rz 就会打开一个窗口选择文件进行上传。 运行sz a.txt 就会把a.txt下载到本地。   查看linux版本查看内核 cat /proc/version查看发行版本cat /etc/issue 如果是centos7查看发行版本用cat /etc/centos-release ce...

linux配置秘钥登录和去掉密码登录

原创 2018-02-27 15:45 阅读(92)次
本人一直都用xshell登录远程linux。默认情况不论是机房服务器或者云服务器,默认都是密码登录。但工作多年,曾经见过多次服务器被暴力破解密码的情况,建议用户还是都选用秘钥登录的方式较为安全。原理 不管是再复杂的密码组合,只要有时间,总是能用暴力破解开的。当然并不是一定会有人去尝试暴力破解你的密码。但秘钥登录就没有办法暴力破解。如果你私钥丢了就另当别论了。 密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公...

梯度下降 gradient descent

原创 2018-02-25 20:34 阅读(140)次
梯度下降法,用来最小化一个函数的方法,可以用在机器学习的很多地方,特别是cost function,但不仅限于此。 也有称之为最速下降法。 梯度下降的原理就是沿着曲线逐步调整,以一定的学习速率向最低点移动,直到找到全局最低点或者局部最低点。 梯度下降需要有一下几个注意事项: 1.   因为很可能会停留在局部最低值,所以对应的曲线图形最好是凸函数图形,即只有全局最低点,不存在局部最低点的图形,这样就可以排除局部最低点的困扰。 如图,因为到了X点的时候,导数是0,梯度下降不会在移动参数了,认为是最低点了,但其实红点才是最低点。 2.   学习速率的选择,就...

分类之逻辑回归的代价函数costfunction梯度下降求解

原创 2018-02-25 17:14 阅读(139)次
我们在 分类之  分类之逻辑回归的代价函数costfunction  此文中已经给出了cost function, 现在我们要求解。 依然是用梯度下降法来求解,找到cost function  的最小值    minJ(θ)。 因为minJ(θ) 就是说明预测和真实值最接近,预测函数得出的错误“代价”最小。        梯度下降法就是重复做下面的计算 而后半部分求导得到         ...

logstash 入门介绍

原创 2018-02-24 17:49 阅读(141)次
       作为开源的服务器数据处理管道,可以同时从多个采集源(如beats,也可以是其他)接收数据,转换,在发到存储库(elasticsearch)中。过滤,实时的解析和转换多种多样的输出选择可靠性安全和监控logstash能做什么:过滤,实时的解析和转换       数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。       Logstash 能够动态地...

Beats 入门介绍

原创 2018-02-24 16:23 阅读(307)次
Beats官方给出的介绍如下Beats 平台集合了多种单一用途数据采集器。这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据。其实这个功能在我好几年前(第一家公司的时候)曾经开发过类似的产品,是从很多网络设备上获取状态,生成日志再分析的系统。我最先介绍他,是我相信很多大数据项目中,数据采集是非常重要的,甚至比之后放到hadoop或者elasticsearch分析来得重要(ma fan)。因为采集需要适配各种不同的源头,每多一种源头就需要编写一类采集器。举例:美图公司为了采集数据,也自己开发了一个"育母蜘蛛&quo...

Elastic Stack 介绍

原创 2018-02-24 11:43 阅读(116)次
说起elasticsearch知道的人一定不少,但它其实已经发展出了很多衍生的框架来辅助。Elastic Stack就是这些框架的统称。如果你只是需要用elasticseach来做一些数据存储和搜索,那可以跳过本文直接看下面的文章,但如果你跟我一样是一个总是什么事都想尽量知道更多人,不妨花点时间看完它。Elastic Stack目前包含(但不限于) 1.   大名鼎鼎的Elasticsearch,可以用来搜索、分析和存储您的数据。Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可用和管理便捷性而设计。2.  &n...

octave之算数Arithmetic

原创 2018-02-23 14:24 阅读(166)次
数学的遗忘是我学习机器学习中最烦恼的事情了。我不知道有多少程序员跟我一样把数学大部分都已经还给老师了。但要学好机器学习甚至是深度学习,数学得捡回来。Exponents and Logarithms 指数和对数Trigonometry 三角函数其他Exponents and Logarithms 指数和对数e 约等于2.718这件事情没忘吧。exp (x)计算以自然对数e为底的指数计算exp(3) ans = 20.086log (x)以e为底求对数log(2.71) ans = 0.99695log1p (x)相当于log(x+1) ,貌似没什么用的方法。...

分类之逻辑回归的代价函数costfunction

原创 2018-02-23 02:57 阅读(400)次
为什么不能用线性回归的cost function适合logistic regression的cost function为什么不能用线性回归的cost function 所谓代价函数,就是预测值和真实值的误差-----称为cost。而这个cost越小,说明预测越准确。也说明越拟合训练样本,也就能求出拟合训练样本的最好的θ。 如何去拟合训练样本,来找到θ 这个参数矩阵,就是求出分类预测函数h(x)剩下的问题了。 通过  线性回归的求解原理和cost function  一文,我们知道通过找到cost function的最低值,可以找出最佳的预测函数的方方法。 所以我们...

分类之逻辑回归和sigmoid函数

原创 2018-02-22 15:40 阅读(159)次
前文    机器学习之分类入门   我们提到线性回归并不适合分类问题,分类问题需要的输出是在0<=y<=1  这个范围内。所以我们需要一个假设函数的输出在这个范围。        逻辑回归就是用了这样一个函数,他就是sigmoid函数,他也叫logistic function。         sigmoid函数由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数(也叫激活函数,在神经网络中会介绍),将变量映射...

octave之数字类型

原创 2018-02-22 00:58 阅读(158)次
octave拥有数字类型,包含标量,矢量,矩阵。 标量 scalar标量就是单个数字。如果是实数整数,可以用二进制,十进制,十六进制表示。默认十进制。二进制由 0b或者0B开头,十六进制由0x或者0X开头下面是表示相同的值:42 # decimal notation 0x2A # hexadecimal notation 0b101010 # binary notation 0b10_1010 # underscore notation round (42.1) # also binary64 只有十进制数可以表示小数 .10...

octave入门

原创 2018-02-21 04:30 阅读(148)次
启动与退出    基本计算线性求解    其他功能    编写脚本octave可以很容易的进行数值计算(numpy也可以做到)。因为吴恩达的视频中用了这门语言,所以我这边就专门介绍一下这门语言。启动与退出他的安装很容易,只需要下载对应版本的包(如octave-4.2.1-w64.zip),然后解压就可。windows启动命令行的方式在: ../bin/octave.exe    而退出就是在命令行中输入:exit() 基本计算加减乘除就不谈了,指数计算,log,sin,c...

octave画图篇之2D图

原创 2018-02-20 01:30 阅读(201)次
上文我们提到了plot的基本用法我们来画几张特别的图需求1,画一张只有点没有线的图。plot默认会把数据点用线连接起来x = [0;1;2;3;4;5;6;7] y = [0;0;0;0;1;1;1;1] plot(x,y)会得到如下图但是如果命令变成这样,就可以出现需求1的图形了plot(x,y,"marker","*","markersize",20,"color","r","linestyle","none") marker是设置点的标识,mar...

octave画图篇入门

原创 2018-02-14 17:15 阅读(865)次
基本介绍    图形对象     root figure axes line text image patch surface light特殊方法最基本的画图   基本介绍octave  可以绘制很多图形,有助于理解数学计算,矩阵计算等问题。这里以windows为例,安装好octave后,启动octave-cli.exe ,plot是octave的绘图命令。特别注意: octave 4提供了Qt/OpenGL, fltk/OpenGL, gnuplot 三种绘图系统。前两者是新版本提供的,但同时精度不如g...

机器学习之分类入门

原创 2018-02-14 16:37 阅读(148)次
分类问题    数学问题    线性回归不适用    目标    什么是分类问题       判断一个水果,他是苹果,梨子,葡萄,还是桔子。这就是分类问题。       判断一个人是否可以得到贷款,这也是分类问题。       判断一颗植物是否还能存活,这同样是分类问题。       判断一个水果还过多久才能成熟,这就...

初识docker

原创 2018-02-13 16:40 阅读(131)次
需求    功能    和虚拟机的区别    镜像    容器   docker到底是什么需求       随着云计算的发展,现在越来越少公司是自己采购服务器或者租用IDC的固定服务器机架的方式来部署应用了。阿里云,腾讯云,金山云,Amazon,google, 微软等云服务提供商已经大量使用虚拟化计算来提供云服务       想想云服务还没兴起的那几年,也是笔者入行的时候,开发...

安全访问内网linux的方式之XShell的隧道(tunneling)

原创 2018-02-10 16:16 阅读(177)次
前言    需求      解决方案     前言       SSH  :   Secure Shell,一种安全协议,分为ssh1,ssh2两个不同的版本    (这里不是J2EE的那三大框架)。       XShell支持ssh1,ssh2等协议,是目前比较常用的安全终端软件,不过是付费的。       你可以...