kidozh

某不科学的kidozh


  • 首页

  • 分类

  • 归档

  • 标签

  • 公益404

  • 关于

  • 我的项目

  • 我的简历

python读取网页产生的octet-stream文件

发表于 2016-07-30 | 分类于 Python
前言在爬取Vjudge的导出代码的时候,之前我们采用的是纯正则一个个抓取,速度很慢,当时Vjudge官方向我们提供了一种解决方法就是从URL中获得比赛源代码。 获得验证众所周知,Vjudge获取比赛源代码需要登陆拉题人的账号密码,所以我使用了Request这个库来处理含有cookie的请求。所以首先 ...
阅读全文 »

phpstorm开发wordpress

发表于 2016-07-27 | 分类于 网页
前言众所周知,phpstorm是一个非常易用的PHP的IDE,而wordpress则是一款比较常见的博客后台。这里就可以使用PHPStorm来开发wordpress(比如插件,主题以及核心)。 把wordpress集成到一个现存的PHPStorm工程你可以这样创建一个WordPress插件工程。 ...
阅读全文 »

支持向量自动机

发表于 2016-07-21 | 分类于 深度学习
前言SVM,支持向量自动机,是目前分类器不加修改可以直接使用的最好的现成的分类器。其中最流行的一种实现,也就是序列最小优化(Sequential Minimal Optimization)算法。 基于最大间隔分隔数据特点优点泛化错误率低,计算开销不打,结果易解释。 缺点对参数调节和核函数的选择比较敏 ...
阅读全文 »

Python识别验证码

发表于 2016-07-15 | 分类于 Python
前言在网页爬虫的时候往往我们需要破解验证码,这篇博文是为了论证如何依赖Python来识别验证码。 准备工作首先我们需要安装PIL这个库。123sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev \libfreetype6-dev lib ...
阅读全文 »

跨站点请求伪造

发表于 2016-07-13 | 分类于 安全工程
CSRF简介CSRF全称是Cross Site Request Forgery,也就是跨站点请求伪造,是一种很常见的Web攻击。 在很多网站的操作中,往往使用者只需要一个Cookie和参数就可以对其内容的增添或者删除的操作,比如搜狐的博客就有: http://blog.sohu.com/manage ...
阅读全文 »

西北工业大学ACM2014级获奖情况统计

发表于 2016-05-30 | 分类于 未分类
在今晚之前需要提交你的获奖情况 需要填的奖项有: 省赛请同学来填这一项比赛。 [contact-form][contact-field label=’姓名’ type=’name’ required=’1’/][contact-field label=’学号’ type=’text’ requi ...
阅读全文 »

wordpress迁移到4.5

发表于 2016-05-18 | 分类于 未分类

终于我的博客使用手动升级的方法从3.9升级到了4.5这个版本。

预期在这个版本里,Jetpack的支持能更好的检测我的博客。

比心~

阅读全文 »

跨站脚本攻击

发表于 2016-05-17 | 分类于 安全工程
前言跨站脚本攻击是经常发生的事情,作为一名业余的开发者,我觉得有必要make note一下。 XSS简介跨站点脚本攻击(Cross Site Script),为了和层叠样式表区别,所以称之为XSS。 XSS攻击的本质是向HTML插入了恶意的脚本,从而曲解HTML的意思,控制攻击浏览器。XSS长期以来 ...
阅读全文 »

Logistic回归

发表于 2016-05-14 | 分类于 Python

前言

我们会在这里介绍最优化算法。

假设现在有一些数据点,我们用一条曲线对其进行拟合,这个拟合过程就叫做回归。利用Logistic回归进行分类的主要思想是:根据现有的数据对分类边界建立回归公式,并由此进行分类。训练分类器时的做法就是寻找最佳的拟合参数,使用的是最优化算法,接下来介绍这个而值型输出分类器的数学原理。

Logistics回归的一般过程

  1. 收集数据
  2. 准备数据:需要进行距离计算,所以要求数据类型为数值型
  3. 分析数据
  4. 训练算法:大部分时间将用于训练,训练的目的是找到最佳的分类回归系数
  5. 测试算法
  6. 使用算法:我们需要输入一些数据,并将其转换为对应的结构化数值,接着,给予训练好的回归系数就可以对这些数值进行简单的回归计算,判定它们属于哪个类别,然后就可以在输出的类别上做一些其他的分析工作。

基于Logistic回归和Sigmoid函数的分类

基于Logistics回归的优缺点

优点:计算代价不高,易于理解和实现

缺点:容易欠拟合,分类精度可能不高

适用的数据类型:数值型和标称型数据

所以这里我们需要的函数应该是能够接受所有的输入并且预测出类别。例如,在两个类的情况下,上述函数输出0或者1,这就是海维赛德阶跃函数(heaviside step function),或者直接称之为单位阶跃函数。这里我们常常适用sigmoid函数来取代海维赛德阶跃函数,sigmoid

阅读全文 »

Numpy入门

发表于 2016-05-09 | 分类于 Python

前言

很久都没有用过numpy来做科学计算了,现在Python的机器学习这么火,而机器学习很多代码都需要用numpy、scipy来构建,所以我现在开始进行一些温习吧

ndarray对象

创建

我们需要创建数组并且对其进行操作。

我们可以通过给array函数传递python的序列对象创建数组,如果传递的是多层嵌套序列,将创建多维数组。

1
2
3
4
5
a = numpy.array([1,2,3,4])# the list can be replaced with tuple
b = numpy.array((1,2,3,4))
c = numpy.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])

