任务描述

本关任务:使用感知机算法建立一个模型,并根据感知器算法流程对模型进行训练,得到一个能够准确对西瓜好坏进行识别的模型。

相关知识

为了完成本关任务,你需要掌握:1.什么是感知器,2.感知器算法流程。

数据介绍
西瓜数据集中的样本特征一共有 30 个,包括:色泽、根蒂、敲声等。类别为是好瓜与不是好瓜。部分数据如下:

由于我们的模型只能对数字进行计算。所以,我们用x1表示色泽,x2表示根蒂,x3 表示敲声 。y 表示类别。其中,x1 = 0,表示青绿,x2 = 2,表示稍蜷, y=-1,表示不是好瓜。具体如下图:

而我们的任务就是,用感知器算法建立一个模型,利用训练集上的数据对模型进行训练,并对测试集上的数据进行分类。

什么是感知器
我们希望构建一个感知器模型,根据色泽、根蒂、敲声这三个特征来判断是好瓜还是坏瓜。


比如说,输入的特征值分别是青绿,蜷缩,浊响对应特征向量为 (0,0,0)。感知器模型会首先将样本特征值x转换为增广特征向量y,对y乘以一个对应的权值向量a,所得到的值如果大于等于 0,则判断为 +1 类别,即为好瓜,如果得到的值小于 0,则判断为 -1 类别,即不是好瓜。数学模型如下:

感知器算法流程
我们能否正确对西瓜好坏进行预测,完全取决于权向量的值是否正确,那么如何找到正确的参数呢?可以利用训练样本,使用梯度下降法优化感知器准则(损失函数),将权向量求解出来。

那么,感知器准则是怎么样的呢?
感知器准则函数是误分类点到决策边界的函数距离:



综上,感知机只针对误分类的点对参数进行更新,利用随机梯度下降算法,每次迭代值取一个样本,具体流程如下:

提示:

  1. 可利用np.column_stack()函数将样本转化为增广样本;
  2. dot()函数计算向量点积。

编程要求

根据提示,在右侧编辑器中的 begin-end 之间补充 python 代码,构建一个感知机模型,底层代码会调用您实现的感知机模型进行训练,并对测试集上数据进行分类。

测试说明

程序内部会检测您的代码,预测正确率大于 0.8 则视为过关。

代码

#encoding=utf8
import numpy as np
#构建感知机算法
class Perceptron(object):def __init__(self, learning_rate = 0.01, max_iter = 200):self.lr = learning_rateself.max_iter = max_iterdef fit(self, data, label):'''input:data(ndarray):训练数据特征label(ndarray):训练数据标签output:a(ndarray):训练好的权重b(ndarry):训练好的偏置'''#编写感知机训练方法,a为增广权向量# datat = np.column_stack((data,np.ones(data.shape[0]))) #将样本转化为增广样本self.w = np.array([1.]*data.shape[1])self.b = np.array([1.])#********* Begin *********#for i in range(len(label)):while label[i]*(np.matmul(self.w,data[i])+self.b) <= 0:self.w = self.w + self.lr * (label[i]*data[i])self.b = self.b + self.lr * label[i]#********* End *********#def predict(self, data):'''input:data(ndarray):测试数据特征output:predict(ndarray):预测标签'''#********* Begin *********#yc = np.matmul(data,self.w) + self.bfor i in range(len(yc)):if yc[i] >= 0:yc[i] = 1else:yc[i] = -1predict = yc#********* End *********#return predict

