【问题标题】:Can linear regression be used to solve this?可以使用线性回归来解决这个问题吗?
【发布时间】:2020-01-14 09:05:45
【问题描述】:

我有一个如下所示的数据框:

    2015        2016        2017        2018        2019    
Jan 10991273    15761628    20702648    28836397    32462658
Feb 11910590    18407640    21867727    29592821    34120748
Mar 14720817    22353179    28631090    37017871    41731600
Apr 14240928    22383817    28698805    36719286    40352427
May 13999937    22562954    30105567    38492879    42443240
Jun 14618367    23485559    31294015    40219835    42243535
Jul 16954514    22816656    31235203    39633588    41259052
Aug 16384802    22418011    30851292    39153646    38739977
Sep 17546431    22387746    30207602    37501028    37273751
Oct 19069836    24623265    34346016    42694615    0
Nov 15864435    21323086    30132954    34682955    0
Dec 14728914    18795856    26990426    33064396    0

基本上我是在尝试预测那些零值。

import pandas as pd
import numpy as np

from sklearn.linear_model import LinearRegression


lm = LinearRegression()

Z = df[['2015', '2016', '2017', '2018']]

lm.fit(Z , df['2019'])

y_predict = lm.predict(Z)

print(y_predict)

输出是这样的:

array([31915988.349427  , 42517368.34239061, 42188302.01643895,
       40885793.12471981, 39423851.45561062, 43649973.20909937,
       29415292.34136068, 28706985.92182099, 21561488.69575803,
       24801192.93635751,  -508990.40716472,  6069742.01418072])

该输出是否代表对这些值的预测?

【问题讨论】:

    标签: python machine-learning linear-regression


    【解决方案1】:

    我会说它确实不是

    与 1 月至 9 月的早期值不一致是一个不好的迹象。

    11 月的较大负值表明存在问题。这些数字代表什么?负值在物理上是可能的吗?

    将函数视为黑匣子是错误的。

    我可以用不同的方式查看这些数据:

    1. 每月一次拟合,其中年份是输入值。
    2. 每年一次拟合,总共 12 个值。
    3. 以月、年为参数的 2D 表面。

    你在做什么?你假设什么顺序适合?

    您应该能够计算 SSE 并找出不同方案的拟合优度。

    我会敦促您在尝试拟合任何内容之前绘制数据并查看它。更好地理解数据。

    【讨论】:

    • 唯一不错的答案。谢谢。
    猜你喜欢
    • 2011-07-16
    • 1970-01-01
    • 2020-04-25
    • 2012-02-07
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    相关资源
    最近更新 更多