【发布时间】:2015-05-27 17:23:19
【问题描述】:
我目前有一个大型数据集,我需要为此计算分段回归(或以某种类似的方式拟合分段线性函数)。但是,我既有庞大的数据集,也有非常多的片段。
目前我有以下方法:
- 设 si 为段 i 的结尾
- 令 (xi,yi) 表示第 i 个数据点
假设数据点 xk 位于段 j 内,那么我可以从 xk 创建一个向量作为
(s1,s2-s1,s3-s2,...,xk-sj-1,0,0,...)
要对数据点进行分段回归,我可以对这些向量中的每一个进行正常的线性回归。
但是,我目前的估计表明,如果我以这种方式定义问题,我将获得大约 600.000 个向量,每个向量包含大约 2.000 个组件。我还没有进行基准测试,但我认为我的计算机无法在任何可接受的时间内计算出如此大的回归问题。
有没有更好的方法来计算这种回归问题?一个想法是可能使用某种分层方法,即通过组合多个段来计算一个回归问题,以便我可以确定该集合的起点和终点。然后为这组分段计算一个单独的分段回归。但是,我不知道如何计算这组段的回归,以便端点匹配(我只能通过固定截距来匹配起点或终点,但不能同时匹配两者)。
我的另一个想法是计算每个段的单独回归,然后只使用该段的斜率。但是使用这种方法,错误可能会开始累积,我无法控制这种错误累积。
还有一个想法是我可以对每个段进行单独的回归,但将截距固定到前一个段的端点。但是,我仍然不确定,如果我可以通过这种方式获得某种错误累积。
澄清
不确定问题的其余部分是否清楚这一点。我知道这些片段的开始和结束位置。最重要的部分是,我必须让每条线段在线段边界与下一条线段相交。
编辑
也许另一个事实可以提供帮助。所有点都有不同的 x 值。
【问题讨论】:
-
每段平均和最少有多少分?
-
每个段应该有300分左右。再想一想这个问题,实际上可能有一些段没有任何点。在我考虑设置分段以便始终在其中包含一些点之前,但我刚刚注意到,我可能会加入一些可能具有不同斜率的部分。
标签: algorithm bigdata regression modeling