AI学习之 Hello World : 识别鸢尾花(Iris)【深度学习】

 

# 导入库
import seaborn as sns  # 绘图
import numpy as np     # 数值运算
# 机器学习: sklearn
from sklearn.model_selection import train_test_split
# 深度学习:tf.keras
from tensorflow.keras.models import Sequential 
from tensorflow.keras.layers import Dense, Activation  # 构建模型的层和激活方法
from tensorflow.keras import utils  # 数据处理的辅助工具

1 数据处理

# 使用 Seaborn 库加载经典的鸢尾花(Iris)数据集,并将其存储在变量 iris 中
iris = sns.load_dataset('iris')
# 特征值 和 目标值
x = iris.values[:,:4]
y = iris.values[:,4]
# 数据集划分: 训练数据和测试数据
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size=0.5,random_state=0)

2 深度学习 tensorflow.keras 训练鸢尾花

热编码

# 热编码函数
def one_hot_encode(arr):
    uniques,ids = np.unique(arr,return_inverse=True)
    return utils.to_categorical(ids,len(uniques))
# 对目标值进行编码
train_y_ohe = one_hot_encode(train_y)
test_y_ohe = one_hot_encode(test_y)

模型构建

model = Sequential([
    # 隐藏层 4个特征
    Dense(10,activation="relu",input_shape=(4,)),
    # 隐藏层
    Dense(10,activation="relu"),  # ReLU 激活函数
    # 输出层 3个类别 
    Dense(3,activation="softmax") # softmax 激活函数
])

模型编译

# 模型编译
model.compile(optimizer="adam",loss="categorical_crossentropy",metrics=["accuracy"])

模型预测与评估

# 数据类型转换
train_x = np.array(train_x,dtype=np.float32)
test_x = np.array(test_x,dtype=np.float32)
# 模型训练
model.fit(train_x,train_y_ohe,epochs=10,batch_size=1,verbose=100000)
# 模型评估
loss,accuracy=model.evaluate(test_x,test_y_ohe,verbose=5)

 

 
posted @ 2025-04-08 09:32  Peter.Jones  阅读(33)  评论(0)    收藏  举报