基于神经网络的分类(鸢尾花数据集)的续写 要求: 1 数据用鸢尾花数据集(所有样本的四个特征,三个类别) 2 输出标签(one hot vector) 3 构建模型时输出端映射到0.1之间 4 修改损失函数为交叉熵函数 from sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target print(X[:5]) print(y[:5]) from sklearn.preprocessing import OneHotEncoder encoder = OneHotEncoder() y_one_hot = encoder.fit_transform(y.reshape(-1, 1)).toarray() print(y_one_hot[:5])
时间: 2024-01-24 08:18:09 浏览: 81
import tensorflow as tf
from tensorflow import keras
from sklearn.datasets import load_iris
from sklearn.preprocessing import OneHotEncoder
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 将标签进行 one-hot 编码
encoder = OneHotEncoder()
y_one_hot = encoder.fit_transform(y.reshape(-1, 1)).toarray()
# 构建模型
model = keras.Sequential([
keras.layers.Dense(16, activation='relu', input_shape=(4,)),
keras.layers.Dense(3, activation='softmax')
])
# 修改损失函数为交叉熵函数
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(X, y_one_hot, epochs=50, batch_size=16)
# 预测新数据
new_data = [[5.1, 3.5, 1.4, 0.2], [7.7, 3.0, 6.1, 2.3]]
predictions = model.predict(new_data)
print(predictions)
阅读全文