『python学习』keras库学习

1、Keras的核心数据结构是“模型”,模型是一种组织网络层的方式。Keras中主要的模型是Sequential模型,Sequential是一系列网络层按顺序构成的栈

from keras.models import Sequential

model = Sequential()

# coding:utf-8
# 使用神经网络算法预测销量高低

import pandas as pd

# 参数初始化
inputfile = r"C:\learning\DataMining\Book\Python_DataMining\Data\chapter5\demo\data\sales_data.xls"
data = pd.read_excel(inputfile, index_col=u"序号")
print "data: \n", data

# 数据是类别标签,要将它转换为数据
# 用 1 来表示“好”, “是”, “高” 这 3 个属性,用 0 来表示“坏”, “否”, “低”
data[data == u"好"] = 1
data[data == u"是"] = 1
data[data == u"高"] = 1
data[data != 1] = 0
print "data_2: \n", data
print data.dtypes

x = data.iloc[:, : 3].as_matrix().astype(int)    # astype 函数将数据转换为指定类型
print "x: \n", x
print "len_x: ", len(x)
y = data.iloc[:, 3].as_matrix().astype(int)
print "y: \n", y
print "len_y: ", len(y)

from keras.models import Sequential
from keras.layers.core import Dense, Activation

model = Sequential()    # 建立模型
model.add(Dense(input_dim=3, output_dim=10))     # 添加 3 个输入节点, 10 个隐藏节点
model.add(Activation("relu"))    # 用 relu 函数作为激活函数,能够大幅提高准确度

model.add(Dense(output_dim=1))    # 添加一个输出节点
model.add(Activation("sigmoid"))    # 由于是 0-1 输出,用 sigmoid 函数作为激活函数

model.compile(loss="binary_crossentropy", optimizer="adam", class_mode="binary")
# 编译模型。由于我们做的是二元分类,所以我们指定损失函数为 binary_crossentropy, 以及模式为 binary
# 另外常见的损失函数还有 mean_squared_error、categorical_crossentropy 等,请阅读帮助文件
# 求解方法我们指定用 adam, 还有 sgd, rmsprop 等可选

model.fit(x, y, nb_epoch=1000, batch_size=10)    # 训练模型, 学习一千次
yp = model.predict_classes(x).reshape(len(y))    # 分类预测

from cm_plot import *     # 导入自行编写的混淆矩阵可视化函数
cm_plot(y, yp).show()


你可能感兴趣的:(Python学习,数据挖掘)