【问题标题】:Regression model/ non-linear regression回归模型/非线性回归
【发布时间】:2019-10-09 17:33:33
【问题描述】:

数据集有时间戳和水流值,现在我想对数据进行建模,以便如果出现任何异常值(突然峰值或非常低的值),它应该发送一个错误通知。我已经尝试使用 ARIMA 模型来训练数据,因为它是时间序列,但它不会产生相关结果,这意味着我做错了。所以请指导我。谢谢。数据集的链接是:https://drive.google.com/open?id=1cFHSVpY0XBxsEayl2k1cK4_qWZ4PvDBd

from sklearn.linear_model import LinearRegression
features = [col for col in x2.columns if 'day' in col]
X = x2['median'].reshape(-1,1)
y = x2['time']
# create linear regression object 
reg = linear_model.LinearRegression()
# train the model using the training sets 
reg.fit(X, y) 
# regression coefficients 
print('Coefficients: \n', reg.coef_) 

我尝试使用每个时间间隔的所有水流值的中位数作为目标变量,但它也会产生负方差分数。

预期结果应该是给定时间的水流值,它表明它是否在正常范围内。

【问题讨论】:

  • 水流正常是什么意思?
  • 那么您是否使用过reg.predict() 并使用置信区间来检查正常值?
  • @AbhineetGupta 水流正常意味着它在一个范围之间。此处指定的值是正常范围。如果它达到峰值或过低,则被视为异常行为

标签: python machine-learning time-series arima non-linear-regression


【解决方案1】:

由于这个问题似乎是一个单一的特征问题,我建议从绘制相对于时间的中值水流开始。绘图的形状将告诉您如何最好地对问题进行建模。

【讨论】:

  • 感谢您的回复。我已经尝试过中间值,但我仍然不确定要使用什么模型。我尝试使用 ARIMA 模型,因为它是一个时间序列数据,但结果似乎不对,我很确定我做错了什么。如果您想查看它,我正在共享数据集的链接。谢谢。
猜你喜欢
  • 2019-03-27
  • 2015-04-06
  • 2017-06-17
  • 2021-01-11
  • 2012-09-17
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多