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)