keras深度学习笔记

运用keras预测

用于预测足球,目前用,欧盘,亚盘,大小盘,半场记录,技术信息,总场数等数据预测胜平负。

但是只能达到50%的正确率。还在摸索中。可能需要组合不同条件筛选不同的比赛。

只是简单的用神经元预测。

杂乱笔记

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. import tensorflow as tf
  5. from tensorflow.keras import models,layers
  6.  
  7. dftrain_raw = pd.read_csv('C:/Users/xxx/Desktop/365/d.txt',header=None)
  8.  
  9. dftest_raw = pd.read_csv('C:/Users/xxx/Desktop/365/tt.csv',header=None)
  10. #dftrain_raw.head(10)
  11. #print(dftrain_raw[22])
  12.  
  13. # 数据预处理
  14. def preprocessing(dfdata):
  15.  
  16. dfresult= pd.DataFrame()
  17. dfresult[0] = dfdata[0]
  18. dfresult[1] = dfdata[1]
  19. dfresult[2] = dfdata[2]
  20. dfresult[3] = dfdata[3]
  21. dfresult[4] = dfdata[4]
  22. dfresult[5] = dfdata[5]
  23. dfresult[6] = dfdata[6]
  24. dfresult[7] = dfdata[7]
  25. dfresult[8] = dfdata[8]
  26. dfresult[9] = dfdata[9]
  27. dfresult[10] = dfdata[10]
  28. dfresult[11] = dfdata[11]
  29. dfresult[12] = dfdata[12]
  30. dfresult[13] = dfdata[13]
  31. dfresult[14] = dfdata[14]
  32. dfresult[15] = dfdata[15]
  33. dfresult[16] = dfdata[16]
  34. dfresult[17] = dfdata[17]
  35. dfresult[18] = dfdata[18]
  36. dfresult[19] = dfdata[19]
  37. dfresult[20] = dfdata[20]
  38. dfresult[21] = dfdata[21]
  39. return(dfresult)
  40.  
  41.  
  42.  
  43. x_train = preprocessing(dftrain_raw)
  44. print(x_train.shape)
  45. y_train = dftrain_raw[22]
  46.  
  47.  
  48. x_test = preprocessing(dftest_raw)
  49. y_test = dftest_raw[22]
  50.  
  51.  
  52. tf.keras.backend.clear_session()
  53.  
  54. model = models.Sequential()
  55. model.add(layers.Dense(25,activation = 'relu',input_shape=(22,)))
  56. model.add(layers.Dense(12,activation = 'relu' ))
  57. model.add(layers.Dense(1,activation = 'sigmoid' ))
  58.  
  59. model.summary()
  60.  
  61.  
  62. # 二分类问题选择二元交叉熵损失函数
  63. model.compile(optimizer='adam',
  64. loss='binary_crossentropy',
  65. metrics=['AUC'])
  66.  
  67. history = model.fit(x_train,y_train,
  68. batch_size= 64,
  69. epochs= 100,
  70. validation_split=0.2 #分割一部分训练数据用于验证
  71. )
  72. #测试集上的效果:
  73.  
  74. model.evaluate(x = x_test,y = y_test)
  75.  
  76. model.predict(x_test[0:18])

 

Model.fit(x=X_train, y=Y_train, batch_size=32, epochs=2,callbacks=[tbCallBack], validation_data=(X_test,Y_test) )

这样每次训练完一个epoch,就会接着输出:val_loss(测试集损失)和val_acc(测试集准确率)。

# 保存模型结构
json_str = model.to_json()
# 恢复模型结构
model_json = models.model_from_json(json_str)
from keras.callbacks import ModelCheckpoint
checkpoint = ModelCheckpoint(filepath=file_name(就是你准备存放最好模型的地方), 
monitor='val_acc'(或者换成你想监视的值,比如acc,loss,
val_loss,其他值应该也可以,还没有试),
verbose=1(如果你喜欢进度条,那就选1,如果喜欢清爽的就选0,verbose=冗余的),
save_best_only='True'(只保存最好的模型,也可以都保存),
mode='auto'(如果监视器monitor选val_acc, mode就选'max',如果monitor选acc,mode也可以选'max',如果monitor选loss,mode就选'min'),一般情况下选'auto',
period=1(checkpoints之间间隔的epoch数))
filename:字符串,保存模型的路径

monitor:需要监视的值

verbose:信息展示模式,01

save_best_only:当设置为True时,将只保存在验证集上性能最好的模型

mode:‘auto’,‘min’,‘max’之一,在save_best_only=True时决定性能最佳模型的评判准则,
例如,当监测值为val_acc时,模式应为max,
当检测值为val_loss时,模式应为min。在auto模式下,评价准则由被监测值的名字自动推断。

save_weights_only:若设置为True,则只保存模型权重,否则将保存整个模型(包括模型结构,配置信息等)

period:CheckPoint之间的间隔的epoch
keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1)

发表评论

邮箱地址不会被公开。 必填项已用*标注