模型到底在做什么?

离职距今也有三周的时间了,在这么一个市场环境很差的情况下裸辞是一件挺不可思议的事情,但是内心告诉了自己应该离开了,那么便离开吧。

做了几年的python开发,数据挖掘,评分卡建模的工作,慢慢的确觉得有点没劲,没劲的原因是什么却一直没有细想。这三周的面试和学习的过程里倒是慢慢给了我一些新的认知,也让懒惰了很久的大脑开始活跃起来。

从个人的感觉来看,机器学习是从16年开始逐步火起来的,也是从那个时候开始慢慢接触了一些理论的东西,逻辑回归,聚类,knn,svm,贝叶斯等,再到后来的神经网络,多少有点做不动了,也是懒吧。

机器学习到底是做什么的呢?不知道有多少人认真思考过这个问题。

从实践的角度说,给你一组数据,一列标签,把它给分类好。不用试用熵,还是gini系数还是什么,让损失函数小一点,让ks值大一点。过程里,考虑一下分桶WOE,考虑一下过拟合,欠拟合。考虑一下用线性模型还是树模型。反正一个个试吧,试完得到一个满意的分值就ok了。

所以,我们是在做什么呢?你从这些环节里有弄明白自己在做什么了吗?为什么要分桶?为什么要正则?什么是过拟合和欠拟合?让你比较不同模型的时候,特别是面试的时候,你真的明白不同模型的优缺点是什么吗?不同模型在拟合问题上是可以比较的吗?

大家有没有意识到一个问题,其实,机器学习(我的领域比较窄,主要是信贷方面。)其实只有两个问题,或者说,其实只有一个问题。这个问题就是:我们要解决的是线性问题,还是非线性问题?

一个模型建立出来,就拿kaggle的比赛而言吧。特征怎么也得10个左右吧,特征里面有枚举值,有连续值。其实,你还可以换个说法,一种是线性值,一种是非线性值。一种则是断断续续的,非光滑的;另一种特征的分布是有一条光滑的曲线去描述趋势的。线性特征与非线性特征往往是混在一起使用的,所以从实质上来说,我们这n个特征,构成的空间也是一个非线性的空间。我们要求解的问题,本身也是一个划分非线性空间的问题。

这里,我举个例子。

这样的图,大家应该挺熟悉的,三维空间中的连续光滑曲面。在使用逻辑回归的情况下想得到这样的曲面可太容易了。这其实可以算作是线性问题的求解。

再看下面,dbscan的一个例子。

 在这个例子里,你想用线性机器学习算法来解决就不太可能了。简单的来说,如果问你,假设,圈内是一个类,圈外是一个类,你要用逻辑回归来解决分类问题还是SVM啊?必然是SVM了。

 SVM的核函数以前有精力的时候也研究过,但是现在想想,还是太难了。但是它的核心还是让人印象深刻的:“解空间的变换“。什么叫解空间的变换?不太好举例子,你就想着,有一块饼,上面的花纹乱七八糟的,但是通过核函数变换后,成了一个球,或者一个其他的什么N维形状,它便变得有规律起来。可能有点抽象,不懂得可以看下SVM。

你可以认为,SVM是把线性空间从某种程度上来说,重组了,变成了一个非线性空间了。

而这也是WOE分桶对连续变量所做的事情。

WOE分桶的原理是按照区间坏账率,重新给原始数值段赋予数值。

对于连续值,出现这样的坏账分布是常见的,但是你如果拿原始特征值来计算显然是有问题的。不过当你执行完woe后,其实你变把变量分布改变了,从1,2,3,4变为了4,3,1,2,很神奇的是,4,3,1,2的趋势居然是线性的。为什么逻辑回归要做分桶woe?现在明白一些了吗?让非线性的变量输入到线性的模型里面没法计算,所以转成线性的不就好了。

woe就是在把非线性的问题空间,尽可能的转换为线性的空间来提供给模型。但是,显然,这种转换也是有能力上限的。dbscan的那个图形你就很难转换,维度再提升一点就更难了。

这个时候决策树就来了!决策树可不就是非线性求解的过程了嘛。

决策树实际上是天然贴合非线性问题求解的,所以基本来说,多做一些模型尝试后,总会发现,决策树就是比逻辑回归好用,xgbosst也比adboost好用。用非线性方法解决非线性问题肯定比用线性方法解决非线性问题要好的。包括神经网络不也是如此。

那么过拟合和欠拟合又是怎么一回事?

这个问题其实也要分开看的,线性模型的过拟合和非线性模型的过拟合不是一个问题。

线性模型的过拟合分两类,一类是,解空间本身是接近光滑的曲面,你的解曲面几乎和它重合,变化趋势一模一样(这是线性模型拟合线性空间能力太强了)。另一类是,解空间是极其不光滑的,你依赖于已有特征构造出来一个局限于某块区域的曲面,忽略掉其余区域(score损失小),(这其实可以认为是线性模型拟合非线性空间能力较弱造成的)。

决策树的过拟合是什么?是非光滑空间,决策树分的太细了,太敏感了,把人家搞成光滑曲面了。

所以,模型在做什么呢?选什么模型呢?

1.看一下你要解的问题是更加趋向于线性空间,光滑曲面还是非线性空间,非光滑曲面。然后去选择算法。

2.数值的处理针对选择的非线性算法让非光滑的变得光滑一点,过于线性算法,让光滑的稍微不光滑一点。

以上的内容仅供大家参考,如果有不同想法也欢迎交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值