机器学习:感知机算法(不调库,纯Python代码)
什么是感知机 公式文字我也就不复现了,网上简直多如牛毛 (1)推荐看李航博士的《统计学习方法》 (2)或: https://www.jianshu.com/p/c91087e6e1ea(篇幅略小,简单了解) 第二篇文章篇幅较小,但基本介绍清楚了感知机的 原始形式 ,想要进一步了解感知机的 对偶形式 ,可自行搜索资料 以上两个推荐中,都是以两特征数据来分类的,也就是 数据点 和 超平面 可以在二维坐标系中呈现 于是我的代码也是如此,代码的可扩展性还是很大的,想要更高维度的数据可以自行修改 但是超过三维特征,将无法结合所有维度同时可视化 —————————————————————————————————————————————————— 强烈建议仔细看书学懂了再来看代码!!!不要囫囵吞枣,之前我也是觉得自己看懂了,实际写代码就傻眼 好好想想参数怎么更新,怎么储存数据,怎么利用numpy矩阵… 全程都采用矩阵来计算,初始化函数中,参数矩阵是一个三维矩阵,其中最后一个是偏置b 创建numpy数组必须声明浮点数类型,否则当学习率不为1时,会导致参数更新自动取整,进而会出现迭代无法完成的情况。 包括收录数据时,也要声明为浮点类型,否则就导致数据自动变为取整型int32 def __init__ ( self ) : self . learn_rate = 0.5 # 随意设置 self . w