使用程序设计流程图解析并建立神经网络(不依赖深度学习library)

news/2024/5/19 1:08:08 标签: 深度学习, 流程图, 神经网络, python, 机器学习

介绍: 

## Flow chart for a simple neural network:

#(1)Take inputs 输入
#(2)Add bias (if required)
#(3)Assign random weights to input features 随机一个权重
#(4)Run the code for training. 训练集训练
#(5)Find the error in prediction. 找预测损失
#(6)Update the weight by gradient descent algorithm. 根据梯度下降更新权重
#(7)Repeat the training phase with updated weights. 重复训练更新权重
#(8)Make predictions. 做预测

 

参考: 深度学习使用python建立最简单的神经元neuron-CSDN博客

 数据:

python"># Import the required libraries
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

# Load the data
df = pd.read_csv('Lesson44-data.csv') 
df

一、

python"># Separate the features and label
x = df[['Glucose','BloodPressure']]#特征值
y = df['Outcome']#标签

三、

python">np.random.seed(10)#初始化
label = y.values.reshape(y.shape[0],1)
weights = np.random.rand(2,1)#随机一个权重
bias = np.random.rand(1)
learning_rate = 0.0000004#梯度下降步长
epochs = 1000 #迭代次数

四~七、

python"># Define the sigmoid function
def sigmoid(input):    
    output = 1 / (1 + np.exp(-input))
    return output



# Define the sigmoid derivative function基于sigmoid导数
def sigmoid_derivative(input):
    return sigmoid(input) * (1.0 - sigmoid(input))




def train_network(x,y,weights,bias,learning_rate,epochs):  #Epochs. 来回 One Epoch is when an ENTIRE dataset is passed forward and backward through the neural network only ONCE.
    j=0                                                    #weights 权重
    k=[]                                                   #learning_rate梯度下降的步长
    l=[]
    for epoch in range(epochs):       
        dot_prod = np.dot(x, weights) + bias#np.dot矩阵乘积
        # using sigmoid
        preds = sigmoid(dot_prod)
        # Calculating the error
        errors = preds - y  #计算错误,预测-实际
        # sigmoid derivative
        deriva_preds = sigmoid_derivative(preds)
        deriva_product = errors * deriva_preds
        #update the weights
        weights = weights -  np.dot(x.T, deriva_product) * learning_rate
        loss = errors.sum()
        j=j+1
        k.append(j)
        l.append(loss)
        print(j,loss)
    for i in deriva_product:
        bias = bias -  i * learning_rate
    plt.plot(k,l)
    return weights,bias

weights_final, bias_final = train_network(x,label,weights,bias,learning_rate,epochs)

八、

python">weights_final
'''结果:
array([[ 0.06189634],
       [-0.12595182]])
'''

bias_final
#结果:array([0.633647])

# Prediction
inputs = [[101,76]]
dot_prod = np.dot(inputs, weights_final) + bias_final
preds = sigmoid(dot_prod) >= 1/2
preds
#结果:array([[False]])

inputs = [[137,40]]
dot_prod = np.dot(inputs, weights_final) + bias_final
preds = sigmoid(dot_prod) >= 1/2
preds
#结果:array([[ True]])

 


http://www.niftyadmin.cn/n/5352346.html

相关文章

QA-GNN: 使用语言模型和知识图谱的推理问答

Abstract 使用预训练语言模型(LMs)和知识图谱(KGs)的知识回答问题的问题涉及两个挑战:在给定的问答上下文(问题和答案选择)中,方法需要(i)从大型知识图谱中识…

为什么网页打开慢?是服务器的问题吗?

当我们遇到网页加载缓慢时,首先想到的可能是服务器的问题。的确,服务器是影响网页加载速度的一个重要因素。然而,这并非是唯一的原因。实际上,网页加载速度受多种因素影响,包括但不限于服务器、网络带宽、DNS解析时间、…

纳斯达克户外大屏背景配什么颜色效果最好-大舍传媒

纳斯达克户外大屏背景配什么颜色效果最好 引言 纳斯达克是全球最大的电子证券交易市场之一,其户外大屏作为纳斯达克的重要宣传媒介,背景色的选择对于展示效果至关重要。在这篇文章中,我们将探讨纳斯达克户外大屏背景配什么颜色效果最好。 …

快速掌握PHP:用这个网站,让学习变得简单有趣!

介绍:PHP是一种广泛使用的开源服务器端脚本语言,特别适合Web开发。 PHP,全称为Hypertext Preprocessor,即超文本预处理器,是一种嵌入在HTML中的服务器端脚本语言。它主要用于管理动态内容和数据库交互,使得…

HOT100-438. 找到字符串中所有字母异位词

438. 找到字符串中所有字母异位词https://leetcode.cn/problems/find-all-anagrams-in-a-string/ 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&a…

零基础学编程,中文编程入门视频教程

零基础学编程,中文编程入门视频教程 一、前言 编程入门视频教程链接 https://edu.csdn.net/course/detail/39036 编程工具及实例源码文件下载可以点击最下方官网卡片——软件下载——常用工具下载——编程工具免费版下载及实例源码下载。 如上图为编程工具构件…

【计算机网络】IP协议及动态路由算法

对应代码包传送门 IP协议及动态路由算法代码包及思科模拟器资料说明 相关文章 【计算机网络】中小型校园网构建与配置 【计算机网络】Socket通信编程与传输协议分析 【计算机网络】网络应用通信基本原理 目的: 1、掌握IP协议,IP分片,DH…

基于深度学习的多目标跟踪算法

基于深度学习的多目标跟踪(MOT,Multi-Object Tracking)算法在近年来取得了显著的进步。这些算法主要利用深度学习模型对视频中的多个目标进行检测和跟踪。 在介绍一些常见的深度学习多目标跟踪算法之前,我们首先了解一下其基本概念和挑战: 目标检测:首先识别视频帧中的目…