框架为 keras+tensorflow
几个重要过程:
1、下载数据集 load data
2、定义模型 define model
3、编译模型 compile model
4、拟合模型 fit model
5、评估模型 evaluate model
第一步:下载数据集
设置随机种子,可以使得每次实验时的起始都一样,便于对比,也便于debug
第二步: 导入模型(必须包含numpy)
from keras.models import Sequential
from keras.layers import Dense
import numpy
#fit random seed for reproducibility
numpy.random.seed(种子)
第三步:使用numpy的loadtxt()函数导入下载好的数据,将数据分为输入X和输出Y
dataset=numpy.loadtxt('数据集名称',delimiter=",")
#split into input(X) and output(Y)
x=dataset[:,0:8]
y=dataset[:,8] #假定有8列
定义输入层个数,此例中为8个。
定义连接层为全连接 Dense,神经元个数定义为12个(可以根据需要更改)
此例中,定义层数为3层,权重可以选择 “uniform”(权重为0~0.05),也可以选择“normal”,默认服从高斯分布,选定激活函数为
“relu”,为了使输出在0~1之间,令最后一层的激活函数为“sigmoid”。
model=Squential()
model.add(Dense(12,input_dim=8,activation="relu"))
model.add(Dense(8,activation="relu"))
model.add(Dense(1,activation="sigmoid"))
第五步:编译模型
需要后端支持,本例使用的tensorflow,它会根据系统是否有GPU加速而自动选择,没有则选则CPU加速
在该阶段定义损失函数loss,二分类方法可以为“binary_crossentropy”,也可以为其他类型。
优化器optimizer 可以选择 “adam”,也可以选择其他类型。
最后定义分类精度metric ,可以选择“accuracy”
model.compile(loss='binary_crossentropy',optimizer='adam',matric=['accuracy'])
第六步:拟合模型fit
这阶段需要将输入X和输出Y作为参数进行传递,同时需要定义enpochs参数,本例中选择150,batch_size10
model.fit(x,y,epochs=150,batch_size=10)
第七步:评估模型evaluate
训练完模型之后,需要根据测试集去评估模型的好坏
这里为了简便,用测试集来评估,实际使用中,经常将数据集分为训练集和测试集两类,然后使用训练出来的模型对测试集进行
验证
scores=model.evaluate(x,y)
print("\n%s: %2.f%%" %(model.metrics_names[1],scores[1]*100))