首页 > 试题广场 >

韩梅梅和李雷是百度的实习生,他们刚入职就接受了一项任务,用机

[问答题]
韩梅梅和李雷是百度的实习生,他们刚入职就接受了一项任务,用机器学习的方法来预测某个行业query和广告之间的点击率。该模型将会用于对广告展现时,根据点击率,对展现的广告做重排序。他们两个都采用了LR方法来解决问题,具体的做法是:
(1)根据一个月该行业的日志,找到每次搜索时,当时展现的所有广告(一次展现固定出三条广告)。他们把每个广告的每次展现当作样本,当时是否点击为LR的y值:0或者1。这样一共获得了50w个样本(比如在一次搜索queryA下展现了三条广告a,b,c,其实a被点击了一次,那么这次搜索一共对应3个样本,其中第一个样本的y为1,后面两个样本的y为0)
(2)对样本做均匀抽样分成两份,70%为训练样本,30%为测试样本,抽取了100种特征,其中一个特征是当时广告在网页中的排序(1,2或者3)
(3)使用公司的LR在训练样本上进行训练,在测试样本中进行检测, 认为LR模型给出的p即为广告的点击率,其中
   a.对于广告在网页中的排序,韩梅梅使用的方法是离散乘0-1特征,即将排序离散成(是否为第一名,是否为第二名,是否为第三名),如果样本的排序是第一名,对应的特征为(1,0,0),如果样本的排序为第二名,对应的特征为(0,1,0),而李雷的方法是直接对排序做归一后当作特征的取值,如第一名为0,第二名为0.5,第三名为1,问他们谁的方法效果会更好,为什么?
   b.一般大型LR模型都是使用随机梯度下降的方式,所以需要选择初始值,韩梅梅把beta()的初始值设置成了广告的平均点击0.01,而李雷把bata()设置为1,问在实际线上应用的时候,他们谁的方法效果会更好,为什么?
   c.在直接使用LR模型的时候(loss=\sum yi*log(h(x))+(1-yi)*log(1-h(x)))h(x)=1/(1+exp(-xi*thetai)),韩梅梅和李雷发现在训练样本中拟合的很好,但是在测试样本中效果比较差,问可能是什么原因导致?怎么解决?
   d.在测试的时候,他们使用auc来评估效果,请问auc是怎么计算的?
问题a解答:
        韩梅梅采用OneHotEncoder独热编码,而李雷采用的是 LabelEncoder标签编码(即用某一个数字代表一种类型,如1代表一线城市,2代表二线城市,3代表三线城市)。如果模型损失函数对变量的数值大小是敏感的,如SVM、LR、GLM等,为模型A;如果模型损失函数对变量数据大小不敏感,数值的存在意义是为了排序,如各种树模型,则为模型B。显然该题用的LR模型对变量数值大小是敏感的,所以韩梅梅的编码方式更合适。
问题b解答:
       beta为机器学习模型中的截距,如果设置为1,与事实相比过大,可能需要模型训练更长时间。所以 韩梅梅更好,能在短时间找到最优的模型参数。
问题c解答:
      在训练样本中拟合的很好,但是在测试样本中效果比较差,属于过拟合问题。该损失函数使用的是经验风险最小化,不是结构风险最小化,泛化能力差,容易过拟合。(结构风险=经验风险+置信风险,置信风险是一个减函数,整个公示反映了经验风险和真实误差的差距上界,表征了根据经验风险最小化原则得到的模型的泛化能力。称为泛化误差上界。)
问题d解答:
    AUC最大的应用应该就是点击率预估(CTR)的离线评估。其计算过程如下:
    得到结果数据,数据结构为:(输出概率,标签真值)
    对结果数据按输出概率进行分组,得到(输出概率,该输出概率下真实正样本数,该输出概率下真实  负样本数)。这样做的好处是方便后面的分组统计、阈值划分统计等
    对结果数据按输出概率进行从大到小排序
    从大到小,把每一个输出概率作为分类阈值,统计该分类阈值下的TPR和FPR
    微元法计算ROC曲线面积、绘制ROC曲线
-----AUC的解释很多,自行百度。
-----解释不对的地方,请大家指出来。
发表于 2018-09-03 21:58:56 回复(0)
答案在哪里

发表于 2018-06-19 10:32:59 回复(0)
发表于 2017-11-02 00:03:56 回复(0)
没有答案呢?
发表于 2017-08-23 10:47:54 回复(0)
答案见 http://www.colorzen.cc/200.html
发表于 2016-09-19 10:26:54 回复(1)