在Tensorflow框架下实现鸢尾花分类
时间: 2024-05-15 16:12:39 浏览: 37
好的,以下是在 TensorFlow 框架下实现鸢尾花分类的示例代码:
```python
import tensorflow as tf
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载鸢尾花数据集
iris = load_iris()
X, y = iris.data, iris.target
# 将标签进行独热编码
y = tf.keras.utils.to_categorical(y)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 构建模型
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(4,)),
tf.keras.layers.Dense(3, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, epochs=50, batch_size=8, validation_split=0.1)
# 评估模型
test_loss, test_acc = model.evaluate(X_test, y_test)
print('Test accuracy:', test_acc)
```
在上面的代码中,我们首先加载鸢尾花数据集,然后将标签进行独热编码。接着,我们使用 `train_test_split` 函数将数据集划分为训练集和测试集。然后,我们构建一个简单的全连接神经网络模型,其中包含一个输入层和一个输出层。我们使用 `Sequential` 类来组织模型的结构,并使用 `Dense` 层来定义神经网络层。在最后一层,我们使用 `softmax` 激活函数来输出每个类别的概率分布。在编译模型时,我们指定了优化器、损失函数和评估指标。然后,我们使用 `fit` 函数来训练模型,并在训练过程中使用了验证集。最后,我们使用 `evaluate` 函数来评估模型在测试集上的性能。
阅读全文