lstm模型鸢尾花分类代码
时间: 2023-11-09 11:56:06 浏览: 141
这里提供一个使用LSTM模型对鸢尾花数据集进行分类的Python代码示例:
```python
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout
from keras.utils import to_categorical
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 将标签进行one-hot编码
y = to_categorical(y)
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 构建LSTM模型
model = Sequential()
model.add(LSTM(32, input_shape=(X_train.shape[1], 1)))
model.add(Dropout(0.5))
model.add(Dense(3, activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 将输入数据转换为LSTM所需的格式
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))
# 训练模型
model.fit(X_train, y_train, epochs=20, batch_size=16, validation_data=(X_test, y_test))
# 在测试集上评估模型
score = model.evaluate(X_test, y_test)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
```
在这个代码示例中,我们首先加载了鸢尾花数据集,并使用`train_test_split`函数将其分为训练集和测试集。然后,我们构建了一个包含一个LSTM层和一个全连接层的模型,并将其编译。接着,我们将输入数据转换为LSTM所需的格式,即将每个数据样本转换为一个时间序列,其中每个时间步表示数据样本的一个特征。最后,我们使用训练集对模型进行训练,并在测试集上评估模型的性能。
阅读全文