1、tensorflow-keras简介

  • keras是基于python的高级神经网络API
  • tensorflow-keras是tensorflow对keras API规范的实现
  • 实现在tf.keras下

2、keras实现线性回归

线性回归中 relu作为激活函数,均方差mse作为损失函数

  1. import tensorflow as tf
  2. import pandas as pd
  3. # 获取数据
  4. data = pd.read_csv('./dataset/Adversting.csv')
  5. # 取出变量和label值
  6. x = data.iloc[:, 1:-1]
  7. y = data.iloc[:, -1]
  8. # 建立顺序模型
  9. model = tf.keras.Sequential([
  10. tf.keras.labels.Dense(10, input_shape(10,), activation="relu"),
  11. tf.keras.labels.Dense(1)
  12. ])
  13. # 查看模型的总体情况
  14. model.summary()
  15. # 对模型进行优化编译
  16. model.compile(optimizer="adam", loss="mse")
  17. # 开始训练模型
  18. model.fit(epochs=100)
  19. # 预测
  20. test = data.iloc[:10, 1:-1]
  21. predict = model.predict()

3、keras实现二分类的逻辑回归

sigmoid激活函数一般用 二元交叉熵作为损失函数 binary_crossentropy

  1. import tensorflow as tf
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. data = pd.read_csv('./dataset/credit-a.csv', header=None)
  5. # 获取数据
  6. x = data.iloc[:, 0:-1]
  7. # 用replace方法替换-1
  8. y = data.iloc[:, -1].replace(-1, 0)
  9. # 定义模型
  10. model = tf.keras.Sequential()
  11. # 给模型里面添加层
  12. model.add(tf.keras.layers.Dense(4, input_shape=(15,), activation="relu"))
  13. model.add(tf.keras.layers.Dense(4, activation="relu"))
  14. model.add(tf.keras.layers.Dense(1, activation="sigmoid"))
  15. # 查看模型总体情况
  16. # model.summary()
  17. # 对模型进行编译 metrics=["acc"]表示输出正确率
  18. model.compile(
  19. optimizer="adam",
  20. loss="binary_crossentropy",
  21. metrics=["acc"]
  22. )
  23. # 这里的histroy 是一个dict里面存放了一些信息
  24. history = model.fit(x, y, epochs=100)
  25. # print(history.history.keys())
  26. # 通过plt进行绘图
  27. plt.plot(history.epoch, history.history.get('loss'))
  28. plt.show()

4、softmax实现多分类逻辑回归

softmax作为激活函数一般可以用 categorical_crossentropy 和 sparse_categorical_crossentropy作为损失函数