Commit 2801c03a authored by 赵威's avatar 赵威

predict tractate

parent a57d5bcb
......@@ -5,38 +5,37 @@ import tensorflow as tf
from .fe.tractate_fe import device_tractate_fe
from .model import _bytes_feature, _float_feature, _int64_feature
_int_columns = [
"active_type", "active_days", "card_id", "is_pure_author", "is_have_reply", "is_have_pure_reply", "content_level",
"reply_num", "reply_pure_num"
]
_float_columns = ["one_ctr", "three_ctr", "seven_ctr", "fifteen_ctr", "thirty_ctr", "sixty_ctr", "ninety_ctr", "history_ctr"]
_categorical_columns = [
"device_id", "past_consume_ability_history", "potential_consume_ability_history", "price_sensitive_history", "show_tag_id",
"device_fd", "device_sd", "device_fs", "device_ss", "device_fp", "device_sp", "device_p", "content_fd", "content_sd",
"content_fs", "content_ss", "content_fp", "content_sp", "content_p", "fd1", "fd2", "fd3", "sd1", "sd2", "sd3", "fs1", "fs2",
"fs3", "ss1", "ss2", "ss3", "fp1", "fp2", "fp3", "sp1", "sp2", "sp3", "p1", "p2", "p3", "click_tractate_id1",
"click_tractate_id2", "click_tractate_id3", "click_tractate_id4", "click_tractate_id5"
]
PREDICTION_ALL_COLUMNS = _int_columns + _float_columns + _categorical_columns
def model_predict_tractate(device_id, tractate_ids, device_dict, tractate_dict, predict_fn):
try:
time_1 = timeit.default_timer()
device_info, tractate_lst, tractate_ids_res = device_tractate_fe(device_id, tractate_ids, device_dict, tractate_dict)
print("predict check: " + str(len(tractate_lst)) + " " + str(len(tractate_ids_res)))
# TODO
int_columns = [
"active_type", "active_days", "card_id", "is_pure_author", "is_have_reply", "is_have_pure_reply", "content_level",
"reply_num", "reply_pure_num"
]
float_columns = [
"one_ctr", "three_ctr", "seven_ctr", "fifteen_ctr", "thirty_ctr", "sixty_ctr", "ninety_ctr", "history_ctr"
]
str_columns = [
"device_id", "past_consume_ability_history", "potential_consume_ability_history", "price_sensitive_history",
"show_tag_id", "device_fd", "device_sd", "device_fs", "device_ss", "device_fp", "device_sp", "device_p", "content_fd",
"content_sd", "content_fs", "content_ss", "content_fp", "content_sp", "content_p", "fd1", "fd2", "fd3", "sd1", "sd2",
"sd3", "fs1", "fs2", "fs3", "ss1", "ss2", "ss3", "fp1", "fp2", "fp3", "sp1", "sp2", "sp3", "p1", "p2", "p3",
"click_tractate_id1", "click_tractate_id2", "click_tractate_id3", "click_tractate_id4", "click_tractate_id5"
]
examples = []
for tractate_info in tractate_lst:
tmp = {}
tmp.update(device_info)
tmp.update(tractate_info)
features = {}
for col in int_columns:
for col in _int_columns:
features[col] = _int64_feature(int(tmp[col]))
for col in float_columns:
for col in _float_columns:
features[col] = _float_feature(float(tmp[col]))
for col in str_columns:
for col in _categorical_columns:
features[col] = _bytes_feature(str(tmp[col]).encode(encoding="utf-8"))
example = tf.train.Example(features=tf.train.Features(feature=features))
examples.append(example.SerializeToString())
......
......@@ -12,7 +12,7 @@ from sklearn.model_selection import train_test_split
from models.esmm.fe import click_fe, device_fe, fe, tractate_fe
from models.esmm.input_fn import esmm_input_fn
from models.esmm.model import esmm_model_fn, model_export
from models.esmm.tractate_model import model_predict_tractate
from models.esmm.tractate_model import (PREDICTION_ALL_COLUMNS, model_predict_tractate)
def main():
......@@ -58,6 +58,12 @@ def main():
# save_path = model_export(model, all_features, model_export_path)
# print("save to: " + save_path)
tractate_train_columns = set(tractate_fe.INT_COLUMNS + tractate_fe.FLOAT_COLUMNS + tractate_fe.CATEGORICAL_COLUMNS)
tractate_predict_columns = set(PREDICTION_ALL_COLUMNS)
print(tractate_predict_columns.difference(tractate_train_columns))
print(tractate_train_columns.difference(tractate_predict_columns))
assert tractate_predict_columns == tractate_train_columns
print("============================================================")
# # save_path = str(Path("~/data/models/tractate/1596089465").expanduser()) # local
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment