• keras多层感知机MLP


        肯定有人要说什么多层感知机,不就是几个隐藏层连接在一起的吗。话是这么说,但是我觉得我们首先要自己承认自己高级,不然怎么去说服(hu nong)别人呢

    from keras.models import Sequential
    from keras.layers import Dense
    import numpy as np
    #设置随机种子,使得每次结果都是一致的
    np.random.seed(7)
    
    import pandas as pd
    dataFrame = pd.read_csv("E:/数据集/PimaIndians.csv")
    print(dataFrame.head())
    print(dataFrame.keys())
    #导入数据
    #dataset = np.loadtxt("E:/数据集/PimaIndians.csv",delimiter=",")
    #分割输入变量和输出变量
    #选择前8列作为输入,最有一列作为输出
    x = dataFrame.ix[:,list(range(8))]
    y = dataFrame.ix[:,[8]]
    print(x.head())
    print(y.head())
    
    #将其转换成np数组,以输入到keras模型中去
    x = x.values
    y=y.values
    print(type(x),x.shape)
    #创建模型
    model = Sequential()
    #添加几个隐藏层
    model.add(Dense(12,input_dim=8,activation='relu'))
    model.add(Dense(8,activation='relu'))
    model.add(Dense(1,activation='sigmoid'))
    
    #编译模型
    model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
    
    #训练模型
    model.fit(x=x,y=y,epochs=150,batch_size=10,validation_split=0.2)
    #评估模型
    scores=model.evaluate(x=x,y=y)
    print('
    %s:%.2f%%'%(model.metrics_names[1],scores[1]*100))
    View Code

    画几个知识点:

    1、pandans按列切片:

    #分割输入变量和输出变量
    #选择前8列作为输入,最有一列作为输出
    x = dataFrame.ix[:,list(range(8))]
    y = dataFrame.ix[:,[8]]

    2、dataFrame转换成numpy数组

    #将其转换成np数组,以输入到keras模型中去
    x = x.values
    y=y.values

     3、keras自动切分数据集

    #训练模型
    model.fit(x=x,y=y,epochs=150,batch_size=10,validation_split=0.2)
  • 相关阅读:
    网络编程学习小结
    我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
    void及void指针含义的深刻解析
    Android开发之自己定义TabHost文字及背景(源码分享)
    ActionBar自己定义改动无效解决方法
    一位Erlang程序猿的自白
    Xcode 5.1安装插件:规范凝视生成器VVDocumenter
    Socket程序中的Error#10054错误
    CSDN博客清理缓存
    ACM 位运算
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/10802212.html
Copyright © 2020-2023  润新知