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 学习和预测用户的反馈对于个性化推荐.信息检索和在线广告等领域都有着极其重要的作用.在这些领域,用户的反馈行为包括点击.收藏. ...
随机推荐
- JAVA笔记1-00
package chapter1; public class Demo1 { public static void main(String[] args) { System.out.println(& ...
- NFC扫描
目录(?)[-] 简介 什么是NFC 标签和读取器 标签 读取器 NFC模式 通信模式 主动模式 被动模式 操作模式 读写 点对点 模拟卡片 NFC用例 用于启动服务 用于分享 用于连接设备 用于买票 ...
- QT GUI(主)线程与子线程之间的通信——使用跨线程的信号槽
在主线程上,可以控制子线程启动,停止,清零 如果子线程启动的话,每一秒钟会向主线程发送一个数字,让主线程更新界面上的数字. 程序截图: 上代码: #include <QtGui> #inc ...
- UITableView 或 UIScrollView 点击状态栏列表回到顶部
整理来自互联网- 这是tableView继承的scrollView的一个属性 scrollsToTop. 官方说明是这样的: // When the user taps the status bar, ...
- Redis 实践笔记
本文来自:http://www.cnblogs.com/me-sa/archive/2012/03/13/redis-in-action.html 最近在项目中实践了一下Redis,过程中遇到并解决了 ...
- ToString()使用方法
1.数字转换到字符串格式说明符说明示例输出C货币2.5.ToString("C")¥2.50D十进制数25.ToString("D5")00025E科学型250 ...
- 【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类
续[Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之三]动手绑定自己定义类至Lua 之后.我们已经完毕了自己定义类至Lua的绑定.在接下来的环节,我们将使用它. 首先,我们须要确定 ...
- android _scrollview嵌套listview出现高度显示不全解决方案
只要在工具类里写上这一段代码:/** * scrollview嵌套listview显示不全解决 * @param listView */ public static void setListViewH ...
- 【MFC学习笔记-作业9-基于单击响应的计算平均成绩】【】
要求..单击出现 一个输入成绩的框,点确定后,计算平均成绩 意义很大~ 完成对话框 再写个鼠标点击的响应部分 鼠标点击的响应部分为难点.... void CWj1401_0302140107_9V ...
- HTML 4.01 符号实体
HTML 4.01 符号实体 http://www.w3school.com.cn/tags/html_ref_symbols.html