一亩三分地

 找回密码 注册账号

扫描二维码登录本站

BBS
指尖新闻
Offer多多
Salarytics
Learn
Who's Hiring?
疫情动态
Instant
客户端
微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
Youtube频道
留学博客
关于我们
查看: 1875|回复: 45
收起左侧

如何跳出线性模型的能力圈?

[复制链接] |试试Instant~ |数据科学
我的人缘0

分享帖子到朋友圈
wx2123 | 显示全部楼层 |阅读模式
本楼: 👍   100% (5)
 
 
0% (0)   👎
全局: 👍   88% (31)
 
 
11% (4)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
听了个讲座,看了点东西。简单写写,欢迎拍砖!

一般在数据分析的时候,我们总是喜欢用到线性模型。这倒不是说线性模型有多好,而是因为它简单。

举个例子,两个城市相距300公里,如果开车速度为50公里/小时,那就需要6个小时到达。如果开车速度为100公里/小时,那就需要3个小时到达。按这个线性模型,如果每小时开150公里,那就2个小时。如果车速为300公里,那么1个小时就到了。

这样的模型显然有问题!如果你的车速为150公里/小时,那么极有可能会被警察抓住。不过在罚款以后,还是可以到达目的地。但是如果你的车速为300公里/小时,那么极有可能根本到不了目的地就出事故了。

可见,线性模型未必正确。只是由于复杂的模型自己学起来费劲,给别人讲得时候更费劲,那就只能退而求其次,说一下群众喜闻乐见的线性模型。这样我们讲起来轻松,听众听起来也明白。

但是在使用线性模型预测时,我们会发现它有很多问题。这是因为模型的线性假设本身就不一定成立。因此,这样的模型精度不会太高。为了解决这个问题,我们可以用岭回归(ridge regression), lasso, 主成分回归(principal component regression)等方法。但是,这样做也有问题。那就是我们依旧是在做线性模型的裱糊匠,治标不治本。

因此,我们要跳出线性模型的能力圈。并且在自己可以解释模型的能力圈内,尽量放松线性模型的假设。比方说,我们可以用多元回归模型(Polynomial regression),分步函数(Step function)进行分析。或者用一些复杂的模型分析,例如样条(Regression splines)、局部回归(local regression)以及广义相加模型(generalized additive models)。

1.        多元回归。多元回归就是在线性回归的基础上,增加一些自变量,提高模型的解释能力。比方说,在立方回归(Cubic regression)中,我们可以使用X,X平方和X立方作为自变量。这就是一种简单拟合非线性曲线的办法。. 1point3acres

2.        分步函数。我们可以把数据分成若干部分,产生一个类别型变量,然后在进行回归。简单地讲,就是用分段函数的方法进行回归。

3.        回归样条。多元回归和分步函数有一些问题,例如当多项式的幂比较高时,很小的变化都会被很大的放大。而样条回归更加灵活,它把区域X被分成了K个区域。然后在每个区域中用多项式拟合曲线。通过增加限定条件,使得多项式每个在节点(Knot)处平滑连接。只要我们能划分出足够多的区域,那么就可以拟合出十分灵活的曲线。

4.        平滑样条(Smoothing splines)。这个方法和回归样条类似,只是产生的原因不同。在平滑惩罚(Smoothness penalty)的限制条件下,最小化残差和的平方,就会产生平滑样条。

5.        局部回归。这方法和样条法类似,但也有区别。那就是所分的区域可以有重叠。由于重叠,就可以保证曲线的平滑。

6.        广义相加模型。这个方法是以上方法在有不止一个自变量时候的延伸。
. 1point3acres
接下来我会展开介绍这些方法,敬请期待!

评分

参与人数 8大米 +11 收起 理由
754490227 + 1 给你点个赞!
jessieeeeee + 1 谢谢分享!
Crown117 + 1 赞一个
JLE + 1 给你点个赞!
你就是我的唯e + 2 很有用的信息!
lllllarissa + 2 很有用的信息!
dajiangdongqu + 1 很有用的信息!
lyq123 + 2 给你点个赞!

查看全部评分


上一篇:data validation的意思
下一篇:找FB DS analytics 面试小伙伴

本帖被以下淘专辑推荐:

我的人缘0
BobbyBear 2020-6-26 04:22:44 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   96% (24)
 
 
4% (1)    👎
在课本上介绍的linear regression或者GLM在实际的应用中其实是很不好的,至少要ridge,LASSO或者elastic net。在实际的建模问题里,基本上数据都有几十甚至几百几千的predictor,linear regression的模型假设早就违反到九霄云外了。
回复

使用道具 举报

我的人缘0
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   99% (421)
 
 
0% (1)    👎
但是实际上不仅仅要考虑模型的性能,可解释性以及工程可行性也是很重要的。
假如模型的result需要帮公司做很重要的决策,很难去用黑箱模型。
你能想象在sql server里跑xgboost嘛。但是很多公司datawarehouse就是只有sql server。
我觉得传统的模型还是很有学习的必要,应用的场景的。支持楼主。
回复

使用道具 举报

我的人缘0
 楼主| wx2123 2020-6-28 11:10:33 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   88% (31)
 
 
11% (4)    👎
dajiangdongqu 发表于 2020-6-27 21:48
感谢楼主提供的视频 。 我对curve fitting的实际作用一直持保留意见。如果在学术圈, 从做研究的角度讲,学 ...

