lr的职业大厅在哪问题


LR模型常见问题小议
本文章已收录于:
机器学习(10)
// 毕竟不是什么大牛,只是总结一下自己的一些认识和想法,如果有不正确的,还请大牛们斧正。
经常说的2/8原则,LR肯定就是能解决80%问题中那20%的工具。所以LR还是值得好好研究的。发现以前对LR重视不够,总想着赶紧把其他算法也学了,才能拉小跟同事之间的gap。其实LR用得还是挺多的,而且效果还是不错的。一些高大上的算法,在公司这种面前不一定跑得动,即使跑得动,效果也不一定好,而且还有可解释性和工程维护方面复杂度的问题。这倒是挺残酷的现实。
发现学完coursera的机器学习课程后,离具体实践还是有不少距离,也没找到什么好的资料可以学习(如果谁发现有的话,麻烦告诉我一声吧),耳濡目染了一些奇技淫巧,总结一下,有一些其实之前的笔记也零散提到了。
数据归一化
仔细区分的话,有两种:
归一化: (x-最小值)/(最大值-最小值) 标准化: (x-平均数)/标准差
反正就是把数据缩放到大小差不多,在1左右。这样起到的作用是加速迭代。根本原因其实是因为你偷懒,没有为每一个特征单独设置一个a。既然用了同一个a,那你也要保证数据scale也差不多。
特征离散化&组合
刚开始觉得,机器学习公司里有现成的包可以调用,然后把数据灌进去就好了,机器学习到底有啥搞头呢? 后来才搞明白,现实中,机器学习里面重要的一环其实就是搞“特征工程”,如果你对数据有足够的敏锐,能抽取出一些有效的特征,往往比算法本身的优化来得有效得多。怎么抽取特征这里就不多说,这里所说常见的特征处理方法:离散化和特征组合。
离散化就是把数值型特征离散化到几个固定的区间段。比如说成绩0-100,离散化成A、B、C、D四档,然后用4个01特征来one-hot编码,比如
A为1,0,0,0
B为0,1,0,0
C为0,0,1,0
D为0,0,0,1
那第一位就表示是否为A,第二位表示是否为B……
这里起到的作用就是减少过拟合,毕竟95和96分的两个学生能力不见得就一定有差别,但是A的学生跟D的比起来还是有明显差别的。其实就是把线性函数转换成分段阶跃函数了。
另外一种,比如把汽车时速按10公里/小时之类的分一些档,就像这样:
如果现在我们想学习的目标是油耗
这里以某款国内比较热销的车型做了下面的几项测试:
120km/h匀速行驶时,油耗为7.81升/100km
90km/h匀速行驶时, 油耗为5.86升/100km
60km/h匀速行驶时, 油耗为4.12升/100km
30km/h匀速行驶时 ,油耗为4.10升/100km
显然油耗不是线性的,不离散化肯定不行。仔细想想,这样离散化之后,其实可以近似拟合任意函数了。
特征组合就比较简单,比如现在有两个特征A和B,再新增一个A and B的特征。
LR的劣势就是线性模型的线性假设过强,但我们发现通过上面这些trick,其实也可以学习”非线性“的特征,大大增强了LR的能力,所以LR才能这么流行。
高纬度01特征
就是one-hot编码,上面就用了。
还有一个优点没提到,就是没有数据归一化(标准化)的问题。
高纬度的特征我们一般不会存一个&特征名,下标值&这样一个hashmap,而是直接用
哈希(特征名)%特征数
以前还以为这样做是因为在算法预测能力上会有神奇的提升,结果不是,只是出于工程方便的考虑。
好处只是少维护了一个索引,方便多了。当然,哈希冲突是有的,而且这个对算法是有害的,只不过冲突一般比较少,还hold得住。这里有个资料()不错,说的是处理文本,其实对LR也一样。
正负样本不均衡问题
(注意这里只讨论LR,不要乱推广到其他算法)感觉怎么这问题有点像”玄学”了,坊间通用的说法是样本太不均衡是会有问题的,正负样本比例多大合适? 一些经验主义的说法是顶多负样本是正样本的几(5以内吧)倍。
这问题的分析,显然要从loss function入手。
假设现在负样本复制多一份,从loss function的角度看来,就是负样本的cost前面乘以2,这个2其实可以当做负样本的权重。所以,谁样本多,谁占的权重其实就大一些。要看看loss function的优化目标是不是跟你的目标一致,如果正负样本对你来说一样重要,那可以不用管,但通常都不是,所以是个问题。通常情况都是比较少的样本反而比较重要的,这真是一个大问题。假设正负样本是1:1w,你关心的是正样本,直接学出来的模型可能就直接把样本全判别为负样本。但这显然不是你想要的结果。
像我这样的懒人,直觉是觉得保持1:1最好,或者说至少没坏处。那通常采用的方法就是up-sampling或者down-sampling,具体操作方法很简单,少的样本复制多份,或者多的样本只抽样一些。但我感觉前者容易过拟合,后者数据利用得又不够充分。难道咸鱼与熊掌就不可得兼?后来某大牛指点了一下,告诉我一个简单的trick:
用down-sampling,然后采样多次,训练多个模型,跟随机森林一样,求个平均即可
这里还有另外一个问题,我们知道LR学出来是一个概率值,样本不均衡,我们调一下阈值不就行了么?比如从原来的0.5调整到0.3,这样就会多判断一些正样本,唯一的问题就是样本不均衡时候的分类边界跟均衡时的边界平行么?
好吧,作为一个懒惰的“工程学派”,懒得去推到公式从理论上去证明,还是来做个直观的实验吧。
用R语言来做。我知道用R比较简单,但是R本身我不熟,还要google一番+?&函数名& 命令,勉强还是把代码撸出来了。代码逻辑很简单,自己定好一个斜率K=5,然后在边界上下生成一些随机数,高斯分布,均匀分布都可以。
&code class=&language-r hljs
has-numbering&&
LABEL_1_NUM &- &span class=&hljs-number&&100&/span&
LABEL_0_NUM &- &span class=&hljs-number&&100&/span&
K &- &span class=&hljs-number&&5&/span&
x1 &-runif(LABEL_1_NUM, &span class=&hljs-number&&0&/span&, &span class=&hljs-number&&10&/span&)
x2 &-runif(LABEL_0_NUM , &span class=&hljs-number&&0&/span&, &span class=&hljs-number&&10&/span&)
D &-&span class=&hljs-number&&1&/span&
x2 &- rep(x2,D)
Y &- c( x1* K + rnorm(LABEL_1_NUM, mean=&span class=&hljs-number&&15&/span&, sd=&span class=&hljs-number&&19&/span&), x2 * K + rnorm(LABEL_0_NUM, mean=-&span class=&hljs-number&&15&/span&, sd=&span class=&hljs-number&&19&/span&) )
&span class=&hljs-comment&&#Y &- c( x1* K + runif(LABEL_1_NUM, min=-15, max=50), x2 * K + runif(LABEL_0_NUM, min=-50, max=15) )&/span&
X &- c( x1, x2 )
label &- as.factor( c(rep(&span class=&hljs-number&&1&/span&,LABEL_1_NUM), rep(&span class=&hljs-number&&0&/span&,LABEL_0_NUM*D) ) )
data &- data.frame(X,Y, label)
model &- glm(label~Y+X, data=data, family=&span class=&hljs-string&&'binomial'&/span&, control = list(maxit = &span class=&hljs-number&&600&/span&))
plot( data$X , data$Y , type=&span class=&hljs-string&&&p&&/span&, pch=&span class=&hljs-number&&19&/span&, col=&span class=&hljs-string&&&red&&/span&)
points( data$X[ data$label==&span class=&hljs-number&&1&/span&], data$Y[ data$label==&span class=&hljs-number&&1&/span&], type=&span class=&hljs-string&&&p&&/span&, pch=&span class=&hljs-number&&19&/span&, col=&span class=&hljs-string&&&blue&&/span&)
points( data$X[ data$label==&span class=&hljs-number&&0&/span&], data$Y[ data$label==&span class=&hljs-number&&0&/span&], type=&span class=&hljs-string&&&p&&/span&, pch=&span class=&hljs-number&&19&/span&, col=&span class=&hljs-string&&&red&&/span&)
co = coef(model)
lines(c(&span class=&hljs-number&&0&/span&,&span class=&hljs-number&&100&/span&),c(-co[&span class=&hljs-number&&1&/span&]/co[&span class=&hljs-number&&2&/span&], -(co[&span class=&hljs-number&&1&/span&]+co[&span class=&hljs-number&&3&/span&]*&span class=&hljs-number&&100&/span&)/co[&span class=&hljs-number&&2&/span&]), type=&span class=&hljs-string&&&l&&/span&, col=&span class=&hljs-string&&'green'&/span&, lwd=&span class=&hljs-number&&3&/span&)
&span class=&hljs-comment&&#截距&/span&
print(-co[&span class=&hljs-number&&1&/span&]/co[&span class=&hljs-number&&2&/span&])
&span class=&hljs-comment&&#斜率&/span&
print(-co[&span class=&hljs-number&&3&/span&]/co[&span class=&hljs-number&&2&/span&])
&/code&&ul class=&pre-numbering&&&li&1&/li&&li&2&/li&&li&3&/li&&li&4&/li&&li&5&/li&&li&6&/li&&li&7&/li&&li&8&/li&&li&9&/li&&li&10&/li&&li&11&/li&&li&12&/li&&li&13&/li&&li&14&/li&&li&15&/li&&li&16&/li&&li&17&/li&&li&18&/li&&li&19&/li&&li&20&/li&&li&21&/li&&li&22&/li&&li&23&/li&&li&24&/li&&li&25&/li&&li&26&/li&&li&27&/li&&li&28&/li&&li&29&/li&&li&30&/li&&li&31&/li&&li&32&/li&&li&33&/li&&li&34&/li&&/ul&&div class=&save_code tracking-ad& style=&display:& data-mod=&popu_249&&&a target=_blank href=&javascript:;& target=&_blank&&&img src=&http://static.blog.csdn.net/images/save_snippets.png& alt=&& /&&/a&&/div&&ul class=&pre-numbering&&&li&1&/li&&li&2&/li&&li&3&/li&&li&4&/li&&li&5&/li&&li&6&/li&&li&7&/li&&li&8&/li&&li&9&/li&&li&10&/li&&li&11&/li&&li&12&/li&&li&13&/li&&li&14&/li&&li&15&/li&&li&16&/li&&li&17&/li&&li&18&/li&&li&19&/li&&li&20&/li&&li&21&/li&&li&22&/li&&li&23&/li&&li&24&/li&&li&25&/li&&li&26&/li&&li&27&/li&&li&28&/li&&li&29&/li&&li&30&/li&&li&31&/li&&li&32&/li&&li&33&/li&&li&34&/li&&/ul&
正负 100:100
正负 100:1000
有点遗憾,采样多次取平均,斜率居然都是5左右。后来想想,负样本多的时候,其实正样本都不用怎么看了,而负样本形成的带状物,边缘斜率肯定也是接近5。
改变方法,负样本生成的时候斜率改成-K,然后标准差调大一些。这样分类边界应该是Y=0。
注意,一定要多抽样几次。能发现,负样本多的话,边界还是会向下偏一些的(至少比1:1的时候。 斜率 (-∞, -1] vs [-1,1] )。这个问题能举一个反例证明就够了。注意这里为了方便展示,取的只有2维,高维的就更不好说了。不过这里还发现,边界向下其实偏离得不会特别大,LR还是有一些容错能力的,但比赛的话,能提升0.5%都已经很不错了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:137218次
积分:2621
积分:2621
排名:第10006名
原创:22篇
转载:658篇
评论:21条
(3)(14)(9)(39)(64)(37)(4)(2)(18)(61)(27)(26)(64)(25)(39)(18)(11)(19)(34)(29)(41)(32)(48)(30)后使用快捷导航没有帐号?
查看: 793|回复: 10
新人欢迎积分1 阅读权限30积分70精华0UID2810385帖子金钱15 威望0
Lv.3, 积分 70, 距离下一级还需 180 积分
UID2810385帖子威望0 多玩草12 草
PVE LR的 命中 爆击 急速 应该怎么堆好?怎么搭配才完美?
新人欢迎积分
????????????????????????????????????????
总评分:&新人欢迎积分 + 1&
新人欢迎积分0 阅读权限70积分8011精华0UID2022079帖子金钱15 威望1
Lv.7, 积分 8011, 距离下一级还需 1989 积分
UID2022079帖子威望1 多玩草469 草
命中142吧。。看自己了。。LZ要明白一点,你堆急速。那其他方面就会下降,你堆爆那另外的几方面也会降,所以要考虑好
新人欢迎积分1 阅读权限50积分1924精华0UID1452720帖子金钱863 威望0
Lv.5, 积分 1924, 距离下一级还需 576 积分
UID1452720帖子威望0 多玩草107 草
我怎么觉得熊MM说了和没说一样。我的小猎人是攻强、命中、破甲、爆击的顺序,到现在急速等级为0。
新人欢迎积分1 阅读权限30积分81精华0UID2390047帖子金钱5 威望0
Lv.3, 积分 81, 距离下一级还需 169 积分
UID2390047帖子威望0 多玩草12 草
其实,命中不需要这么高的,因为追求这么高的命中你就会损失其他属性,命中建议100左右
其他爆和急速
新人欢迎积分0 阅读权限70积分8011精华0UID2022079帖子金钱15 威望1
Lv.7, 积分 8011, 距离下一级还需 1989 积分
UID2022079帖子威望1 多玩草469 草
原帖由 平安是金 于
01:59 发表
我怎么觉得熊MM说了和没说一样。我的小猎人是攻强、命中、破甲、爆击的顺序,到现在急速等级为0。
新人欢迎积分0 阅读权限50积分2476精华0UID179816帖子金钱794 威望0
Lv.5, 积分 2476, 距离下一级还需 24 积分
UID179816帖子威望0 多玩草46 草
先堆AP 和血量 现在强力党比较看重这两样。。
新人欢迎积分0 阅读权限50积分2271精华0UID2497447帖子金钱466 威望0
Lv.5, 积分 2271, 距离下一级还需 229 积分
UID2497447帖子威望0 多玩草46 草
回复 6# 的帖子
比较先注重这个...
新人欢迎积分0 阅读权限40积分533精华0UID2852107帖子金钱1 威望0
Lv.4, 积分 533, 距离下一级还需 467 积分
UID2852107帖子威望0 多玩草12 草
LZ什么装备啊
KLZ以下的话有紫的就带
高点就考虑下命中120左右吧.
然后看物品等级往上穿.
梦莹?风行者
新人欢迎积分0 阅读权限70积分8764精华0UID2157055帖子金钱3368 威望2
handsome girl
Lv.7, 积分 8764, 距离下一级还需 1236 积分
UID2157055帖子威望2 多玩草224 草
如果LZ刚刚转型PVE,那么急速暂时别堆,先堆好命中,AP,爆击。命中能达到142最好,上个100来是必须,置于爆,AP则是越高越好。天赋的话就用典型的40,21兽王输出天赋。
新人欢迎积分1 阅读权限50积分1924精华0UID1452720帖子金钱863 威望0
Lv.5, 积分 1924, 距离下一级还需 576 积分
UID1452720帖子威望0 多玩草107 草
原帖由 爆力熊熊 于
10:04 发表
我是觉得,如果LZ是刚到70的新手猎人的话,当然是应该先提升AP,AP是基础嘛。等AP到了一定水平比如1800左右,堆点命中,不要太高100+就够,然后是爆击或者破甲这些提升DPS的属性。至于急速当然也要,但我觉得如果没有一定AP和命中还有爆率的基础上提升急速意义不大,因为急速只是让你在单位时间***出更多的箭,而且我觉得急速有时如果堆的不好会破坏输出循环(用抽筋宏的情况下)
新人欢迎积分0 阅读权限60积分3244精华0UID1238036帖子金钱130 威望0
Lv.6, 积分 3244, 距离下一级还需 1756 积分
UID1238036帖子威望0 多玩草149 草
先把命中堆过百,然后再堆AP和暴,急速和破甲还是先别考虑的好。
别听熊M的命中142,她那小猎人命中肯定也没到那个高。
助人为乐奖
助人为乐奖
梦幻龙族萌之章
梦幻龙族萌之章
超级棒棒糖
超级棒棒糖
需要金钱:1100
Powered by
手机盒子客户端点击或扫描下载&LR 问题集
秒后自动跳转到登录页
(奖励5下载豆)
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/***等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
【51CTO技术公开课】
51CTO论坛原创&
中小型计算机机房安
网页特效库特效源码
VCP 5.0实验手册(最
计算机机房安全性指
【51CTO技术公开课】
上传时间:
技术分类:
资源评价:
(0位用户参与评价)
已被下载&4&次
LoadRunner常见问题及解决方法
本资料共包含以下附件:
LR 问题集.pdf
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
下载1187次
下载2049次
下载1026次
下载2560次
相关专题推荐
本专题主要收集了Auto CAD2010系列视
VideoStudio Pro X6 (*** X6)
汇集各大知名厂商设备、服务器VISIO图
Dreamweaver CS6是世界顶级软件厂商a
VBA80集,是兰色幻想耗时一年精心为大
2012年,让桌面连接你我! 51CTO将在
数字电子技术,西安电子科技大学视频
网络收集的中国科技大学龚升教授的《
收集个人认为较为经典的Selenium资料
收集个人认为教好的LoadRunner相关的
本周下载热点
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理

参考资料

 

随机推荐