一、

1、感知机可以描述为一个线性方程,用python的伪代码可表示为:

sum(weight_i * x_i) + bias -> activation  #activation表示激活函数,x_i和weight_i是分别为与当前神经元连接的其它神经元的输入以及连接的权重。bias表示当前神经元的输出阀值(或称偏置)。箭头(->)左边的数据,就是激活函数的输入

2、定义激活函数f:

def func_activator(input_value):

return 1.0 if input_value >= 0.0 else 0.0

二、感知机的构建

class Perceptron(object):

  def __init__(self, input_para_num, acti_func):

    self.activator = acti_func

    self.weights = [0.0 for _ in range(input_para_num)]

  def __str__(self):

    return 'final weights\n\tw0 = {:.2f}\n\tw1 = {:.2f}\n\tw2 = {:.2f}' \

      .format(self.weights[0],self.weights[1],self.weights[2])

  def predict(self, row_vec):

    act_values = 0.0

    for i in range(len(self.weights)):

      act_values += self.weights [ i ] * row_vec [ i ]

    return self.activator(act_values)

  def train(self, dataset, iteration, rate):

    for i in range(iteration):

      for input_vec_label in dataset:

        prediction = self.predict(input_vec_label)

        self._update_weights(input_vec_label,prediction, rate)

  def _update_weights(self, input_vec_label, prediction, rate):

    delta = input_vec_label[-1] - prediction

    for i in range(len(self.weights):

      self.weights[ i ] += rate * delta * input_vec_label[ i ]

def func_activator(input_value):
return 1.0 if input_value >= 0.0 else 0.0

def get_training_dataset():
dataset = [[-1, 1, 1, 1], [-1, 0, 0, 0], [-1, 1, 0, 0], [-1, 0, 1, 0]]
return dataset

def train_and_perceptron():
p = Perceptron(3, func_activator)
dataset = get_training_dataset()
return p

if __name__ == '__main__':
and_prerception = train_and_perceptron
print(and_prerception)
print('1 and 1 = %d' % and_perception.predict([-1, 1, 1]))
print('0 and 0 = %d' % and_perception.predict([-1, 1, 1]))
print('1 and 0 = %d' % and_perception.predict([-1, 1, 1]))
print('0 and 1 = %d' % and_perception.predict([-1, 1, 1]))

基于python的感知机的更多相关文章

  1. 深度学习基础-基于Numpy的感知机Perception构建和训练

    1. 感知机模型   感知机Perception是一个线性的分类器,其只适用于线性可分的数据.          f(x) = sign(w.x + b) 其试图在所有线性可分超平面构成的假设空间中找 ...

  2. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

  3. 基于Python+Django的Kubernetes集群管理平台

    ➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...

  4. 关于《selenium2自动测试实战--基于Python语言》

    关于本书的类型: 首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”. 对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位.高手读了会深有体会,豁然开朗.新手读了不止所云,甚至 ...

  5. psutil一个基于python的跨平台系统信息跟踪模块

    受益于这个模块的帮助,在这里我推荐一手. https://pythonhosted.org/psutil/#processes psutil是一个基于python的跨平台系统信息监视模块.在pytho ...

  6. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  7. 搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台

    搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台 By 子敬叔叔 最近在学习麦好的<机器学习实践指南案例应用解析第二版>,在安装学习环境的时候 ...

  8. 《Selenium2自动化测试实战--基于Python语言》 --即将面市

    发展历程: <selenium_webdriver(python)第一版>   将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...

  9. 从Theano到Lasagne:基于Python的深度学习的框架和库

    从Theano到Lasagne:基于Python的深度学习的框架和库 摘要:最近,深度神经网络以“Deep Dreams”形式在网站中如雨后春笋般出现,或是像谷歌研究原创论文中描述的那样:Incept ...

随机推荐

  1. The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力)

    The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力) 传送门:https://nanti.jisuanke.com/ ...

  2. CITRIX VPX安装

    Step 1:下载.ova格式的VPX,如下图: Step 2:初始化VPX,如下图: 本例设置NSIP为192.168.188.150/24 Step 3:打开浏览器http://192.168.1 ...

  3. Team Foundation Server 2015使用教程【10】:团队项目删除

  4. Sybase commands

    (1)update table statistics $table name if we change index info for a table ,such as create or drop i ...

  5. 曹工说Spring Boot源码(6)-- Spring怎么从xml文件里解析bean的

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  6. TCP&IP基础概念复习

    第一章概述 NII(National Information Infrastructure):国家信息基础设施 GII(Global Information Infrastructure):全球信息基 ...

  7. Helm Chart 一键部署 Jenkins

    Jenkins Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.目前提供超过1000个插件来支持构建.部署.自动化, 满足任何项目的需要. Jenki ...

  8. uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件

    插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件, ...

  9. 从头学pytorch(十二):模型保存和加载

    模型读取和存储 总结下来,就是几个函数 torch.load()/torch.save() 通过python的pickle完成序列化与反序列化.完成内存<-->磁盘转换. Module.s ...

  10. 【Spring Cloud 源码解读】之 【如何配置好OpenFeign的各种超时时间!】

    关于Feign的超时详解: 在Spring Cloud微服务架构中,大部分公司都是利用Open Feign进行服务间的调用,而比较简单的业务使用默认配置是不会有多大问题的,但是如果是业务比较复杂,服务 ...