基于TensorFlow实现LSTM的鸢尾花数据分类
1.数据展示,鸢尾花数据集特征部分主要包含4个特征,和一个标签分类。属于三分类问题。
2. 代码实现
from keras.models import Sequential
from keras.layers import *
import os
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from sklearn import datasets
from sklearn.model_selection import train_test_split
def generate_classification_train_data():
lris_df = datasets.load_iris()
X_data = lris_df.data
y_data = lris_df.target
X_train,X_test,y_train,y_test=train_test_split(X_data,y_data,test_size=0.2)
x_train = np.array(X_train)
x_test = np.array(X_test)
y_train = np.array(y_train)
y_test = np.array(y_test)
return x_train, y_train, x_test, y_test
class SequeClassifier():
def __init__(self, units):
self.units = units
self.model = None
def build_model(self, loss, optimizer, metrics):
self.model = Sequential()
self.model.add(LSTM(self.units, return_sequences=True))
self.model.add(LSTM(self.units))
self.model.add(Dense(3, activation='softmax'))
self.model.compile(loss=loss,
optimizer=optimizer,
metrics=metrics)
if __name__ == "__main__":
x_train, y_train, x_test, y_test = generate_classification_train_data()
x_train = x_train[:, :, np.newaxis]
x_test = x_test[:, :, np.newaxis]
units = 128
loss = "sparse_categorical_crossentropy"
optimizer = "adam"
metrics = ['accuracy']
sclstm = SequeClassifier(units)
sclstm.build_model(loss, optimizer, metrics)
epochs = 100
batch_size = 64
sclstm.model.fit(x_train, y_train, epochs=epochs, batch_size=batch_size)
score = sclstm.model.evaluate(x_test, y_test, batch_size=16)
print("model score:", score)
dirs = "model"
if not os.path.exists(dirs):
os.makedirs(dirs)
print("正在保存模型......")
sclstm.model.save(dirs+"/classifier_model.h5")
print("模型已保存.save path-->dirs%s"%"/classifier_model.h5")
from keras.models import load_model
read_model = load_model(dirs+"/classifier_model.h5")
out = read_model.predict(x_test)
print("out:%s"%out)
3.预测结果处理:
out = tf.nn.softmax(out)
out = np.array(out)
pre_test = np.argmax(out,axis=1)
pre_test
array([2, 2, 0, 1, 1, 0, 2, 1, 2, 1, 1, 2, 1, 1, 2, 0, 2, 1, 0, 2, 2, 0, 0, 2, 0, 1, 0, 0, 0, 1], dtype=int64)
y_test
array([2, 2, 0, 1, 1, 0, 2, 1, 2, 1, 1, 2, 1, 1, 2, 0, 2, 1, 0, 2, 2, 0, 0, 2, 0, 1, 0, 0, 0, 1])
可以看见预测结果经过softmax处理后,预测的标签分类基本上都是对的。
相关知识
TensorFlow 2建立神经网络分类模型——以iris数据为例
Tensorflow鸢尾花分类(数据加载与特征处理)
TensorFlow学习记录(八)
基于BP神经网络对鸢尾花的分类的研究
TensorFlow入门
Knn算法实现鸢尾花分类
基于LSTM的瓦斯浓度预测与防突预警系统设计
基于tensorflow的花卉识别
Tensorflow训练鸢尾花数据集
机器学习,实现鸢尾花植物种类自动分类(大数据人工智能公司)
网址: 基于TensorFlow实现LSTM的鸢尾花数据分类 https://www.huajiangbk.com/newsview387297.html
上一篇: 机器学习(三)降维之PCA及鸢尾 |
下一篇: 基于Logistic回归模型对鸢 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039