我想训练一个模型来从物理信号中预测一个人的情绪。我有一个物理信号并将其用作输入功能;
ecg(心电图)
我想使用 CNN 架构从数据中提取特征,然后使用这些提取的特征来提供经典的“决策树分类器”。下面,你可以看到我的 CNN 方法没有决策树;
model = Sequential()
model.add(Conv1D(15,60,padding='valid', activation='relu',input_shape=(18000,1), strides = 1, kernel_regularizer=regularizers.l1_l2(l1=0.1, l2=0.1)))
model.add(MaxPooling1D(2,data_format='channels_last'))
model.add(Dropout(0.6))
model.add(BatchNormalization())
model.add(Conv1D(30, 60, padding='valid', activation='relu',kernel_regularizer = regularizers.l1_l2(l1=0.1, l2=0.1), strides=1))
model.add(MaxPooling1D(4,data_format='channels_last'))
model.add(Dropout(0.6))
model.add(BatchNormalization())
model.add(Flatten())
model.add(Dense(3, activation = 'softmax'))
我想编辑此代码,以便在输出层中将有工作决策树而不是model.add(Dense(3, activation = 'softmax'))
. 我试图像这样保存最后一个卷积层的输出;
output = model.layers[-6].output
当我打印出output
变量时,结果是这样的;
输出:张量("conv1d_56/Relu:0", shape=(?, 8971, 30), dtype=float32)
我猜,该output
变量包含提取的特征。现在,我怎样才能用存储在变量中的这些数据来提供我的决策树分类器模型?output
这是来自 scikit learn 的决策树;
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier(criterion = 'entropy')
dtc.fit()
我应该如何喂养该fit()
方法?提前致谢。