python神经网络之实现双层感知器和神经网络感知器算法将鸢尾分类

简介: python神经网络之实现双层感知器和神经网络感知器算法将鸢尾分类

1.问题描述:实现一个简单的只有输入层和输出层的前馈神经网络,输入数据与输出数据有下面的对应关系


[0,0,1]->0


[0,1,1]->1


[1,0,1]->0


[1,1,1]->1


从数据可以看出 输入层只有三个神经元 输出层只有一个神经元


由下图可以看出 随着训练次数的增加 误差在逐渐减小并收敛

1666431460191.jpg

代码如下

import  numpy as np
def sigmoid(x):
    return (1/(1+np.exp(-x)))
def dsigmoid(y):
    return  y*(1-y)
x=np.array([[0,0,1],
           [0,1,1],
           [1,0,1],
           [1,1,1]])
y=np.array([0,1,0,1]).T
w0=np.random.random((3,4))
print(w0)
b0=0.5
lrate=0.3
for epochs in range(20):
    inx=x
    outy=sigmoid(np.dot(inx,w0)+b0)
    w0+=lrate*np.dot(inx.T,2*(y-outy)*dsigmoid(outy))
    b0+=lrate*2*(y-outy)*dsigmoid(outy)
    err=(y-outy)*(y-outy)
    print("epochs=",epochs+1,"error is",err.T)


2:使用神经网络感知器算法进行鸢尾花分类


问题描述:定义一个神经网络算法 对鸢尾花进行分类,使用iris数据集中的花瓣长度和花萼长度两个特征


要求:构造神经网络类,学习率为0.2,初始权重和截距为0,利用误差反向传播算法,对权重和截距进行更新


可视化和结果如下

1666431526076.jpg

1666431537934.jpg


输出结果显示 算法迭代四次以后,得到一个比较稳定的权重参数[1.4,-3.68]这个权重参数保持不变一直到第十次迭代  同样大家可以修改学习率和迭代次数来观察结果变化


代码如下

import  numpy as np
import  pandas as pd
import  matplotlib.pyplot as plt
class ANNnet(object):
    def __init__(self,lrate=0.2,epochs=10):
        self.lrate=lrate
        self.epochs=epochs
    def train(self,x,y):
        self.weight=np.zeros(x.shape[1])
        print('initial weight',self.weight)
        self.b=0
        for i in range(self.epochs):
            for x,y in zip(x,y):
                delta=self.lrate*(y-self.predict(x))
                self.weight[:]+=delta*x
                self.b+=delta
            print('weight after',i+1,'epochs',self.weight)
    def net_input(self,x):
        return x
    def predict(self,x):
        y=np.dot(x,self.weight[:])+self.b
        return  np.where(y>=0,1,-1)
print('step1 加载数据')
df=pd.read_csv(r'iris.csv',header=None)
print('step 2 可视化')
y=df.loc[0:,4].values
y=np.where(y=='setosa',1,-1)
x=df.iloc[0:,[0,2]].values
plt.scatter(x[:50,0],x[:50,1],color="red",marker='o',label='Setosa')
plt.scatter(x[50:,0],x[50:,1],color="blue",marker='o',label='Vresicolor or Virginica')
plt.xlabel("petal length")
plt.ylabel("sepal length")
plt.legend(loc='upper left')
plt.show()
print('step3 构建神经网络')
pr=ANNnet()
print('step4:fitting')
pr.train(x,y)
print('step5 predicting')
print('iris1 result',pr.predict([5.1,1.4]))
print('iris2 result',pr.predict([7,4.7]))
print('iris3 result',pr.predict([5.9,5.1]))
相关文章
|
2天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
15 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
2天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
11 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
9 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
6天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
21 3
|
6天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
23 2
|
18天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
61 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
2天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
1天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。
|
1天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。
|
1天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术以及安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和建议来保护个人信息和设备安全。