人工智能
2022/3/19 23:27:54
本文主要是介绍人工智能,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import math import pandas as pd import numpy as np import matplotlib.pyplot as plt data_tr = pd.read_csv('3.3 data_tr.txt') # 训练集样本 data_te = pd.read_csv('3.3 data_te.txt') # 测试集样本 n = len(data_tr) yita = 0.1 # 学习率 out_in = np.array([0.0, 0, 0, 0, -1]) # 输出层的输入,即隐层的输出 w_mid = np.zeros([3,4]) # 隐层神经元的权值&阈值 w_out = np.zeros([5]) # 输出层神经元的权值阈值 delta_w_out = np.zeros([5]) # 输出层权值、阈值的修正量 delta_w_mid = np.zeros([3,4]) # 中间层权值、阈值的修正量 Err = [] def set_chinese(): # 设置字体 import matplotlib matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams['axes.unicode_minus'] = False def sigmoid(x): # 激活函数 return 1/(1+math.exp(-x)) for j in range(500): error = [] for it in range(n): net_in = np.array([data_tr.iloc[it, 0], data_tr.iloc[it, 1], -1]) # 网络输入 real = data_tr.iloc[it, 2] for i in range(4): out_in[i] = sigmoid(sum(net_in * w_mid[:, i])) # 从输入到隐层的传输过程 res = sigmoid(sum(out_in * w_out)) # 模型预测值 error.append(abs(real-res))#误差 delta_w_out = yita*res*(1-res)*(real-res)*out_in # 输出层权值的修正量 delta_w_out[4] = -yita*res*(1-res)*(real-res) # 输出层阈值的修正量 w_out = w_out + delta_w_out # 更新,加上修正量 for i in range(4): delta_w_mid[:, i] = yita*out_in[i]*(1-out_in[i])*w_out[i]*res*(1-res)*(real-res)*net_in # 中间层神经元的权值修正量 delta_w_mid[2, i] = -yita*out_in[i]*(1-out_in[i])*w_out[i]*res*(1-res)*(real-res) # 中间层神经元的阈值修正量,第2行是阈值 w_mid = w_mid + delta_w_mid # 更新,加上修正量 Err.append(np.mean(error)) set_chinese() # 显示中文 fig = plt.figure() plt.plot(Err)#训练集上每一轮的平均误差 plt.title("每次训练平均误差") plt.xlabel("训练次数") plt.ylabel("误差") plt.savefig("每次训练误差.jpg") plt.show() def ceshi():
net_in = np.array([data_te.iloc[it, 0], data_te.iloc[it, 1], -1]) # 网络输入 for i in range(4): out_in[i] = sigmoid(sum(net_in * w_mid[:, i])) # 从输入到隐层的传输过程 res = sigmoid(sum(out_in * w_out)) # 模型预测值 return res if __name__ == '__main__': for it in range(len(data_te)): print('第', it + 1, '个测试值:', ceshi(),"真实值",data_te.iloc[it,2])
这篇关于人工智能的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15Tailwind开发入门教程:从零开始搭建第一个项目
- 2024-11-14Emotion教程:新手入门必备指南
- 2024-11-14音频生成的秘密武器:扩散模型在音乐创作中的应用
- 2024-11-14从数据科学家到AI开发者:2023年构建生成式AI网站应用的经验谈
- 2024-11-14基于AI的智能调试助手创业点子:用代码样例打造你的调试神器!
- 2024-11-14受控组件学习:从入门到初步掌握
- 2024-11-14Emotion学习入门指南
- 2024-11-14Emotion学习入门指南
- 2024-11-14获取参数学习:初学者指南
- 2024-11-14受控组件学习:从入门到实践