对于我最近的工作,我必须针对给定的非线性问题尝试不同的 ML 模型。我使用 TensorFlow 和 Keras 构建了逻辑回归和神经网络的工作版本。现在我必须为同样的问题构建一个 SVM 分类器。由于我在 TensorFlow 中找不到有效的 SVM 估计器,我正在考虑改用 scikit-learn。在我的前两个模型中,我使用 tf.feature_column 来预处理我的数据(bucketized_column、embedding_column、crossed_column 等)。由于这种预处理在某种程度上很复杂并且效果很好,我想知道我是否可以将 TensorFlow 预处理与 scikit-learn 结合使用。这有可能吗?或者我可以在 TensorFlow(类似于 Keras)中以某种方式使用 scikit-learn,这样我也可以使用 TensorBoard 来分析我的结果吗?这里是我的代码中相关部分的概述:(feature_columns, train_ds, val_ds, test_ds) = preprocessing.getPreProcessedData(args.data, args.zip, args.batchSize)在模型模块中,我使用此函数调用来获取预处理数据。feature_columns是 tf.feature_column 的不同类型映射的数组。train_ds等是 TensorFlow 数据集。在 array 的帮助下创建 DenseFeature feature_columns:feature_layer = tf.keras.layers.DenseFeatures(feature_columns, trainable=False)使用预处理构建 Keras 模型: model = tf.keras.models.Sequential([ feature_layer, tf.keras.layers.Dense(1, activation=tf.nn.sigmoid) ])模型的拟合: model.fit(train_ds, validation_data=val_ds, epochs=args.epoch, callbacks=[tensorboard_callback])
1 回答
HUWWW
TA贡献1874条经验 获得超12个赞
我可以解决我的问题。我写了一个新函数(feature_columns, train, val, test) = preprocessing.getPreProcessedDataframes(args.data, args.zip, args.batchSize)
,它返回熊猫数据帧而不是 TensorFlow 数据集。之后,我使用feature_layer
对数据帧进行预处理,作为 sklearn 分类器的训练输入。
对数据帧应用预处理:
x_train = feature_layer(dict(train)).numpy() x_test = feature_layer(dict(test)).numpy()
训练:
model.fit(x_train, y_train)
添加回答
举报
0/150
提交
取消