【落地页优化】woe对变量的分析

最近在做落地页优化的项目,整理一下,最近的工作。欢迎大家批评指正!


对于不同的人从百度搜索关键词,点击跳转后,系统因能够根据不同人的特征,跳转到不同的页面,以提高商品的转化率。


由于平台的特殊性,我这部分工作是要是对用户浏览的URL进行分类,来判断用户的喜好。这部分工作主要是通过站内爬虫,爬取所有能够访问到的url,由于日志里只记录了服务器response的url,所以需要用requests.get(visitUrl).url得到反馈的url,另外由于url中的“#”只是标识页面的位置,需要去除,再去重。许多url是通过ajax动态生成的,需要selenium.webdriver这个包来模拟浏览器的渲染,关于破解登录问题,使用的是手动登录后,用程序解析保存在本地的cookie,这样爬虫就可以访问登录后的页面,非常有规则性的url是通过正则表达式进行cover,无规则型的url则是通过hash加快索引,会用到hadoop平台,以后再讲。关于url分类表记录了,用户输入的url,服务器反馈的url,该url父级url,正则表达式,是否需要登录才能访问,一级类别,二级类别等。


IP定位问题用的是python的17Mon包,覆盖率93%以上,useragent同样使用python的user-agents包,可以提取的特征为:浏览器家族、浏览器版本、操作系统及其版本、设备(移动设备家族),是否是手机,是否是平板,是否是电脑,是否是爬虫。(老大讲微软曾经直接拿useragent做hash定位到人,不知到怎么做特征的)


文本变量的分析:

每一个用户是通过不同的渠道(tid)、广告位(sid)、关键词(kw)来到站内的,渠道和广告位本身是文本的分类型变量,这里通过woe计算tid和sid的分类型变量对落地页(因变量)的影响,另外,还对tid、sid和kw进行分词后计算影响。

利用jiebaR对文本进行分词,吐嘲一下tm包中文支持的太烂了。接下来就是重头:利用woe评价每个变量对因变量的影响。

woe原本是风控模型里常用的评价指标,用来计算特征对二分类变量的预测能力,woe的相关知识可以看着里:

1、http://blog.csdn.net/goodhuajun/article/details/39582761

2、http://www.r-bloggers.com/r-credit-scoring-woe-information-value-in-woe-package/

3、http://bryannotes.blogspot.com/2014/10/r-woeiv.html

他和Entropy、gini系数一样。但是可以通过woe计算特征的IV,关于IV有阀值,可以直接判定该变量的预测能力。请参考:

http://ucanalytics.com/blogs/information-value-and-weight-of-evidencebanking-case/

如下:

Information ValuePredictive Power
< 0.02useless for prediction
0.02 to 0.1Weak predictor
0.1 to 0.3Medium predictor
0.3 to 0.5Strong predictor
 >0.5Suspicious or too good to be true

由于我们这里的落地页优化是多分类型,所以将多分类转换成二分类,比如这里的N分类将转换成N个二分类,对于每一个特征变量,我们可以计算这个特征变量对N个二分类的影响,所以可以生成一张N*M的一个information value的二维表,M=特征变量数目。这样特征的预测能力就一目了然啦。

PS:随机森林也可以计算变量的预测能力,代码如下:

rf <- randomForest(extractFeatures(train), train$count, ntree=100, importance=TRUE)
imp <- importance(rf, type=1)
featureImportance <- data.frame(Feature=row.names(imp), Importance=imp[,1]);
p <- ggplot(featureImportance, aes(x=reorder(Feature, Importance), y=Importance)) +
     geom_bar(stat="identity", fill="#53cfff") +
     coord_flip() + 
     theme_light(base_size=20) +
     xlab("Importance") +
     ylab("") + 
     ggtitle("Random Forest Feature Importance\n") +
     theme(plot.title=element_text(size=18))

ggsave("2_feature_importance.png", p)

参考:https://www.kaggle.com/benhamner/bike-sharing-demand/random-forest-benchmark

后面有东西接着讲~



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值