原理分析①感知机
设输入空间(特征空间)为 X ⊆ R ,输出空间为Y = { − 1 , + 1 } ,输入 x ∈ X为实例的特征向量 输出 y ∈ Y为实例的类别,由输入空间到输出空间的如下函数称为感知机 f(x) = sign(wx+b) 其中w和b为模型参数,w ∈ R n 称为权值,b ∈ R b称为偏置。sign是符号函数。 感知机模型有直观的几何解释:线性方程 w x + b = 0对应于分离超平面S,其中w为S的法向量,b为S的截距。求解感知机,就是要解出w和b,得到能正确分离所有正负样本的超平面S
输入:线性可分的训练数据集T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } 其中x i ∈ X = R n ,y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , . . . , N,学习率η ( 0 ≤ η ≤ 1 ) 输出:参数w , b感知机模型f ( x ) = s i g n ( w x + b )
w←w+ηy ix i ,b←b+ηy i d) 转至(2),直至训练集中没有误分类点。每次根据( x i , y i )调整w , b b时,分离超平面将向该误分类点移动,以减少该误分类点与超平面的距离,越过该误分类点使其正确分类。这里我们进行迭代次数的限制,进行iter=50的迭代。 代码介绍 | |
感知机 1.获取训练集及标签 ①对mnist的 二进制文件集读取每行并进行切割,返回字段列表 ②对mnist数据集的第一列的label值进行二值化,>=5的为1,<5的为-1,并放入labelArr中 ③对mnist数据集的除第一列以外的所有列(data值)进行归一化操作,并放入dataArr中 2.进行感知机模型训练 如果yi*(w*xi.T+b)<=0 则更新参数 迭代30次,得到w,b 3计算准确率 通过比较测试集与训练集的值,计算训练正确率 | |
|
机器学习一 基于感知机模型实现对mnist数据集的分类
最新推荐文章于 2023-03-01 00:00:01 发布