-
自制正方软件系统验证码的识别程序(2/4)
文件组成 为了实现训练以及识别的过程,我总共设计了6个文件,作用如下: 文件作用split.py用于将验证码中四个小字符分割出来,并分类保存。util.py用于保存一些常用的函数logistic_sgd.py这是官网上的样例代码,实现了softmax的分类算法,当然还要进行下修改package.py这个用来将图像数据进行处理并打包压缩成为方便使用的数据集train.py这是开始训练的接口check.py这是利用训练结果进行识别的接口 还有两个文件夹: 文件夹作用recognized/用于…
-
多变量线性回归算法
其实所谓的多变量的线性回归(Linear Regression with multiple variables )本质上将与单变量的线性回归没啥差别。因此我们完全可以用上一节中的梯度下降算法来解决,只需要在每一次迭代的时候多考虑几个变量而已。所以这一节就稍微介绍一下了,不再用例子分析。不过毕竟多了一些变量,在对多变量跑梯度下降算法时,显然对参数的调节就更加重要了,因此我们首先得学会一些参数调节的技巧。这些技巧在实际的操作过程中尤为重要。 调节参数 特征值缩放(Feature Scalin…
-
批量梯度下降算法
这一讲介绍了我们的第一个机器学习算法,”批量“梯度下降算法(Batch Gradiant Descent)。注意到他在前面加了个“批量(Batch)”,这其实是为了与以后的另一种梯度下降算法进行区分从而体现出这个算法的特点。 线性回归 梯度下降算法这是用来解决所谓的“线性回归”问题。线性回归应该都懂了,这里大概的进行下定义(以单变量为例): 1、给你一个数据集(Training Set),数据集中有很多个数对,表示$(x_i,y_i)$。 2、你的任务是构造一个预测函数$h_\thet…
-
Python读取mnist数据集
在看deeplearning教程的时候遇到了这么个玩意,mnist,一个手写数字的数据集。大概是google为了方便广大程序员进行数字识别而构建的库,里面都是美国中学生手写的阿拉伯数字,但是为了方便存储,他并不是以图片的形式保存的,而是以二进制文件的形式保存的。这就让普通人看着略微蛋疼的了,教程里也并没有提供具体的提取图片的方案。得,读取这个还得自己来。 地址 我用的应该是用python处理过的版本: mnist.pkl.gz,这个好像是为了方便用python读取特意配置过的。 分析…
-
Matplotlib+Numpy绘图之多种绘图
下面将以例子的形式分析matplot中支持的,分析中常用的几种图。 填充图 参考代码 from matplotlib.pyplot import * x=linspace(-3,3,100) y1=np.sin(x) y2=np.cos(x) fill_between(x,y1,y2,where=(y1>=y2),color='red',alpha=0.25) fill_between(x,y1,y2,where=(y<>y2),color='…
-
Matplotlib+Numpy绘图之引言
简述 Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单。具体介绍见matplot官网。中文教程见reverland的博客-Matplotlib教程(来自官方教程的翻译)。 Numpy(Numeric Python)是一个模仿matlab的对python数值运算进行的扩展,提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生,而且据说自从他出现了以…
-
Matplotlib+Numpy绘图之基本操作
需要导入的包: import numpy as np from pylab import * 第一个函数图像 X = np.linspace(-np.pi, np.pi, 256,endpoint=True) C,S = np.cos(X), np.sin(X) plot(X,C) plot(X,S) show() 有matlab基础的同学肯定不陌生。。。是的,这两个模块的组合几乎就跟matlab的用法无二。。 1、首先用np.linspace方法生成一个数组X,这个数组是从$-…
-
Python标准库cPickle包用法简析
CPickle包是一个很常用的工具,用来将任何一个数据类型存储到文件中,再原封不动的读取出来。在需要保存一些特定格式的数据或是大量的数据的时候相比自己写文件来说,可是非常方便而且有用的。 用法 将数据输出到文件 import cPickle class test(): element1 = 1 element2 = '2' obj=test() cPickle.dump(obj,open("data.txt",'wb…
-
苏大Mooc系统的刷课脚本的制作(3/3)
最后决定用最简单的python脚本进行实现。具体过程部分析了,不过值得一提的是,在登陆获取用户的cookie的时候,他也发送了一个挺长的“随机”串,研究了半天才发现他是使用了md5摘要算法,将密码和密码的摘要一同发给了服务器。。。。。。 以下是源码: #cheat.py import urllib,urllib2,cookielib,md5,re,json,sys def login(name,pwd): url_login="http://ids1.suda.edu.cn/…
-
苏大Mooc系统的刷课脚本的制作(2/3)
我们知道了通过发送get请求来进行手动刷课的原理,但是这显然还是不够方便。而且虽然我们知道了发送的包,但是我们并不知道这些数据从何而来。这是一个问题。 继续查看源码,终于在头信息里发现他引用了一个叫StudentLearning.js文件,介绍了整个系统运行的逻辑。其中有一个非常重要的函数: //视频学习表 function GetStudentstudy() { if (Isfull != true) { if ($(".item_odd1").…