Day Four——分别使用Keras和Sklearn训练模型预测结果
第一部分数据missing_data.xls
第二部分数据model.xls
第三部分数据model.xls
第一部分——使用拉格朗日方法填充缺失值
对应函数programmer_1
步骤:
- 读取数据
- 取出缺失值前后五个数据的值,再利用
from scipy.interpolate import lagrange
方法进行填值 - 保存数据
第二部分——构建CART决策树模型并保存模型,可视化结果
对应函数programmer_2
步骤:
- 读取数据,转换矩阵
as_matrix()
,随机打乱数据from random import shuffle
- 设置训练数据与测试数据比为8:2
- 调用函数构建决策树模型进行训练
from sklearn.tree import DecisionTreeClassifier
- 调用函数保存模型
from sklearn.externals import joblib
- 显示混淆矩阵
from sklearn.metrics import confusion_matrix
,可视化输出 - 根据决策预测结果绘制ROC曲线。
from sklearn.metrics import confusion_matrix, roc_curve
输出图形如下:
第三部分——用sklearn构建LM神经网络模型并保存模型进行预测,可视化输出
对应函数programmer_3
步骤:
- 准备数据同第二部分,设置训练数据8:2
- 添加神经网络,编译神经网络系统,进行训练
from keras.layers.core import Activation, Dense
,from keras.models import Sequential
- 保存模型,进行预测
- 同上显示混淆矩阵和绘制ROC曲线
这里要注意的是,keras
用predict
给出的是预测概率, predict_classes
才是预测的类别。
这里Keras
添加层有两种写法:
# 第一种
net.add(Dense(10, input_shape=(3,)))
net.add(Dense(1, input_shape=(10,)))
# 第二种
net.add(Dense(input_dim = 3, units = 10))
net.add(Dense(input_dim = 10, units = 1))
# 注意:下面这种方法是淘汰了的
net.add(Dense(input_dim = 3, output_dim = 10))
net.add(Dense(input_dim = 10, output_dim = 1))
输出图形如下: