创建分类器
设计系统时,选择调用 tensorflow Python API,直接建立 DNNClassifier 对象,省去了大量从底层开始架构模型的时间。对解决简单分类问题很有效,推荐给大家。
classifier = tf.estimator.DNNClassifier()
训练分类器
调用 DNNClassifier 对象的 fit 函数,建立训练模块。
classifier.fit(X_transformed_train, Y_noTransform_train, steps=2000, batch_size=5000)
分类器预测
调用 DNNClassifier 对象的 predict 函数,建立预测模块。输出为 0 或 1,0 代表分类器认为转化概率低于 50%,即不会付费转化,1 代表分类器认为转化概率大于等于 50%,即大概率付费转化。50% 为 predict 函数默认的缺省阈值,如需改变此阈值,则要调用 predict_proba 函数,输出为转化概率,而不再是 0 或 1。
Y_predict = classifier.predict(X_transformed_test)
分类器验证
Y_predict 和 Y_noTransform_test 都是真对同一批测试者,前者为预测值,后者为实际值。通过比较得出 Precision 和 Recall,以此衡量预测模型的准确度。如果用于 Google 广告平台的投放,则 Recall 比 Precision 重要,应尽量提高 Recall。如果用户内部运营,则 Precision 比 Recall 重要,应尽量提高 Precision。
其中 p
recision
代表精度,r
ecall
代表广度。f1 是综合考虑 p
recision
,r
ecall
的整体参数。具体定义如下:
经过多次调参迭代,模型性能如下所示,
注:蓝色竖虚线与 x 轴的交点是使 f1 达到最高点的预测概率的取值