当前位置:   article > 正文

计算智能小作业 感知机分类_感知机 作业

感知机 作业

感知机分类:

设有两个模式样本集合

用感知机算法设计两个模式类的分类判决函数 

python实现,但是由于一旦分类成功就停止,分类的显著性较低。

也没画图,尴尬。

 

    

  1. def calW(a,b,w,bb,n): #a 正集合 b负集合 w 系数 bb sigma n 学习系数// f 激活函数
  2. if len(a)==0 and len(b)==0:
  3. return False
  4. pnum=0 #处理元素的次数
  5. wnum=0 #w循环次数
  6. while True:
  7. for num in a:
  8. pnum=pnum+1
  9. Dval=mul(num,w,bb)
  10. if Dval<0:
  11. wnum=wnum+1
  12. w,bb=update(w,bb,n,Dval,num,1)
  13. print(w,wnum,bb,'\n')
  14. pnum=0
  15. for num in b:
  16. pnum=pnum+1
  17. Dval=mul(num,w,bb)
  18. if Dval>0:
  19. wnum=wnum+1
  20. w,bb=update(w,bb,n,Dval,num,0)
  21. print(w,bb,'\n')
  22. pnum=0
  23. if pnum>=len(a)+len(b):
  24. break
  25. return wnum
  26. def mul(num,w,b):
  27. if not len(num)==len(w):
  28. return False
  29. sum=0
  30. for i in range(len(num)):
  31. sum=sum+num[i]*w[i]
  32. sum=sum+b
  33. return sum
  34. def update(w,b,n,Dval,num,flag):
  35. if flag:
  36. for i in range(len(w)):
  37. w[i]=w[i]+(1-Dval)*n*num[i]
  38. b=b+n*(1-Dval)
  39. else:
  40. for i in range(len(w)):
  41. w[i]=w[i]+(-1-Dval)*n*num[i]
  42. b=b+n*(-1-Dval)
  43. return w,b
  44. def main():
  45. a=[[2,1],[2,2],[3,2]]
  46. b=[[4,0],[5,0],[5,1]]
  47. n=0.1
  48. bb=0.2
  49. num=calW(a,b,[1000,1],bb,n)
  50. print(num)
  51. main()

并说明,当权值向量     取不同初值时,激活函数不同时,对训练效果的影响及原因。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/803507
推荐阅读
相关标签
  

闽ICP备14008679号