如何在notebook里面训练一个BP神经网络用于实现鸢尾花的准确分类,给出完整代码
时间: 2025-06-26 10:15:07 浏览: 10
### BP神经网络实现鸢尾花数据集分类
以下是利用BP(Back Propagation)神经网络对鸢尾花数据集进行分类的完整代码示例,适用于Jupyter Notebook环境:
#### 导入必要的库
首先需要加载所需的Python库来处理数据并构建模型。
```python
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, LabelEncoder
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import to_categorical
```
#### 加载和预处理数据
使用Pandas读取鸢尾花数据集,并对其进行标准化处理以及独热编码转换。
```python
# 假设数据存储路径为 'D:\My_download\Python_data\iris_training.csv'
path = r'D:\My_download\Python_data\iris_training.csv' # 替换为你实际的数据文件路径
data = pd.read_csv(path)
# 查看前几行数据以确认结构
print(data.head())
# 提取特征列 (假设 SL=Sepal Length, SW=Sepal Width, PL=Petal Length, PW=Petal Width)
X = data[['SL', 'SW', 'PL', 'PW']].values
# 对目标变量(Species)进行标签编码及独热编码
y_labels = data['SPE'].values # SPE代表物种类别
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(y_labels)
y_one_hot = to_categorical(integer_encoded)
# 将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y_one_hot, test_size=0.2, random_state=42)
# 特征缩放至均值为0,方差为1的标准正态分布
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
```
#### 构建BP神经网络模型
定义一个多层感知机架构作为BP神经网络的基础框架。
```python
model = Sequential()
# 输入层到隐藏层
model.add(Dense(units=8, activation='relu', input_shape=(4,)))
# 添加额外的隐藏层
model.add(Dense(units=6, activation='relu'))
# 输出层采用softmax激活函数用于多分类问题
model.add(Dense(units=3, activation='softmax'))
```
#### 编译与训练模型
配置优化器、损失函数以及其他参数后启动训练过程。
```python
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
history = model.fit(X_train_scaled, y_train, epochs=50, batch_size=10, validation_split=0.2)
```
#### 测试模型性能
评估模型在未见过的数据上的表现情况。
```python
loss, accuracy = model.evaluate(X_test_scaled, y_test)
print(f'Test Loss: {loss}')
print(f'Test Accuracy: {accuracy}')
```
以上即是在Jupyter Notebook环境下完成的一个针对鸢尾花数据集分类任务的BP神经网络完整流程[^1]。
### 注意事项
- 数据路径需依据个人电脑实际情况调整。
- 如果遇到任何安装包缺失的情况,请确保已正确安装对应版本的`keras`, `tensorflow`等相关依赖项。
阅读全文
相关推荐

















