感知机算法实现-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之旅



目录
相关文章
|
2月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
89 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
28天前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
50 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
13天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
49 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
116 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
17天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
2月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
104 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
25天前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
50 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
95 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
87 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1月前
|
算法 安全 Go
RSA加密算法详解与Python和Go实现
RSA加密算法详解与Python和Go实现
83 1

热门文章

最新文章