phpstorm开发wordpress
Python识别验证码
西北工业大学ACM2014级获奖情况统计
Logistic回归
前言
我们会在这里介绍最优化算法。
假设现在有一些数据点,我们用一条曲线对其进行拟合,这个拟合过程就叫做回归。利用Logistic回归进行分类的主要思想是:根据现有的数据对分类边界建立回归公式,并由此进行分类。训练分类器时的做法就是寻找最佳的拟合参数,使用的是最优化算法,接下来介绍这个而值型输出分类器的数学原理。
Logistics回归的一般过程
- 收集数据
- 准备数据:需要进行距离计算,所以要求数据类型为数值型
- 分析数据
- 训练算法:大部分时间将用于训练,训练的目的是找到最佳的分类回归系数
- 测试算法
- 使用算法:我们需要输入一些数据,并将其转换为对应的结构化数值,接着,给予训练好的回归系数就可以对这些数值进行简单的回归计算,判定它们属于哪个类别,然后就可以在输出的类别上做一些其他的分析工作。
基于Logistic回归和Sigmoid函数的分类
基于Logistics回归的优缺点
优点:计算代价不高,易于理解和实现
缺点:容易欠拟合,分类精度可能不高
适用的数据类型:数值型和标称型数据
所以这里我们需要的函数应该是能够接受所有的输入并且预测出类别。例如,在两个类的情况下,上述函数输出0或者1,这就是海维赛德阶跃函数(heaviside step function),或者直接称之为单位阶跃函数。这里我们常常适用sigmoid
函数来取代海维赛德阶跃函数,sigmoid
Numpy入门
前言
很久都没有用过numpy来做科学计算了,现在Python的机器学习这么火,而机器学习很多代码都需要用numpy、scipy来构建,所以我现在开始进行一些温习吧
ndarray对象
创建
我们需要创建数组并且对其进行操作。
我们可以通过给array函数传递python的序列对象创建数组,如果传递的是多层嵌套序列,将创建多维数组。
数组的类型可以通过dtype来获取:
数组的大小可以通过shape获得或者修改:
这里的大小和列表的大小保持一致。而当变更shape的时候,例如(3,4)->(4,3)的时候,并不是对数组进行转置,而只是改变每个轴的大小,数组元素在内存中的位置并不发生改变。
当某个轴为-1的时候,蒋根据数组元素的个数自动计算此轴的长度,也就是说,如果你变更的shape是2,-1那么其就会自动计算为2,6
使用数组的reshape
的方法,可以创建一个变更尺寸的新数组,而原数组的shape保持不变。但是新数组和原数组仍然共享数据存储内存区域,所以修改任意一个数组的元素都会变更另一个数组的内容。
数组的元素可以通过dtype
属性获得,上面例子中的参数序列的元素都是int
,因此创建的数组的元素类型也是整数,你可以通过指定dtype
参数来指定元素类型。
numpy中的数据类型转换,不能直接改原数据的dtype
。只能用函数astype()
。
而python会自带一些函数来创建数组,可以不需要使用python对象转换为array对象。
arange
类似于range
,通过指定开始、结果以及步长来创建一个一维数组。
linspace
通过开始设置开始、终值和元素个数来创建等差一维数组,可以通过设置endpoint
来指定是否包括终值。
logspace
和linspace
一样,不过创建等比数列。下面这个例子产生1(10^0)到100(10^2),有20个元素的等比数列。
其他
此外使用frombuffer
,fromstring
,fromfile
等函数可以从字节中创建数组
下面以fromstring