自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 python nonzero

nonzero(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。例如对于一维布尔数组b1,nonzero(b1)所得到的是一个长度为1的元组,它表示b1[0]和b1[2]的值不为0(False)。[python] view plain copy

2017-04-30 10:37:55 493

转载 关于Python中的yield

在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。一、迭代器(iterator)在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到

2017-04-22 09:55:46 331

转载 Python的sys.stdout、sys.stdin重定向

sys.stdout 与 print当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n')print 将你需要的内容打印到了控制台,然后追加了一个换行符print 会调用 sys.stdout 的 write 方法以下两行在事实上等价:sys.stdout.write('

2017-04-22 09:42:27 800

原创 python numpy中nonzero()的用法

当使用布尔数组直接作为下标对象或者元组下标对象中有布尔数组时,都相当于用nonzero()将布尔数组转换成一组整数数组,然后使用整数数组进行下标运算。nonzeros(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。例如对于一维布尔数组b1,nonzero(b1)所得到的是一

2017-04-21 16:25:23 731

转载 Softmax公式推导

直接给出了梯度更新公式,但是没有给出公式推导。这里对公式推导进行简单的补充说明。

2017-04-15 09:33:57 1026

原创 KNN

缺点:耗内存,存储所有训练样本,对每个测试样本都要计算和所有训练数据的距离,时间成本高代码如下:from numpy import *import osdef loaddata():    data=array([[1.0, 0.9], [1.0, 1.0], [0.1, 0.2], [0.0, 0.1]])      labels = ['A', 'A', '

2017-04-14 15:56:09 310

转载 python xrange和range的使用区别

range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表。 eg:>>> range(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> range(2,10)[2, 3, 4, 5, 6, 7, 8, 9]>>> range(2,10,2)[2, 4, 6,

2017-04-13 21:00:55 350

转载 Python-Numpy的tile函数用法

>>> tile(1,2)array([1, 1]) >>> tile((1,2,3),3)array([1, 2, 3, 1, 2, 3, 1, 2, 3]) >>> tile(a,2)array([[1, 2, 3, 1, 2, 3], [4, 5, 5, 4, 5, 5]]) >>> b=[1,3,5]>>>

2017-04-13 20:40:08 423

转载 Beta函数与Gamma函数及其与Beta分布的关系

相关函数在scipy.specialimport scipy.special as ssss.beta(x1, x2)1212相关分布(概率密度)在scipy.statsimport scipy.stats as stss.beta(a, b) # 随机变量1212β Function:B(x,y)=∫10tx−1(1−t)y−1dt

2017-04-12 15:12:14 3872

转载 MCMC(Markov Chain Monte Carlo)的理解与实践(Python)

理解MCMC及一系列改进采样算法的关键在于对马尔科夫随机过程的理解。更多详尽的讨论请参见 重温马尔科夫随机过程。对于给定的概率分布 π(x),我们希望能有便捷的方式生成它(π(x))对应的样本。由于马氏链能收敛到平稳分布,于是一个很nice的想法(by Metropolis, 1953)是:如果我们能够构造一个转移矩阵为 P的马氏链,使得该马氏链的平稳分布恰好是 π(x),那么我们从任

2017-04-12 15:09:21 4985

转载 机器学习算法的调试 —— 梯度检验(Gradient Checking)

反向传播算法很难调试得到正确结果,尤其是当实现程序存在很多难于发现的bug 时。举例来说,索引的缺位错误(off-by-one error)会导致只有部分层的权重得到训练(for(i=1; i 被漏写为 for(i=1; i),再比如忘记计算偏置项。这些错误会使你得到一个看似十分合理的结果(但实际上比正确代码的结果要差)。因此,仅从计算结果上来看,我们很难发现代码中有什么东西遗漏了。本节中,我

2017-04-12 10:17:40 684

转载 机器学习算法——SVD奇异值分解

一、SVD奇异值分解的定义    假设是一个的矩阵,如果存在一个分解:其中为的酉矩阵,为的半正定对角矩阵,为的共轭转置矩阵,且为的酉矩阵。这样的分解称为的奇异值分解,对角线上的元素称为奇异值,称为左奇异矩阵,称为右奇异矩阵。二、SVD奇异值分解与特征值分解的关系    特征值分解与SVD奇异值分解的目的都是提取一个矩阵最重要的特征。然而,特征值分解只适用于方

2017-04-11 19:12:30 411

转载 numpy 中的ndarray数组返回符合特定条件的索引方法

在numpy的ndarray类型中,似乎没有直接返回特定索引的方法,我只找到了where函数,但是where函数对于寻找某个特定值对应的索引很有用,对于返回一定区间内值的索引不是很有效,至少我没有弄明白应该如何操作。下面先说一下where函数的用法吧。(1)where函数的使用场景:例如现在我生成了一个数组:[html] view plain copy

2017-04-10 16:36:29 6769

转载 numpy 基础 —— np.linalg

(1)np.linalg.inv():矩阵求逆(2)np.linalg.det():矩阵求行列式(标量)np.linalg.norm顾名思义,linalg=linear+algebra,norm则表示范数,首先需要注意的是范数是对向量(或者矩阵)的度量,是一个标量(scalar):首先help(np.linalg.norm)查看其文档:norm(x, ord=None,

2017-04-09 17:09:39 2505 1

转载 TypeError: 'module' object is not callable 原因分析

程序代码 class Person:     #constructor     def __init__(self,name,sex):          self.Name = name          self.Sex = sex     def ToString(self):          return 'Name:'+self.Name+',Sex:'+s

2017-04-09 16:21:02 2048

转载 牛顿法

牛顿法相比梯度下降法速度更快,每次更新使损失以二次方的速度减少,因此称二次迭代,其原理如下:牛顿法至少有两个应用方向,1、求方程的根,2、最优化。牛顿法涉及到方程求导,下面的讨论均是在连续可微的前提下讨论。 1、求解方程。并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x)

2017-04-03 15:18:43 474

原创 局部加权平均-线性回归

定义:给定我们要预测的样本的特征,求该样本与训练样本集之间的距离作为相应训练样本权重,然后模型训练和线性回归一样特点:这样我们可以用局部线性函数近似非线性函数,但是,每个预测样本都要训练一个模型,时间复杂度较高

2017-04-03 11:39:26 1448

原创 梯度下降与随机梯度下降

梯度下降:假设 y=f(x)导数:dy>0 ,则随x增加y值变大,dy当我们最小化目标函数时,参数x用下式更新,alpha为常数x := x-alpha*dy当 dy>0 时 ,则随x增加y值变大,上式x值减小,则y值也减小当 dy同理,当我们最大化目标函数时,参数x用下式更新,alpha为常数x := x+alpha*dy随机梯度下降:每次用单个样

2017-04-02 17:13:46 451

转载 python 多线程

多线程和多进程是什么自行google补脑  对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。 单线程   在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看电影两件事儿,那么一定要先排一下顺序。(好吧!我们不纠结在DOS时代是否有听音乐和

2017-04-01 18:37:38 237

空空如也

空空如也

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

TA关注的人

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