数组的类型可以通过dtype来获取:

1
2
>>> print c.dtype
int64

数组的大小可以通过shape获得或者修改:

1
2
print a.shape,c.shape
(4,) (3, 4)

这里的大小和列表的大小保持一致。而当变更shape的时候,例如(3,4)->(4,3)的时候,并不是对数组进行转置,而只是改变每个轴的大小,数组元素在内存中的位置并不发生改变。

1
2
3
4
5
6
7
c.shape = 4,3
print c
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]

当某个轴为-1的时候,蒋根据数组元素的个数自动计算此轴的长度,也就是说,如果你变更的shape是2,-1那么其就会自动计算为2,6

1
2
3
4
5
c.shape = 2,-1
print c
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]

使用数组的reshape的方法,可以创建一个变更尺寸的新数组,而原数组的shape保持不变。但是新数组和原数组仍然共享数据存储内存区域,所以修改任意一个数组的元素都会变更另一个数组的内容。

1
2
3
4
5
d = c.reshape((2,-1))
print d
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]

数组的元素可以通过dtype属性获得,上面例子中的参数序列的元素都是int,因此创建的数组的元素类型也是整数,你可以通过指定dtype参数来指定元素类型。

1
e = numpy.array([1,2,3,4],dtype=numpy.float)

numpy中的数据类型转换,不能直接改原数据的dtype。只能用函数astype()。

而python会自带一些函数来创建数组,可以不需要使用python对象转换为array对象。

arange

类似于range,通过指定开始、结果以及步长来创建一个一维数组。

linspace

通过开始设置开始、终值和元素个数来创建等差一维数组,可以通过设置endpoint来指定是否包括终值。

1
2
3
4
numpy.linspace(0,1,12)
array([ 0\. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1\. ])

logspace

和linspace一样,不过创建等比数列。下面这个例子产生1(10^0)到100(10^2),有20个元素的等比数列。

1
2
3
4
5
6
numpy.logspace(0,2,20)
array([ 1\. , 1.27427499, 1.62377674, 2.06913808,
2.6366509 , 3.35981829, 4.2813324 , 5.45559478,
6.95192796, 8.8586679 , 11.28837892, 14.38449888,
18.32980711, 23.35721469, 29.76351442, 37.92690191,
48.32930239, 61.58482111, 78.47599704, 100\. ])

其他

此外使用frombuffer,fromstring,fromfile等函数可以从字节中创建数组

下面以fromstring

阅读全文 »
1…456…12
kido zhang

kido zhang

113 日志
19 分类
78 标签
GitHub Twitter weibo douban zhihu
Creative Commons
0%
© 2014 — 2019 kido zhang
由 Hexo 强力驱动
|
主题 — NexT.Pisces