猿问

结合 scikit-learn 模型使用 TensorFlow 预处理

对于我最近的工作,我必须针对给定的非线性问题尝试不同的 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])


泛舟湖上清波郎朗
浏览 88回答 1
1回答

HUWWW

我可以解决我的问题。我写了一个新函数(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)
随时随地看视频慕课网APP

相关分类

Python
我要回答