感知器算法--python实现
写在前面:
参考:
1 《统计学习方法》第二章感知机【感知机的概念、误分类的判断】 http://pan.baidu.com/s/1hrTscza
2 点到面的距离
3 梯度下降
4 NumPy-快速处理数据 属性shape:表示几行几列; dot(a,b) 计算数组、矩阵的乘积
(为了理解神经网络,我们应该先理解神经网络的组成单元--神经元。神经元也叫做感知器。)
感知器算法:
Python实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #coding:utf-8 import numpy as np class Perceptron( object ): def __init__( self ): self .study_step = 1 #学习步长即学习率 self .study_total = 11 #学习次数即训练次数 self .w_total = 1 #w更新次数 #对数据集进行训练 def train( self , T): w = np.zeros(T.shape[ 1 ] - 1 ) # 初始化权重向量为0 [权重都从0开始] b = 0 # 初始化阈值为0 print ' W X W B' #训练study_total次 for study in range ( self .study_total): w_before = w #训练前的w值 b_before = b #训练前的b值 #训练 for t in range (T.shape[ 0 ]): # 计算实际的y值,其期望值为T[0][2] X = T[t][ 0 :T.shape[ 1 ] - 1 ] #X的值 Y = T[t][T.shape[ 1 ] - 1 ] #期望值 distin = Y * self .input_X(X, w, b) #判断X是否是误分类点 if distin < = 0 : w = w + self .study_step * Y * X b = b + self .study_step * Y print 'w' , self .w_total, ': x' ,t + 1 ,w[ 0 :w.shape[ 0 ]], ' ' , b self .w_total = self .w_total + 1 #经过训练后w、b都不在变化,说明训练集中已没有误分类点,那么跳出循环 if w_before is w and b_before = = b: print '训练后,得到w、b:' , w[ 0 :w.shape[ 0 ]], ' ' , b break return w,b #得出w*x+b的值 def input_X( self , X, w, b): return np.dot(X,w) + b #wwww** #由X去预测Y值 def prediction( self , X, w, b): Y = self .input_X(X, w, b) return np.where(Y > = 0 , 1 , - 1 ) if __name__ = = '__main__' : per = Perceptron() #训练数据集,x1=(3,3),x2=(4,3),x3=(1,1), 对应于y1=1,y2=1,y3=-1 T = np.array([[ 3 , 3 , 1 ],[ 4 , 3 , 1 ],[ 1 , 1 , - 1 ]]) #进行训练的数据集 w,b = per.train(T) #经过训练得到w\b X = np.array([ 3 , 3 ]) # 对X进行预测 Y = per.prediction(X,w,b) #得到X的预测值 print 'X预测得到Y:' ,Y |
标签:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY