自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 n个数里出现次数大于等于n/2的数

输入n个整数,输出出现次数大于等于数组长度一半的数。 输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。 输出描述:输出出现次数大于等于n/2的数。 输入例子1:3 9 3 2 5 6 7 3 2 3 3 3 输出例子1:3from collections import Counte...

2018-08-30 22:01:14 827

原创 n个数里最小的k个

找出n个数里最小的k个 输入描述:每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n不超过100。 输出描述:输出n个整数里最小的k个数。升序输出 输入例子1:3 9 6 8 -10 7 -11 19 30 12 23 5 输出例子1:-11 -10 3 6 7a = list(map(int, input().split...

2018-08-30 21:31:11 309

转载 Python学习笔记14:17个冷门但实用的小技巧

https://www.jqr.com/article/000413

2018-08-16 15:23:51 655

转载 旋转数组的最小数字 python

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。  思路参考:http://blog.csdn.net/snow_7/article/detail...

2018-08-08 10:55:52 595

原创 排序算法

1.快速排序快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现,也是作为程序员必须掌握的一种排序方法。思想:1.在待排序的元素任取一个元素作为基准(通常选第一个元素,但最的选择方法是从待排序元素中随机选取一个作为基准),称为基准元素;       2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边;       3.对左右两个分区...

2018-08-07 17:21:46 268

原创 学习笔记18:ROC曲线和AUC值

在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更好地了解分类中的错误。比如有这样一个在房子周围可能发现的动物类型的预测,这个预测的三类问题的混淆矩阵如下表所示:一个三类问题的混...

2018-08-07 16:47:44 916

转载 学习笔记17:最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式

最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很容易弄混它们。下文将详细说明MLE和MAP的思路与区别。但别急,我们先从概率和统计的区别讲起。概率和统计是一个东西吗?概率(probabilty...

2018-07-27 11:42:38 525

原创 学习笔记16:极大似然估计

首先来看一个例子,设有两个完全相同的盒子A和B,其中,盒子A中有99个白球,1个黑球;盒子B中有99个黑球,一个白球。今随机抽取一箱,并从中抽取一球,结果取得的是白球,问这个球从哪个箱子取出?对于这个例子,想必大多人会说,是从盒子A中取出的,因为盒子A中有99%是白球,而盒子B中的白球仅占1%,所以盒子A的可能性远远大于B。换言之,这个球“更像”盒子A中取出的。这里的“更像”即为最大似然之原意...

2018-07-27 10:46:11 407

原创 学习笔记15:贝叶斯决策理论

对于模式识别的方法,大体可以分为基于知识和基于数据的两类。所谓基于知识的方法,主要以专家系统为代表,一般归于人工智能的范畴;而基于数据的方法,则可归于基于数据的机器学习。基于数据的方法,基础是统计模式识别,即依据统计的原理来建立分类器。 说到统计,则不得不谈到概率,这里罗列一些概率论的机器学习中的基本概念,百度都可以查到,不再赘述: 样本、样本集、类(类别)、特征、已知样本、未知样本、...

2018-07-27 10:06:41 595

转载 算法的时间复杂度和空间复杂度

通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。       算法执...

2018-07-25 11:05:58 206

转载 动态规划

首先,我们看一下这道题(此题目来源于北大POJ):    数字三角形(POJ1163)        在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或 右下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为 0 - 99    输入格式:    5      //表示三角形的行数...

2018-07-17 10:52:55 186

原创 leetcode 有效的数独 Python

有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ["5","3",".",".","7",".",

2018-07-11 11:19:56 930 1

原创 Python学习笔记14:range() 和xrange()

python range() 函数可创建一个整数列表,一般用在 for 循环中。函数语法range(start, stop[, step])(start, stop[, step])参数说明:start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop。例如:range(0...

2018-07-10 11:45:17 642

原创 Python 学习笔记13:使用异或找重复奇数次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4class Solution: def singleNumber(self, nums): """ ...

2018-07-09 23:06:01 992

原创 Python学习笔记12:Python处理excel数据

使用工具:pyexcel-xls整个excel文件,转化为一个字典结构:每个key就是一个子表(Sheet)每个子表(Sheet),转化为一个二维数组:分别为行和列。安装pypi 的地址:https://pypi.python.org/pypi/pyexcel-xls/ ■ 方法一:可以直接用pip安装pip install pyexcel-xls■ 方法二:下载安装包手动安装。先安装两个依赖包:...

2018-06-06 15:41:25 635

原创 数据结构2:线性表

1.线性表的定义及基本操作1.1什么是线性表?有若干个同类型元素组成的序列(0个或多个)。 定义:线性表    L = (a0, … , ai-1, ai , ai+1 , … , an-1)     其中:L为表名,ai (0≤i≤n-1)为数据元素;n为表长。n>0时,L为非空表;否则为空表,记为Φ 。                         1.2线性表的逻辑结构和特征形式...

2018-06-05 22:04:23 836

原创 Matlab深度学习工具

Matlab一直以来都有着神经网络工具箱,而从2016的版本开始,提供深度神经网络的相关工具。而到现如今2017的版本,功能更加完善,因此本人在此总结Matlab 2017所包含的深度学习的功能。如今版本的Matlab已经包含的如下功能:Ø  利用自己的数据微调训练好的网络(迁移学习)Ø  获取已经训练好的神经网络              包含Alexnet、VGG16、VGG19Ø  提供了方...

2018-06-01 10:37:47 1712 1

原创 数据结构1:认识数据结构与算法

程序 + 文档 = 软件算法 + 数据结构 = 程序数据结构与算法的理论基础离散数学中的图论、集合论和关系论等。数据结构课程的内容来源于图论、操作系统、编译系统、编码理论及检索与排序技术等。1.什么是数据结构?非数值型程序设计中数据的组织方式及其处理的算法数据结构的三个方面:(1)数据的逻辑结构逻辑结是式数据的组织形式,与机器无关。4种基本的逻辑结构:集合:数据元素除了“属于同一集合”的关系外,没...

2018-05-30 21:27:23 581 1

原创 TensorFlow学习6:tf.stack和tf.unstack

tf.stack和tf.unstack分别表示矩阵的合并和分解示例:import tensorflow as tfimport sysimport osimport numpy as npa = tf.constant([1 , 2 , 3])b = tf.constant([4 , 5 , 6])c = tf.stack([a , b] , axis=0)d = tf.unst...

2018-05-30 15:59:17 363

原创 Python学习笔记11:np.random.choice()

可以从一个int数字或1维array里随机选取内容,并将选取结果放入n维array中返回。numpy.random.choice(a, size=None, replace=True, p=None)参数:a:一维数组或者int型变量,如果是数组,就按照里面的范围来进行采样,如果是单个变量,则采用np.arange(a)的形式size : int 或者 tuple of ints, 可选参数 决定...

2018-05-30 11:45:19 905

原创 Python学习笔记10:if __name__ == '__main__'

在Python中,一个.py文件就是一个模块,一般情况下,模块的名字就是文件名(不包括扩展名.py)。全局变量__name__存放的就是模块的名字。而特殊情况就是,当一个模块作为脚本执行时或者在交互式环境中,如Ipython、Python自带的shell等直接运行代码,__name__的值不再是模块名,而是__main__。__main__是顶层代码执行作用域的名字。也就是说,通过__name__...

2018-05-23 09:27:58 523

原创 TensorFlow学习5:TensorBoard可视化

环境:win10;tensorboard17.0TensorBoard打开步骤1.首先创建一个简单的网络:import tensorflow as tfimport numpy as np# 创建一个神经网络层def add_layer(input, in_size, out_size, activation_function = None): """ :param inp...

2018-05-19 22:53:17 343

原创 学习笔记14:L2正则化和丢弃(dropout)

训练模型的过拟合会降低模型的泛化能力,采用正则化的方法解决过拟合的问题。正则化的原理是在损失函数中增加一个惩罚项来限制过大的权重。L0正则化的值是模型参数中非零参数的个数。L1正则化表示各个参数绝对值之和。L2正则化标识各个参数的平方的和的开方值。3、L0正则化根据上面的讨论,稀疏的参数可以防止过拟合,因此用L0范数(非零参数的个数)来做正则化项是可以防止过拟合的。从直观上看,利用非零参数的个数,...

2018-05-18 15:44:54 1610

原创 TensorFlow学习4:保存和读取 TensorFlow 模型

训练一个模型的时间很长。但是你一旦关闭了 TensorFlow session,你所有训练的权重和偏置项都丢失了。如果你计划在之后重新使用这个模型,你需要重新训练!幸运的是,TensorFlow 可以让你通过一个叫 tf.train.Saver 的类把你的进程保存下来。这个类可以把任何 tf.Variable存到你的文件系统。保存变量让我们通过一个简单地例子来保存 weights 和 bias T...

2018-05-17 11:49:45 572

原创 学习笔记13:随机梯度下降法(Stochastic gradient descent, SGD)

假设我们提供了这样的数据样本(样本值取自于y=3*x1+4*x2):x1 x2 y1 4 192 5 265 1 194 2 29x1和x2是样本值,y是预测目标,我们需要以一条直线来拟合上面的数据,待拟合的函数如下:我们的目的就是要求出θ1和θ2的值,让h(θ)尽量逼近目标值y。这是一个线性回归问题,若对线性回归有所了解的同学就知道:利用最小二乘法则和梯度下降法可以求出两个参数,而深度学习也同样...

2018-05-16 16:50:27 8762 1

原创 学习笔记12:用 Scikit-Learn 实现 One-Hot Encoding(独热编码)

scikit-learn 的 LabelBinarizer 函数可以很方便地把你的目标(labels)转化成独热编码向量。示例:import numpy as npfrom sklearn import preprocessing# Example labels 示例labelslabels = np.array([1,5,3,2,1,4,2,1,3])# Create the enc...

2018-05-16 12:08:39 621

原创 TensorFlow学习3:feed_dict

创建了各种形式的常量和变量后,但TensorFlow 同样还支持占位符。占位符并没有初始值,它只会分配必要的内存。在会话中,占位符可以使用 feed_dict 馈送数据。feed_dict是一个字典,在字典中需要给出每一个用到的占位符的取值。在训练神经网络时需要每次提供一个批量的训练样本,如果每次迭代选取的数据要通过常量表示,那么TensorFlow 的计算图会非常大。因为每增加一个常量,Tens...

2018-05-16 10:53:38 618

原创 TensorFlow学习2:tf.Variable()函数

当你需要一个可以修改的tensor的时候,就不能使用tf.paaceholder()和tf.constant()了,这时候需要tf.Variable()函数。tf.Variable(initializer, name):initializer是初始化参数,可以有tf.random_normal,tf.constant,tf.constant等,name就是变量的名字,用法如下:import ten...

2018-05-16 10:24:56 709

原创 TensorFlow学习1:基本用法

TensorFlow程序一般有两个过程,第一阶段需要定义计算图中所有的计算,第二个阶段为执行计算。第一步:构造图TensorFlow有一个默认图,op构造器可以为其增加节点。创建一个矩阵乘法 'matmul ' op , 把 'matrix1' 和 'matrix2' 作为输入. 返回值 'product' 代表矩阵乘法的结果.>>> import tensorflow as t...

2018-05-15 16:37:16 221

原创 学习笔记11:深度信念网络(DBN)

在了解RBM的基础上,介绍深度信念网络。DBN 是由多层 RBM 组成的一个神经网络,它既可以被看作一个生成模型,也可以当作判别模型,其训练过程是:使用非监督贪婪逐层方法去预训练获得权值。 训练过程: 1. 首先充分训练第一个 RBM; 2. 固定第一个 RBM 的权重和偏移量,然后使用其隐性神经元的状态,作为第二个 RBM 的输入向量; 3. 充分训练第二个 RBM 后,将第二个 RBM 堆叠在...

2018-05-08 15:04:33 1321

原创 Python学习笔记9:pandas.DataFrame.iterrows()方法

更多内容参考:pandas官方文档Pandas的基础结构可以分为两种:数据框和序列。数据框是拥有轴标签的二维链表,换言之数据框是拥有标签的行和列组成的矩阵 - 列标签位列名,行标签为索引。Pandas中的行和列是Pandas序列 - 拥有轴标签的一维链表。iterrows()是在数据框中的行进行迭代的一个生成器,它返回每行的索引及一个包含行本身的对象。示例:import pandas as pd...

2018-05-06 22:07:25 33148

原创 Python学习笔记8:split()函数

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串.示例:a = 'i love \nChina'b = a.split()b['i', 'love', 'China']c = a.split(' ')c['i', 'love', '\nChina']...

2018-05-06 19:56:56 245

原创 Python学习笔记7:Jupyter notebook快捷键

命令模式Command Mode编辑模式Edit Mode

2018-05-06 17:26:31 566

原创 学习笔记10:利用TFLearn构建神经网络识别MNIST手写数字数据集

更多内容参考:TFLearn官方文档TFLearn是一个深度学习库,它提供了基于tensorflow的高层API接口.它是在tensorflow上建立的一个模块化的易于使用的库,有助于加快你构建deep learning网络的过程,节省冗长的代码时间.TFLearn 有如下特性:Easy-to-use and understand high-level API for implementing d...

2018-05-06 15:56:54 768 1

原创 Python学习笔记6:Numpy.argmax()

用于返回的是x所在的最大值的下标的值。>>> a = np.arange(6).reshape(2,3) >>> a array([[0, 1, 2], [3, 4, 5]]) #默认是返回的所有的元素的最大的一个下标 >>> np.argmax(a) 5 #axis = 0 ,表示以行为基准,比较在相同列上的...

2018-05-05 22:12:27 556

原创 Python学习笔记5:Numpy.array()

numpy.array()可以快速建立任意维度的矩阵ndarray import numpy as np a = np.arange(90).reshape(9,10) aarray([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, ...

2018-05-05 22:08:34 429

原创 学习笔记9:受限玻尔兹曼机(RBM)

1.RBM模型玻尔兹曼机是一大类的神经网络模型,但是在实际应用中使用最多的则是RBM。RBM本身模型很简单,只是一个两层的神经网络,因此严格意义上不能算深度学习的范畴。不过深度玻尔兹曼机(Deep Boltzmann Machine,以下简称DBM)可以看做是RBM的推广。理解了RBM再去研究DBM就不难了,因此本文主要关注于RBM。回到RBM的结构,它是一个个两层的神经网络,如下图所示:...

2018-05-03 11:37:46 2471 1

原创 学习笔记8:常用损失函数之交叉熵(Cross Entropy)

1.信息量假设X是一个离散型随机变量,其取值集合为XX\mathcal{X},概率分布函数为p(x)=Pr(X=x),x∈Xp(x)=Pr(X=x),x∈Xp(x)=Pr(X=x),x∈\mathcal{X},我们定义事件X=x0X=x0X=x_0的信息量为:I(x0)=−log(p(x0))I(x0)=−log(p(x0))I(x_0)=-log(p(x_0)) 可以理解为,一个事件发生的概...

2018-05-03 11:06:38 3440

原创 学习笔记7:判别模型和生成模型

假设样本为X,标签为Y:判别模型是对条件分布P(Y|X)进行建模;生成模型是对x,y的联合分布P(X,Y)进行建模。举个例子,假设有4个样本:生成模型如下:而判别模型则是:可以看出,生成模型主要表示了输入X和输出Y的生成关系;而判别模型主要关心的是输入X应该输出什么样的Y。典型的生成模型主要有高斯混合模型,受限玻尔兹曼机,朴素贝叶斯和隐马尔科夫模型。典型的判别模型主要有K邻近法,感知机和决策树。生...

2018-04-28 15:12:50 266

原创 学习笔记6:激活函数之Softmax

softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解。假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是:具体示例如下图:softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,...

2018-04-27 22:09:50 24488 2

空空如也

空空如也

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

TA关注的人

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