python感知机实现代码

yipeiwu_com6年前Python基础

本文实例为大家分享了python感知机实现的具体代码,供大家参考,具体内容如下

一、实现例子

李航《统计学方法》p29 例2.1
正例:x1=(3,3), x2=(4,3),
负例:x3=(1,1)

二、最终效果

三、代码实现

import numpy as np
import matplotlib.pyplot as plt
p_x = np.array([[3, 3], [4, 3], [1, 1]])
y = np.array([1, 1, -1])
plt.figure()
for i in range(len(p_x)):
 if y[i] == 1:
 plt.plot(p_x[i][0], p_x[i][1], 'ro')
 else:
 plt.plot(p_x[i][0], p_x[i][1], 'bo')
 
w = np.array([1, 0])
b = 0
delta = 1
 
for i in range(100):
 choice = -1
 for j in range(len(p_x)):
 if y[j] != np.sign(np.dot(w, p_x[0]) + b):
  choice = j
  break
 if choice == -1:
 break
 w = w + delta * y[choice]*p_x[choice]
 b = b + delta * y[choice]
 
line_x = [0, 10]
line_y = [0, 0]
 
for i in range(len(line_x)):
 line_y[i] = (-w[0] * line_x[i]- b)/w[1]
 
plt.plot(line_x, line_y)
plt.savefig("picture.png")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python安装scipy的步骤解析

1、由于国外网站太慢,所以这里使用的是阿里的镜像 https://mirrors.aliyun.com/pypi/simple/ 2、去官网查看,官方给出的安装方法如下:【pip安装和...

Python中的延迟绑定原理详解

直接看下面例子 my_ld = [lambda x:x*i for i in range(3)] my_list = [ld(2) for ld in my_ld] print(my...

python根据多个文件名批量查找文件

python根据多个文件名批量查找文件

本文实例为大家分享了python根据多个文件名批量查找文件的具体代码,供大家参考,具体内容如下 老板给了我一个文件列表,让我在一堆文件中挑出来,他要的文件有500多个,一堆文件有上千个,...

selenium跳过webdriver检测并模拟登录淘宝

selenium跳过webdriver检测并模拟登录淘宝

简介 模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级,采取该策略比较难实现了。因为你使用get/...

解决python测试opencv时imread导致的错误问题

解决python测试opencv时imread导致的错误问题

如下所示: import cv2 import numpy as np img = cv2.imread("1.jpg")//图片和代码在同个目录,改为相对路径,解决由imrea...