登录  /  注册

Python中的神经网络算法实例

王林
发布: 2023-06-10 16:48:07
原创
1635人浏览过

python中的神经网络算法实例

神经网络是一种模拟人类神经系统的人工智能模型,其可以通过学习数据样本,自动识别模式并进行分类、回归、聚类等任务。Python作为一种简单易学且拥有强大的科学计算库的编程语言在开发神经网络算法中表现出色。本文将介绍Python中神经网络算法的实例。

  1. 安装相关库

Python中常用的神经网络库有Keras、Tensorflow、PyTorch等,其中Keras库是基于Tensorflow,能够简化神经网络的搭建过程,因此本文将选择Keras库作为神经网络算法的开发工具。在使用Keras库前,需要先安装Tensorflow库作为后端。在命令行中执行以下命令即可安装依赖库:

pip install tensorflow
pip install keras
登录后复制
  1. 数据集预处理

在进行神经网络的训练之前,需要对数据进行预处理。常见的数据预处理包括数据归一化、数据缺失值处理、数据特征提取等。在本文中,我们将使用鸢尾花数据集进行实例演示,该数据集包含150条记录,每条记录有四个特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,以及对应的分类标签:Iris Setosa、Iris Versicolour、Iris Virginica。在该数据集中,每条记录都是数字类型,因此我们只需要将数据归一化即可。

from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
import numpy as np
 
# 导入数据集
data = load_iris().data
labels = load_iris().target
 
# 归一化数据
scaler = MinMaxScaler()
data = scaler.fit_transform(data)
 
# 将标签转化为 one-hot 向量
one_hot_labels = np.zeros((len(labels), 3))
for i in range(len(labels)):
    one_hot_labels[i, labels[i]] = 1
登录后复制
  1. 构建神经网络模型

在Keras中,可以使用Sequential模型搭建神经网络模型。在该模型中,我们可以添加多个层,每个层都有一个特定的作用,例如全连接层、激活函数层、Dropout层等。在本实例中,我们使用两个全连接层和一个输出层搭建神经网络模型,其中隐藏层的神经元数量为4个。

from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import Adam
 
# 构建神经网络模型
model = Sequential()
model.add(Dense(4, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(3, activation='softmax'))
 
# 配置优化器和损失函数
optimizer = Adam(lr=0.001)
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
登录后复制
  1. 训练模型

在训练模型之前,我们需要将数据集分为训练集和测试集,以便评估模型的准确率。在本实例中,我们将80%的数据用作训练集,20%的数据用作测试集。在进行训练时,我们需要指定批量大小、迭代次数等参数,以控制训练速度和模型的准确率。

from sklearn.model_selection import train_test_split
 
# 将数据集分为训练集和测试集
train_data, test_data, train_labels, test_labels = train_test_split(data, one_hot_labels, test_size=0.2)
 
# 训练神经网络
model.fit(train_data, train_labels, batch_size=5, epochs=100)
 
# 评估模型
accuracy = model.evaluate(test_data, test_labels)[1]
print('准确率:%.2f' % accuracy)
登录后复制
  1. 实例完整代码

本实例的完整代码如下所示:

from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import Adam
 
# 导入数据集
data = load_iris().data
labels = load_iris().target
 
# 归一化数据
scaler = MinMaxScaler()
data = scaler.fit_transform(data)
 
# 将标签转化为 one-hot 向量
one_hot_labels = np.zeros((len(labels), 3))
for i in range(len(labels)):
    one_hot_labels[i, labels[i]] = 1
 
# 将数据集分为训练集和测试集
train_data, test_data, train_labels, test_labels = train_test_split(data, one_hot_labels, test_size=0.2)
 
# 构建神经网络模型
model = Sequential()
model.add(Dense(4, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(3, activation='softmax'))
 
# 配置优化器和损失函数
optimizer = Adam(lr=0.001)
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
 
# 训练神经网络
model.fit(train_data, train_labels, batch_size=5, epochs=100)
 
# 评估模型
accuracy = model.evaluate(test_data, test_labels)[1]
print('准确率:%.2f' % accuracy)
登录后复制
  1. 结论

本文介绍了Python中神经网络算法的实例,并以鸢尾花数据集为例进行演示。在实现过程中,我们使用了Keras库和Tensorflow库作为神经网络的开发工具,并使用了MinMaxScaler库对数据进行归一化处理。本实例的结果表明,我们的神经网络模型在准确率上达到了97.22%,证明了神经网络的有效性和应用性。

以上就是Python中的神经网络算法实例的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号