感知机算法实现-python

简介: 笔记

一.Python实现《李航统计学》第二章感知机算法。

先来说一下算法原原理吧:


1.感知机由输入空间到输出空间的函数为:


y=sign(w∗x+b)


sign(x)=+1(x>=0)


sign(x)=−1(x<0)

算法实现的步骤如下:


1.初始化w,b

2.遍历数据(x,y)

3.如果遇到sign(w*x(i)+b)!= y(i),则更新w,b


w=w+learning−rate∗y(i)∗x(i)


b=b+learning−rate∗y(i)

4.然后结束本次遍历,转至步骤2,知道数据中没有分类错误的点存在。

import numpy as np
x = np.array([
  [3,3],
  [4,3],
  [1,1]
])
y = np.array([1,1,-1])
w = np.array([1,1])
b = 0
learning_rate = 0.1
for i in range(10):
  temp = -1
  for j in range(x.shape[0]):
    pred = np.sign(np.dot(w,x[j])+b)   
    if pred != y[j]:
      temp = j
      break
  if temp != -1:
    w = w + learning_rate*x[temp]*y[temp]
    b = b + learning_rate*y[temp]

基本迭代几次就可以得到该平面了。

版本二:

import numpy as np
def process(x,y,learning_rate=0.01,epoch=100):
    w = np.ones_like(x[1])
    b = 1
    for i in range(epoch):
        temp = -1
        for j in range(x.shape[0]):
            pred = np.sign(np.dot(w,x[j])+b)
            if pred != y[j]:
                temp = j
                break
        if temp != -1:
            w = w + learning_rate * x[temp] * y[temp]
            b = b + learning_rate * y[temp]
x = np.array([
  [3,3],
  [4,3],
  [1,1]
])
y = np.array([1,1,-1])
process(x,y,1,10)

版本三:

import numpy as np
class Perceptron:
    def fit(self,x,y,learning_rate=0.1, epoch=100):
        self.x = x
        self.y = y
        self.learning_rate = learning_rate
        self.epoch = epoch
        self.w = np.ones_like(x[1])
        self.b = 1
        for i in range(self.epoch):
            temp = -1
            for j in range(self.x.shape[0]):
                pred = np.sign(np.dot(self.w, self.x[j]) + self.b)
                if pred != self.y[j]:
                    temp = j
                    break
            if temp != -1:
                self.w = self.w + self.learning_rate * self.x[temp] * self.y[temp]
                self.b = self.b + self.learning_rate * self.y[temp]
    def pred(self,x):
        return np.sign(np.dot(self.w,x)+self.b)
x = np.array([
  [3,3],
  [4,3],
  [1,1]
])
y = np.array([1,1,-1])
a = Perceptron()
a.fit(x,y,1)
print(a.pred(np.array([1,1])))

上面以三种不同形式的代码实现了感知机,随着以后的深入学习,还会继续完善这些代码。

Thank for your reading !!!


公众号:FPGA之旅



目录
相关文章
|
1天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
22 12
|
7天前
|
监控 算法 安全
内网桌面监控软件深度解析:基于 Python 实现的 K-Means 算法研究
内网桌面监控软件通过实时监测员工操作,保障企业信息安全并提升效率。本文深入探讨K-Means聚类算法在该软件中的应用,解析其原理与实现。K-Means通过迭代更新簇中心,将数据划分为K个簇类,适用于行为分析、异常检测、资源优化及安全威胁识别等场景。文中提供了Python代码示例,展示如何实现K-Means算法,并模拟内网监控数据进行聚类分析。
28 10
|
25天前
|
存储 算法 安全
控制局域网上网软件之 Python 字典树算法解析
控制局域网上网软件在现代网络管理中至关重要,用于控制设备的上网行为和访问权限。本文聚焦于字典树(Trie Tree)算法的应用,详细阐述其原理、优势及实现。通过字典树,软件能高效进行关键词匹配和过滤,提升系统性能。文中还提供了Python代码示例,展示了字典树在网址过滤和关键词屏蔽中的具体应用,为局域网的安全和管理提供有力支持。
50 17
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
135 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
算法 网络协议 Python
探秘Win11共享文件夹之Python网络通信算法实现
本文探讨了Win11共享文件夹背后的网络通信算法,重点介绍基于TCP的文件传输机制,并提供Python代码示例。Win11共享文件夹利用SMB协议实现局域网内的文件共享,通过TCP协议确保文件传输的完整性和可靠性。服务器端监听客户端连接请求,接收文件请求并分块发送文件内容;客户端则连接服务器、接收数据并保存为本地文件。文中通过Python代码详细展示了这一过程,帮助读者理解并优化文件共享系统。
|
2月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
132 66
|
2月前
|
存储 缓存 算法
探索企业文件管理软件:Python中的哈希表算法应用
企业文件管理软件依赖哈希表实现高效的数据管理和安全保障。哈希表通过键值映射,提供平均O(1)时间复杂度的快速访问,适用于海量文件处理。在Python中,字典类型基于哈希表实现,可用于管理文件元数据、缓存机制、版本控制及快速搜索等功能,极大提升工作效率和数据安全性。
74 0
|
2月前
|
存储 算法 Python
文件管理系统中基于 Python 语言的二叉树查找算法探秘
在数字化时代,文件管理系统至关重要。本文探讨了二叉树查找算法在文件管理中的应用,并通过Python代码展示了其实现过程。二叉树是一种非线性数据结构,每个节点最多有两个子节点。通过文件名的字典序构建和查找二叉树,能高效地管理和检索文件。相较于顺序查找,二叉树查找每次比较可排除一半子树,极大提升了查找效率,尤其适用于海量文件管理。Python代码示例包括定义节点类、插入和查找函数,展示了如何快速定位目标文件。二叉树查找算法为文件管理系统的优化提供了有效途径。
64 5
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
356 55
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
220 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别

热门文章

最新文章

推荐镜像

更多