keras搭建简单模型训练预测评价

#coding=utf8
import numpy as np
# 有点像torch里面的sequential,构建模型的
from keras.models import Sequential
# 模型中的层
from keras.layers import Dense, Activation
# 优化器
from keras.optimizers import SGD

def main():
    from sklearn.datasets import load_iris
    iris = load_iris()
    # 对于分类是需要将标签变成one-hot编码
    print(iris['target'])
    # 标签化操作,适合于分类任务
    from sklearn.preprocessing import LabelBinarizer
    print(LabelBinarizer().fit_transform(iris['target']))
    # sklearn数据集分割
    from sklearn.cross_validation import train_test_split
    train_data, test_data, train_target, test_target = train_test_split(iris.data, iris.target, test_size=0.2)
    # 执行one-hot的转换
    labels_train = LabelBinarizer().fit_transform(train_target)
    label_test = LabelBinarizer().fit_transform(test_target)

    # 定义模型
    model = Sequential(
        [
            Dense(5, input_dim=4),
            Activation('relu'),
            # 输出3个神经元
            Dense(3),
            Activation("sigmoid"),
        ]
    )

    # 或者这样定义也可以的
    model = Sequential()
    model.add(Dense(5, input_dim=4))
    (.....)
    sgd = SGD(lr=0.01, decay=1e-6,momentum=0.9, nesterov=True)
    model.compile(optimizer=sgd, loss="catagorical_crossentropy")
    # 训练
    model.fit(train_data, labels_train, nb_epoch=200,batch_size=40)
    # 根据测试数据测试输出结果
    print(model.predict_classes(test_data))
    # 肯定也有计算准确率的结果
    """
    计算类的准确率、召回率、f1指数、support等
    """
    from sklearn.metrics import classification_report   # 将评价指标生成报表的形式
    import numpy as np
    y_pred = model.predict_classes(test_data)
    # 将one-hot编码变成具体的类标---000-0  001-1 ....得到的是最大索引即类标
    label_test = np.argmax(label_test, axis=1)
    # 打印评价指标的报表。。。类别索引、准确率、召回率、f1指数、support(相当于置信度的东西)
    print(classification_report(label_test, y_pred))

    # 模型保存,保存.h5文件
    model.save_weights("./xx.h5")
    # 模型加载, 加载.h5文件
    model.load_weights("./xx.h5")

简单的一个流程--------欢迎批评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值