click through rate prediction
包括内容如下图:
使用直接估计法,置信区间置信率的估计:
1.使用二项分布直接估计
$p(0.04<\hat{p}<0.06) = \sum_{0.04n\leq k \leq 0.06n}{n \choose k}0.05^{k}0.95^{n-k}$
- low=ceil(n*0.04);%上取整
- high=floor(n*0.06);%下取整
- prob = 0;
- for i=low:1:high
- prob = prob+nchoosek(n,i)*(0.05^i)*(0.95^(n-i));
- end
2.使用正态分布近似
$\mu = p = 0.05,\sigma^2 = \frac{p(1-p)}{n} = \frac{0.05*0.95}{n}$
- normcdf(0.06,0.05,sigma/x(i)^0.5) - normcdf(0.04,0.05,sigma/x(i)^0.5)
- warning off all;
- clear all;clc;close all;
- x=500:1:1500;
- y = zeros(1,size(x,2));
- y2 = zeros(1,size(x,2));
- sigma = sqrt(0.05*0.95);
- for i =1:size(x,2)
- y(i) = adPredict(x(i));
- y2(i) = normcdf(0.06,0.05,sigma/x(i)^0.5) - normcdf(0.04,0.05,sigma/x(i)^0.5);
- end
- plot(x,y,'b-'); hold on;
- plot(x,y2,'r-');
- hold on;
- x1=[500 1500];
- y1=[0.85 0.85];
- plot(x1,y1,'y-');
打印曲线:观测到,n=1000,差不多置信度会到达0.85
AUC概念及计算:
sklearn代码:sklearn中有现成方法,计算一组TPR,FPR,然后plot就可以;AUC也可以直接调用方法。
- import numpy as np
- import matplotlib.pyplot as plt
- from sklearn.linear_model import LogisticRegression
- from sklearn import datasets
- from sklearn.preprocessing import StandardScaler
- from sklearn.metrics import roc_auc_score
- from sklearn.metrics import roc_curve
- digits = datasets.load_digits()
- X, y = digits.data, digits.target
- X = StandardScaler().fit_transform(X)
- # classify small against large digits
- y = (y > 4).astype(np.int)
- X_train = X[:-400]
- y_train = y[:-400]
- X_test = X[-400:]
- y_test = y[-400:]
- lrg = LogisticRegression(penalty='l1')
- lrg.fit(X_train, y_train)
- y_test_prob=lrg.predict_proba(X_test)
- P = np.where(y_test==1)[0].shape[0];
- N = np.where(y_test==0)[0].shape[0];
- dt = 10001
- TPR = np.zeros((dt,1))
- FPR = np.zeros((dt,1))
- for i in range(dt):
- y_test_p = y_test_prob[:,1]>=i*(1.0/(dt-1))
- TP = np.where((y_test==1)&(y_test_p==True))[0].shape[0];
- FN = P-TP;
- FP = np.where((y_test==0)&(y_test_p==True))[0].shape[0];
- TN = N - FP;
- TPR[i]=TP*1.0/P
- FPR[i]=FP*1.0/N
- plt.plot(FPR,TPR,color='black')
- plt.plot(np.array([[0],[1]]),np.array([[0],[1]]),color='red')
- plt.show()
- #use sklearn method
- # fpr, tpr, thresholds = roc_curve(y_test,y_test_prob[:,1],pos_label=1)
- # plt.plot(fpr,tpr,color='black')
- # plt.plot(np.array([[0],[1]]),np.array([[0],[1]]),color='red')
- # plt.show()
- rank = y_test_prob[:,1].argsort()
- rank = rank.argsort()+1
- auc = (sum(rank[np.where(y_test==1)[0]])-(P*1.0*(P+1)/2))/(P*N);
- print auc
- print roc_auc_score(y_test, y_test_prob[:,1])
click through rate prediction的更多相关文章
- 微软的一篇ctr预估的论文:Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine。
周末看了一下这篇论文,觉得挺难的,后来想想是ICML的论文,也就明白为什么了. 先简单记录下来,以后会继续添加内容. 主要参考了论文Web-Scale Bayesian Click-Through R ...
- 【论文笔记】用反事实推断方法缓解标题党内容对推荐系统的影响 Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue
Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue Authors: 王文杰,冯福利 ...
- 【点击模型学习笔记】Predicting Clicks_Estimating the Click-Through Rate for New Ads_MS_www2007
概要: 微软研究院的人写的文章,提出用逻辑回归来解决ctr预估问题,是以后ctr的经典解决方式,经典文章. 详细内容: 名词: CPC -- cost per click CTR -- click t ...
- python命令行神器Click
原文: http://www.lengirl.com/code/python-click.html Click 是用Python写的一个第三方模块,用于快速创建命令行.我们知道,Python内置了一个 ...
- Bayesian CTR Prediction for Bing
Microsoft published a paper in ICML 2009 named ‘Web-Scale Bayesian Click-Through Rate Prediction for ...
- 【python】命令行神器 Click 简明笔记
全文拷贝自 命令行神器 Click 简明笔记 Click Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建 ...
- 命令行神器 Click 简明笔记
Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argpa ...
- Andrew 机器学习课程笔记
Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...
- 主流CTR预估模型的演化及对比
https://zhuanlan.zhihu.com/p/35465875 学习和预测用户的反馈对于个性化推荐.信息检索和在线广告等领域都有着极其重要的作用.在这些领域,用户的反馈行为包括点击.收藏. ...
随机推荐
- ZJUTACM(hd1259)
ZJUTACM 点我 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- 今年暑假不AC(贪心)
今年暑假不AC 点我 Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...” 确实如此,世界杯来了,球迷的节日 ...
- java学习:AWT组件和事件处理的笔记(1)--文本框上的ActionEvent事件
学习处理事件时,必须很好的掌握事件源,监视器,处理事件的接口 1.事件源 能够产生java认可事件的对象都可称为事件源,也就是说事件源必须是对象 2.监视器 监 ...
- python学习day3
目录: 1.集合set 2.计数器 3.有序字典 4.默认字典 5.可命名元组 6.队列 7.深浅拷贝 8.函数 9.lambda表达式 10.内置函数 一.集合set set是一个无序且不重复的元素 ...
- Oracle EBS-SQL (PO-12):检查期间请购单的下达记录数.sql
SELECT DECODE(PRHA.INTERFACE_SOURCE_CODE,'','手工','MRP','自动') 下达方式, PRHA.CREATION_DATE ...
- TCP连接状态详解及TIME_WAIT过多的解决方法
上图对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中.下面对这张图的11种状态详细解释一下 ...
- codec ruby和json格式输出
zjtest7-frontend:/usr/local/logstash-2.3.4/config# cat geoip.conf input {stdin {} } filter { geoip { ...
- Dictionary到List转换中的性能问题 转
本文来自:http://www.cnblogs.com/353373440qq/p/3488367.html 在应用泛型中,我们经常使用Dictionary,经常会用到Dictionary到List的 ...
- jquery知识点积累
网上资源汇总学习: jquery的选择器是CSS1-3,xpath的结合物.JQuery提取了这二种查询语言最好的部分,创造出了最终的jquery表达式查询语言. xpath是一门在xml文档里查找信 ...
- C# 获取类似java gettime() 的时间格式
今天做了一个面向Java的接口,需要做到时间的统一,C#提供了System.DateTime.UtcNow 但是需要自己做下处理,记录一下自己的方法, 留着以后查阅方便. /// <summar ...