从数据集中提取线性趋势

数据挖掘 线性回归 机器学习模型 模式识别
2022-02-13 11:45:35

考虑一个传感器测量值f随温度T和被测流体的特性而变化。温度每天都在变化,可以假设流体特性的变化频率较低。如果我在 Excel 中交叉绘制数据,然后通过眼睛,我可以很容易地通过一些点画一条直线并水平平移该线,并且“瞧”同一条线适合其他图簇。因此,如果该线具有斜率 -1/a,那么我需要做的不是绘制f与时间的关系,而是实际绘制f + a T与时间的关系,我得到一条曲线,它不依赖于温度,现在表示流体特性。凉爽的。

所以我的问题是如何自动提取. 我今天的计划是将目标函数设置为时间序列导数的 L1 范数,并在a上最小化,因为这可能会给出一个包含许多点的时间序列,导数几乎为零,并且在它决定流体发生变化的地方有一些跳跃不连续性 [而不是将所有东西都抹掉的L2]。

但我的想法是,这种特征提取可能已经在某处的一些教科书中有所介绍,而我真正缺少的是更好的词汇来查找它:-)

有什么建议么?谢谢

在此处输入图像描述

2个回答

好的,我对此很满意。我将“神经元”定义为 2/pi arctan(lambda (date-date0)),并且有大约 99 个神经元,且 date0 稳步增加。如果我将任何时间序列写成这些神经元的总和,那么这会有效地创建对该时间序列的平滑、分段常数近似,这就是我所追求的。所以我向这些神经元添加了一个额外的“神经元”,它是测量温度数据,给我 100 个神经元,然后进行简单的 L2 优化以找到整个 shebang 的最佳拟合。适合数据

如果您可以将属性视为离散变量(也称为“虚拟变量”、“因子”、“单热”),则可以使用线性回归来分解效果。即。您估计每个属性的“直线”。

# Data
df = data.frame(y=c(1,2,3,5,6, 10,12,13,15,16),prop=c(0,0,0,0,0,1,1,1,1,1),temp=c(5,6,7,8,9,6,7,8,9,10))

# Plot data
plot(df$temp[df$prop==1], df$y[df$prop==1],xlim=c(4,10),ylim=c(0,16),xlab="temp",ylab="y")
lines(df$temp[df$prop==1], df$y[df$prop==1])
lines(df$temp[df$prop==0], df$y[df$prop==0], col="blue")

在此处输入图像描述

# Linear regression
reg = lm(y~temp+prop,data=df)
summary(reg)


Residuals:
   Min     1Q Median     3Q    Max 
  -0.4   -0.2    0.0    0.2    0.4 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -6.40000    0.55032  -11.63 7.85e-06 ***
temp         1.40000    0.07559   18.52 3.32e-07 ***
prop         8.40000    0.22678   37.04 2.72e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3381 on 7 degrees of freedom
Multiple R-squared:  0.9971,    Adjusted R-squared:  0.9963 
F-statistic:  1222 on 2 and 7 DF,  p-value: 1.245e-09


# Prediction for "prop" 1, 0
pred0 = predict(reg,newdata=df[df$prop==0,])
pred1 = predict(reg,newdata=df[df$prop==1,])

# Add prediction to plot
lines(df$temp[df$prop==1], pred1, col="red")
lines(df$temp[df$prop==0], pred0, col="purple")

在此处输入图像描述

所以你得到一个“预测线”每个prop.

为此prop=0将计算为6.4+1.4temp+08.4

因为prop=1这将被计算为6.4+1.4temp+18.4.

本质上:相同的截距和斜率。只有行的“niveau”根据prop指标移动。