zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    [原]RHCS集群的服务切换测试札记
    [原]从Clustering Factor说起
    命令行下设置IP地址的方法
    [原]SQL Server 2005 链接服务器使用一例
    [原]Oracle删除大表并回收空间的过程
    [转]从沙子到芯片:且看处理器是怎样炼成的
    [原] 在域环境中打开SSMS非常慢
    [原]将特定格式的string转换为DateTime
    [原] 在域环境中打开SSMS非常慢 续
    [转]Linux 下判断Server 内存是否不足
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/10802212.html
Copyright © 2011-2022 走看看