data1的数据如下(线性可分)
前50的标签为1,后50个为-1
data2是针对实现pocket算法而设计的,其实只是在PLA算法上的更新迭代上做了改动
PLA实现代码如下:一些函数解释在后面
相关函数说明:
1。pandas中的iloc函数
df.iloc[:,0].values - > 取第0列的所有数据
df.iloc[:,:3].values - > 取前3列(即0 1 2列)的所有数据
![](https://i-blog.csdnimg.cn/blog_migrate/2b161869b854c04c55b73003305ee13c.png)
2。np.dot()
点乘,详细见图便可理解
![](https://i-blog.csdnimg.cn/blog_migrate/646308841c90af72422cf4798e76768e.png)
3。np.hstack()
见图即可理解
![](https://i-blog.csdnimg.cn/blog_migrate/15f919e315c9c7186432b80898469ae9.png)
4。关于where函数,刚开始有点难理解
最后出现两个array的意思是:第一个array的意思是第几行的意思,第二个array是第几个的意思
结合起来就是第几行第几个的意思
![](https://i-blog.csdnimg.cn/blog_migrate/2443af2ed3d4d6065dee60768cd657fa.png)
以下是针对data2线性不可分的情况下做的改进