Exemplo n.º 1
0
    #                          for feat in dense_features]

    dnn_feature_columns = sparse_feature_columns + dense_feature_columns
    linear_feature_columns = sparse_feature_columns + dense_feature_columns

    feature_names = get_fixlen_feature_names(linear_feature_columns +
                                             dnn_feature_columns)

    print(feature_names)
    train_model_input = [train[name] for name in feature_names]

    test_model_input = [test[name] for name in feature_names]

    print('PPPP')
    print(linear_feature_columns, dnn_feature_columns)
    model = xDeepFM_MTL(linear_feature_columns, dnn_feature_columns)
    model.compile("adagrad",
                  loss={
                      'finish': "binary_crossentropy",
                      'like': "binary_crossentropy"
                  },
                  loss_weights=loss_weights)

    print(train_labels)

    history = model.fit(train_model_input,
                        train_labels,
                        batch_size=4096,
                        epochs=2,
                        verbose=1,
                        validation_split=0.1)
Exemplo n.º 2
0
                           for feat in sparse_features]
    dense_feature_list = [SingleFeat(feat, 0)
                          for feat in dense_features]

    train = data.iloc[:train_size]
    test = data.iloc[train_size:]

    train_model_input = [train[feat.name].values for feat in sparse_feature_list] + \
        [train[feat.name].values for feat in dense_feature_list]
    test_model_input = [test[feat.name].values for feat in sparse_feature_list] + \
        [test[feat.name].values for feat in dense_feature_list]

    train_labels = [train[target[0]].values, train[target[1]].values]
    test_labels = [test[target[0]].values, test[target[1]].values]

    model = xDeepFM_MTL({"sparse": sparse_feature_list,
                         "dense": dense_feature_list})
    model.compile("adagrad", "binary_crossentropy", loss_weights=loss_weights, metrics=[auc])

    if ONLINE_FLAG:
        history = model.fit(train_model_input, train_labels,
                            batch_size=4096, epochs=1, verbose=1)
        pred_ans = model.predict(test_model_input, batch_size=2**14)

    else:
        history = model.fit(train_model_input, train_labels,
                            batch_size=4096, epochs=1, verbose=1, validation_data=(test_model_input, test_labels))

    if ONLINE_FLAG:
        result = test_data[['uid', 'item_id', 'finish', 'like']].copy()
        result.rename(columns={'finish': 'finish_probability',
                               'like': 'like_probability'}, inplace=True)
Exemplo n.º 3
0
    sequence_feature = [VarLenFeat('audio', 128, 128, 'max')]

    train = data.iloc[:train_size]
    test = data.iloc[train_size:]

    train_model_input = [train[feat.name].values for feat in sparse_feature_list] + \
        [train[feat.name].values for feat in dense_feature_list] + [audio_data[:train_size]]
    test_model_input = [test[feat.name].values for feat in sparse_feature_list] + \
        [test[feat.name].values for feat in dense_feature_list] + [audio_data[train_size:]]

    train_labels = [train[target[0]].values, train[target[1]].values]
    test_labels = [test[target[0]].values, test[target[1]].values]

    model = xDeepFM_MTL({
        "sparse": sparse_feature_list,
        "dense": dense_feature_list,
        "sequence": sequence_feature
    })
    model.compile(
        "adagrad",
        "binary_crossentropy",
        loss_weights=loss_weights,
    )

    if ONLINE_FLAG:
        history = model.fit(train_model_input,
                            train_labels,
                            batch_size=4096,
                            epochs=1,
                            verbose=1)
        pred_ans = model.predict(test_model_input, batch_size=2**14)
Exemplo n.º 4
0
    dnn_feature_columns = fixlen_feature_columns
    linear_feature_columns = fixlen_feature_columns

    feature_names = get_feature_names(linear_feature_columns +
                                      dnn_feature_columns)

    train = data.iloc[:train_size]
    test = data.iloc[train_size:]
    train_model_input = {name: train[name] for name in feature_names}
    test_model_input = {name: test[name] for name in feature_names}

    train_labels = [train[target[0]].values, train[target[1]].values]
    test_labels = [test[target[0]].values, test[target[1]].values]

    model = xDeepFM_MTL(linear_feature_columns,
                        dnn_feature_columns,
                        dnn_hidden_units=(128, 128))

    # model = xDeepFM_MTL({"sparse": sparse_feature_list,
    #                      "dense": dense_feature_list})


    def auc(y_true, y_pred):
        auc = tf.metrics.auc(y_true, y_pred)[1]
        tf.keras.backend.get_session().run(tf.local_variables_initializer())
        return auc

    model.compile(
        "adagrad",
        "binary_crossentropy",
        metrics=['binary_crossentropy', auc],
Exemplo n.º 5
0
        [test[feat.name].values for feat in dense_feature_list]

    train_labels = [train[target[0]].values, train[target[1]].values]
    test_labels = [test[target[0]].values, test[target[1]].values]

    embedding_size = 8
    hidden_size = (256, 256)
    if VERSION == 3:
        embedding_size = 1
    if VERSION == 4:
        embedding_size = 1
        hidden_size = (64, 64)
    model = xDeepFM_MTL(
        {
            "sparse": sparse_feature_list,
            "dense": dense_feature_list
        },
        embedding_size=embedding_size,
        hidden_size=hidden_size)
    model.compile("adagrad",
                  loss='binary_crossentropy',
                  loss_weights=loss_weights,
                  metrics=[auroc])

    my_callbacks = [
        EarlyStopping(monitor='loss',
                      min_delta=1e-2,
                      patience=10,
                      verbose=1,
                      mode='min')
    ]