小型压力数据集预测任务
数据样例:

方案一:决策树处理方案
1.Dealfeature函数:
处理dataframe表,使用flatten

将压力特征event列的100*8降数据维成1*800.同时新建input0-799共800个新特征,将event压力特征点填入。
2.Dealtarget函数:
设置一个CategoricalDtype对象,类型为bkr。之后将数据集的class列通过cat.codes编码化,化为012三个int类型,依然取values作为结果

3.split_dataframe函数:用来划分训练集、验证集和测试集,比例是5:4:3
4.train_decision_tree函数:训练决策树,调包
5.run_tests函数:进行预测
F1score 精确率和召回率的调和平均数

Macro avg 宏平均每个类别的精准召回加f1求和平均
Weighted avg 宏平均按照各个种类的数量进行加权的平均
决策树可视化

遇到的几个问题:
1.ast.literal_eval 执行语句必须是合法类型,代码中用来确定数据类型。
2.Flatten处理 ,按横方向降维。
3.c.Astype(a)将c中的元素改变为a类型,只能给array类型使用
4.confusion_matrix 混淆矩阵,列坐标为预测值类别,横坐标为实际值,矩阵值为是否相同。(如0,1的值为2,代表实际为0预测成1的有两个单位)
方案二:DNN
dealfeature、dealtarget、split_dataframe这些函数不变
loss曲线上验证集的效果往往应该低于训练集的效果,但是由于dnn训练初始阶段可能有dropout存在,所以可能存在在训练初期验证集的效果更好一些的现象。
dnn_classifier = tf.estimator.DNNClassifier( feature_columns=construct_feature_columns(), n_classes=3, hidden_units=hidden_units, optimizer=lambda:tf.keras.optimizers.SGD(learning_rate=0.0001, clipnorm=5.0))
训练生成的ckpt文件的功能:
Tensorflow训练后的模型可以保存checkpoint文件或pb文件。checkpoint文件是结构与权重分离的四个文件,便于训练;pb文件则是graph_def的序列化文件,类似于caffemodel,便于发布和离线预测。官方提供freeze_grpah.py脚本来将ckpt文件转为pb文件。
Checkpoint保存断点文件列表,可以用来迅速查找最近一次的断点文件;
meta文件是MetaGraphDef序列化的二进制文件,保存了网络结构相关的数据,包括graph_def和saver_def等;
index文件为数据文件提供索引,存储的核心内容是以tensor name为键以BundleEntry为值的表格entries,BundleEntry主要内容是权值的类型、形状、偏移、校验和等信息。Index文件由data block/index block/Footer等组成,构建时主要涉及BundleWriter、TableBuilder、BlockBuilder几个类,除了BundleEntry的序列化,还涉及了tensor name的编码及优化(比如丢弃重复的前缀)和data block的snappy压缩。
数据(data)文件保存所有变量的值,即网络权值。
ANN方案:
np.random.choice
#numpy.random.choice(a, size=None, replace=True, p=None)
#从a(只要是ndarray都可以,但必须是一维的)中随机抽取数字,并组成指定大小(size)的数组
#replace:True表示可以取相同数字,False表示不可以取相同数字
#数组p:与数组a相对应,表示取数组a中每个元素的概率,默认为选取每个元素的概率相同。
>>>np.random.choice(5)#从[0, 5)中随机输出一个随机数
#相当于np.random.randint(0, 5)
>>>np.random.choice(5, 3)#在[0, 5)内输出五个数字并组成一维数组(ndarray)
#相当于np.random.randint(0, 5, 3)
array([1, 4, 1])
for k_i, k in enumerate(event_dF.keys()): axe.plot(event_dF[k]+k_i*2)
这里画出我们需要的event_df的k列(一共7列),为什么要在后面加个ki*2项?为了将混乱的线上下分离开来:
如果不分离的


浙公网安备 33010602011771号