感知器 - 西瓜好坏自动识别——python相关推荐

  1. 神经网络 | 网络优化-线性神经网络-delta学习规则-梯度下降法(单层感知器-异或问题Python源代码)

    ===================================================== github:https://github.com/MichaelBeechan CSDN: ...

  2. 单层感知器python_感知器及其在Python中的实现

    本文涵盖以下主题: 什么是感知器?算法.Python实现.局限性. 什么是感知器? 生物神经元示意图 感知器的概念类似于大脑基本处理单元神经元的工作原理.神经元由许多由树突携带的输入信号.胞体和轴突携 ...

  3. Python 实现感知器模型、两层神经网络

    python 3.4 因为使用了 numpy 这里我们首先实现一个感知器模型来实现下面的对应关系 [[0,0,1], --- 0 [0,1,1], --- 1 [1,0,1], --- 0 [1,1, ...

  4. 感知器python代码

    感知器属于机器学习的入门算法了,具体的理论知识不细讲了.只说下里面涉及到的核心知识: 权重更新公式:w=wi+▲wi          b=b+▲b其中▲wi=n(t-y)x   b=n(t-y) n ...

  5. python 实现感知器(一)

    基础知识不再重述,可参考https://www.zybuluo.com/hanbingtao/note/433855 直接贴出文章里的代码以供参考学习,这里主要是为了锻炼自己的编写代码的能力,之前一直 ...

  6. Python实现感知器的逻辑电路(与门、与非门、或门、异或门)

    在神经网络入门回顾(感知器.多层感知器)中整理了关于感知器和多层感知器的理论,这里实现关于与门.与非门.或门.异或门的代码,以便对感知器有更好的感觉. 此外,我们使用 pytest 框架进行测试. p ...

  7. python实现二分类_感知器做二分类的原理及python numpy实现

    本文目录: 1. 感知器 2. 感知器的训练法则 3. 梯度下降和delta法则 4. python实现 1. 感知器[1] 人工神经网络以感知器(perceptron)为基础.感知器以一个实数值向量 ...

  8. 单层感知器python_多层感知器背后的概念及Python实现

    机器学习正在成为数据科学中最具革命性的技术之一,它允许我们发现特征之间的非线性关系,并使用它来预测新的样本.机器学习中最简单的体例之一是多层感知器.在本文中,我将讨论多层感知器背后的概念,并向您展示如 ...

  9. 用Python实现多层感知器神经网络

    作者|Vivek Patel 编译|Flin 来源|towardsdatascience 除非你能学习到一些东西,否则不要重复造轮子. 强大的库已经存在了,如:TensorFlow,PyTorch,K ...

最新文章

  1. 七、DNS报文及抓包分析
  2. swoole TCP UDP server
  3. 关于开发自我训练课程
  4. 零基础学Python(第八章 for循环·超重点,本章会有几个简单的单层循环练习,后续会有针对算法的单独章节)
  5. 月圆花美 中秋快乐!
  6. 搜狐视频开放平台的申请使用方法
  7. Qt笔记-profile中基本配置(获取环境变量、设置生成路径、包含文件)
  8. 12) 十分钟学会android--APP通信传递消息之简单数据传输
  9. python虚函数_Python进阶话题杂谈(十三)纯虚函数与抽象基类
  10. huffman编码——原理与实现
  11. 2008年下半年软考在即 51CTO将实时提供试题和参考答案
  12. Visual Studio2013配置安装Opencv2.4.9详细过程
  13. 7. 锁定框架(The Locking Framework)
  14. 50个技巧提高你的PHP网站程序执行效率
  15. 一加手机怎么root权限_一加手机怎么解除root权限
  16. 微博运营的5个经典案例
  17. UnicodeEncodeError: ‘charmap‘ codec can‘t encode characters in position 0-1: character maps to <unde
  18. Spring retry重试框架
  19. 兄弟1218无线打印服务器错误,兄弟无线打印机无法打印怎么办?
  20. 陀螺财经研究院郭润华:2019年将迎来区块链真正成熟的井喷时代

热门文章

  1. 从0带您打造企业级 Vue 服务器渲染 Nuxt.js (一) 入门
  2. 驾驶证学法减分助手小程序源码(带搭建视频教程)
  3. 总结归纳erf与erfc
  4. 创建主键报错:Incorrect column specifier for column ‘id‘
  5. 做好PMC管理三大工作,轻松搞定生产计划与物料控制
  6. 河北赛区|数学建模国赛河北赛区成绩发布
  7. 微信小程序 宠物社区源码
  8. 《72个促成交易的经典技巧:…
  9. (简单)华为P20 EML-AL00的USB调试模式在哪里打开的步骤
  10. 洛谷P1200你的飞船在这