熟读模型300个,不是DS也是DS!
哈哈
回复

使用道具 举报

我的人缘0
dajiangdongqu 2020-6-28 10:48:57 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (114)
 
 
0% (0)    👎
感谢楼主提供的视频 。 我对curve fitting的实际作用一直持保留意见。如果在学术圈, 从做研究的角度讲,学习各种奇异函数的奇异性质去无限逼近各种曲线,无可非议。 有点类似人类攀登珠穆朗玛峰,挑战人体极限的意思,但并没有实际经济意义,极限运动未必会使你更健康。
但是在实际工作中,做项目无非是两个目的:
1.预测。
2.理解。
而不是挑战极限.
就拿covid来说,我们要预测/理解死亡和年龄,种族,性别,基础病得关系。找(广义的)线性关系是最重要的,如果用奇怪的函数去逼近实际情况,尽管可以100% match, 但医生很难相信,大众也很难理解。
再比如,政府要收你的税,虽然复杂,但也可以认为是局部线性的(各种deductible, tax bracket)。 很难想象政府给出一个你从没见过的函数,然后按这个函数收你的税,难以让纳税人信服啊。

. check 1point3acres for more.这段视频给了一个全球变暖和湖水温度温度的研究, 但全球变暖你知道是个备受争议的话题,得出各种结论不足为怪。

补充内容 (2020-6-30 07:04):
多谢ryan, 大米已收到 。 学术圈和公司圈关心的问题完全不一样 。 学术圈把简单的东西搞复杂是为了折腾alpha,β, gamma; 公司里面把简单的东西搞复杂是为了政治; 世上简单的东西往往work,复杂的往往不work

评分

参与人数 1大米 +1 收起 理由
ryanmagic + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0
BobbyBear 2020-6-27 02:45:43 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   96% (24)
 
 
4% (1)    👎
hateT 发表于 2020-6-26 11:41
能解释一下什么叫在SQL Server里面跑XGBoost吗? 正常情况下数据的清洗和处理和模型建模应该是解耦的吧, ...

线性模型最后只需要输出几个coefficients就完了,把这些参数hard coded到sql query里面,这样sql server就可以当production engine了。XGBoost的模型自由度显然远高于linear model,没法用这个办法用sql server作production engine。XGBoost我也不是特别熟,我主要是用H2O。在H2O里可以把模型保存为jar, 然后作为Hive里的UDF运行。
回复

使用道具 举报

我的人缘0
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   99% (421)
 
 
0% (1)    👎
wx2123 发表于 2020-06-26 08:17:28
线性模型可能和牛顿假设的匀速直线运动类似,虽然实际情况不可能这样,但是群众容易理解啊!
不太确定我理解了老哥想表达什么,
但是我觉得模型永远是对实际情况的逼近。
也许某个模型对某种情况模拟的更好一点,但是当人们需要依赖模型去做决定的时候,能否理解模型的结果就变得重要起来了。
回到你的例子,实际情况确实不可能这样,但是人们也不需要一个100%的运动模型,大部分时候知道匀速直线运动就可以计算从A到B需要多久时间了。
回复

使用道具 举报

我的人缘0
 楼主| wx2123 2020-6-26 10:00:52 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   88% (31)
 
 
11% (4)    👎
写了点polynomial regression的东西,但是这里好像不能贴公式。。。。
回复

使用道具 举报

我的人缘0
dajiangdongqu 2020-6-25 09:41:19 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (114)
 
 
0% (0)    👎
和应用领域有关。 有些情况用回归并不是搞预测,比如 带不带口罩和生病情况。就想知道有没有显著性。
给楼主加了米。
回复

使用道具 举报

我的人缘0
 楼主| wx2123 2020-6-24 23:35:41 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   88% (31)
 
 
11% (4)    👎
更正一下:Polynomial regression应该是多项式回归,文中不小心写成了多元回归。
回复

使用道具 举报

我的人缘0
hateT 2020-6-26 11:41:09 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (52)
 
 
0% (0)    👎
halfpipe 发表于 2020-6-26 11:05
但是实际上不仅仅要考虑模型的性能,可解释性以及工程可行性也是很重要的。
假如模型的result需要帮公司做 ...

能解释一下什么叫在SQL Server里面跑XGBoost吗? 正常情况下数据的清洗和处理和模型建模应该是解耦的吧,无论是那种Database在数据读取完成之后都是可以接任意模型的。
回复

使用道具 举报

我的人缘0
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   99% (421)
 
 
0% (1)    👎
hateT 发表于 2020-06-25 20:41:09
能解释一下什么叫在SQL Server里面跑XGBoost吗? 正常情况下数据的清洗和处理和模型建模应该是解耦的吧,无论是那种Database在数据读取完成之后都是可以接任意模型的。
理想情况肯定是这样,但是实际上每个公司的技术栈不一样,尤其是传统企业,完全rebuild一个 cost有很大。反正挺蛋疼的。
回复

使用道具 举报

我的人缘0
 楼主| wx2123 2020-6-26 23:17:28 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   88% (31)
 
 
11% (4)    👎
halfpipe 发表于 2020-6-25 22:05
但是实际上不仅仅要考虑模型的性能,可解释性以及工程可行性也是很重要的。
假如模型的result需要帮公司做 ...

线性模型可能和牛顿假设的匀速直线运动类似,虽然实际情况不可能这样,但是群众容易理解啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

GMT+8, 2020-7-12 06:06

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表