数据挖掘的核心算法之一——回归
回归是一个广义的概念,包括用一组变量来预测另一个变量的基本概念。在白话文里,几个事物根据相关程度来预测另一个事物的概率。最简单的问题是线性二元问题(简单线性)。比如我老婆下午买了个包,我没买,结果就是我肯定没吃晚饭。再复杂一点就是多变量(即多元线性),这里有一点需要注意,因为我之前犯了这个错误,就是认为预测的变量越多越好,做模型的时候总想选取几十个指标来预测,但是你知道,一方面每增加一个变量就相当于增加了这个变量中的误差,变相放大了整体误差, 尤其是当自变量选择不当时,另一方面,当两个自变量高度相关但不独立时,两个指标相当于对结果的影响翻倍。 )还是上面的例子,如果婆婆来了,那么老婆做饭的概率很大;如果再出事,如果我公公也来,那我老婆肯定会做饭;为什么会有这些判断?因为这些以前发生过很多次,所以我可以根据这些东西预测老婆会不会做晚饭。
当然,大数据时代的问题是肉眼看不到的,否则有海量计算也没用,所以除了以上两种回归,我们还经常用多项式回归,即模型之间的关系是n阶多项式;逻辑回归(类似的方法有决策树),即结果是分类变量的预测;泊松回归,即结果变量代表频率;非线性回归,时间序列回归,自回归回归等等太多了。这里主要说几个常用的比较好解释的模型(所有模型都要注意一个问题,就是要解释好,不管是参数选择还是变量选择还是结果,因为模型建立后,最后要用到业务人员,老板会看到结果,所以你要解释清楚。如果你说结果是这样,我也不知道该问什么,所以升职加薪基本无望)。比如你发现日照时间和某地的葡萄销量成正比,你可能要解释为什么会有正比。进一步统计表明,日照时间与葡萄含糖量有关,即日照时间长与产量有关,日照时间长,产量大,价格自然低。这样一来,便宜又好吃的葡萄销量肯定很大。我们再举一个例子。如果一个产油区的咖啡销量增加,国际油价就会下跌。两者之间是有关系的。你不仅要跟领导说两者有关联,还要搞清楚为什么有关联。咖啡是提高工人能量的主要饮料。咖啡销量增加,发现工人工作强度增加,石油运输出口增加,油价下跌和咖啡销量的关系就出来了(举个简单的例子,不用想太多,参考基于遥感信息得到的一艘船。
回归的利器——最小二乘法,被牛逼的数学家高斯使用(另一位法国数学家说是他先创立的,但是没有办法,是谁让高斯出名的),这种方法主要是根据样本数据找到样本和预测之间的关系,从而使预测和真实值之间的误差和最小化;和上面说的我老婆做晚饭的例子差不多,但是我的例子只是从不确定性的角度讲了大概率,但是概率是多少呢?这个关系是用最小二乘法写出来的。这里不谈最小二乘法和公式。用工具就好。基本上所有的数据分析工具都提供这种方法的功能,主要是告诉你之前的一个误区。最小二乘法在任何情况下都能解出方程。因为这个方法只是最小化误差和,即使是很大的误差,只要是里面最小的误差和,都是这个方法的结果。至此,大家应该知道我想说什么了,即使自变量和因变量无关,这个方法也会算出一个结果,所以我主要给大家讲讲最小二乘法对数据集的要求:
1,正态性:对于一个固定的自变量,因变量是正态的,这意味着对于同一个答案,大部分原因是集中的;为了建立回归模型,我们使用大量的Y~X映射样本进行回归。如果Y的样本很乱,就无法回归。
2.独立性:每个样本的Y相互独立。这个很好理解。答案和答案之间不能有任何联系,就像抛硬币一样。如果第一次是反面,让你预测扔两次的概率,那就没必要预测结果了。
3.线性:即X和Y是相关的。其实世间万物都是有联系的。蝴蝶和龙卷风(或海啸)是有联系的,但只是直接联系或间接联系。这里的相关性是指自变量和因变量之间的直接相关性。
4.同方差:因变量的方差不随自变量的水平而变化。方差我在描述性统计分析中写过,它代表数据集的可变性,所以这里的要求是结果的可变性是恒定的。比如,我的头在旋转,我想不出一个例子。画一张图来说明它。(我们希望每个自变量对应的结果在一个尽可能小的范围内。)
我们用回归的方法建模,要尽量消除以上几点的影响。下面详细说说简单的回归过程(其他的其实都差不多,所以可以把这个说清楚,其他的也差不多):
一、找指标,找到你要预测的变量的相关指标(第一步应该是找到你要预测的变量是什么。这个话题有点大,涉及到你的经营目标,老板的目标,实现这个目标最关键的经营指标等等。我们说的是下面的话题,这里先把方法说清楚),找到相关指标。标准的做法是业务专家产生一些指标,我们正在测试这些指标中哪些是高度相关的。但是我经历过的大部分商业人士在建模初期都是不靠谱的(真的不靠谱,没想法,没想法,没主见),所以我的做法是把商业目的的所有相关指标(有时候几百个),然后运行一个相关性分析,再经过一个主成分分析,过滤的差不多了,再给商业专家看。这时候他们会有想法(必须先激活某个东西),会给一些。预测变量是最重要的,直接关系到你的结果和产出,所以这是一个多轮优化的过程。
第二,找数据,这个不多说了,要么按照时间轴(我觉得是比较好的方式,大部分都是有规律的),要么按照横截面,也就是说横截面的不同点可能波动很大,要小心;同时,基础数据处理应包括极值处理和空值处理。
再次,建立回归模型,这是最简单的一步。所有的挖掘工具都提供了各种回归方法,你的任务就是告诉计算机你准备了什么。
第四,测试和修改,我们用工具计算出来的模型有各种假设检验系数,你可以立刻看到你的模型的好坏,同时进行修改和优化。这里主要涉及一个精度比,表示预测部分真正正确的比例;另一个是召回率,代表所有真正正确的例子被预测到的概率;一般来说,精度和召回率是成反比的,所以我们需要找到一个平衡点。
第五,解释,使用,这是见证奇迹的时刻。见证之前通常会有很长时间。这个时候就是你向老板或者客户解释的时候了,解释为什么会有这些变数,解释我们为什么选择这个平衡点(因为业务实力不足或者其他原因),为什么做了这么久的东西这么差(这很尴尬)等等。
先说这么多回归,下一轮再说主成分分析和相关性分析,再来说说数据挖掘的另一利器——聚类。