Keras深度学习笔记 softmax 多分类

使用鸢尾花数据集。鸢尾花数据集包含四个特征和一个标签。这四个特征确定了单株鸢尾花的下列植物学特征:

  • 花萼长度
  • 花萼宽度
  • 花瓣长度
  • 花瓣宽度

该表确定了鸢尾花品种,品种必须是下列任意一种:

  • 山鸢尾 Iris-Setosa(0)
  • 杂色鸢尾 Iris-versicolor(1)
  • 维吉尼亚鸢尾 Iris-virginica(2)

目标数据做one-hot编码

import keras
from keras import layers
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 读取数据集
data = pd.read_csv('./dataset/iris.csv')
#对预测结果做one-hot编码处理,,然后加入到DataFrame里
data.Species.unique()
data = data.join(pd.get_dummies(data.Species))
del data['Species']
#对数据乱序处理
index = np.random.permutation(len(data))
data = data.iloc[index]
# 提取特征集
x = data[data.columns[1: -3]]
# 提取标签集
y = data.iloc[:, -3:]
model = keras.Sequential()
model.add(layers.Dense(3, input_dim=4, activation='softmax'))
model.compile(optimizer='adam',
              loss='categorical_crossentropy', 
              metrics=['acc']
)      #  目标数据做度热编码,用 categorical_crossentropy 来计算softmax交叉熵
history = model.fit(x, y, epochs=50)

目标数据做顺序编码

data = pd.read_csv('./dataset/iris.csv')

data.Species.unique()

spc_dic = {'setosa': 0, 'versicolor': 1, 'virginica': 2}

data['Species'] = data.Species.map(spc_dic)

x = data[data.columns[1:-1]]
y = data.Species

model = keras.Sequential()
model.add(layers.Dense(3, input_dim=4, activation='softmax'))

model.summary()

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy', 
              metrics=['acc']
)      #  目标数据做顺序编码,用 sparse_categorical_crossentropy 来计算softmax交叉熵

model.fit(x, y, epochs=50)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值