首页 > 解决方案 > 如何使用python获得超出线性回归结果的预测

问题描述

我试图显示超出线性回归结果的天数(预测)。我已经设法使用matplotlib并创建了一个predict()函数来显示基于天数的值,但数据输出错误,高于初始输出。由于直线向下瞄准,较高的值为85.15

import area as area
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors
from sklearn import linear_model

# date = x, cases = y
# 1- Retrieve the data
df = pd.read_csv("cases-challenge.csv")
x = df.days

y = df.cases
# 2- Iterate the data

# get the mean of x and y
xmean = x.mean()
ymean = y.mean()

df['diffx'] = xmean - x
df['diffx_squared'] = df.diffx ** 2
SSxx = df.diffx_squared.sum()

df['diffy'] = ymean - y
SSxy = (df.diffx * df.diffy).sum()

m = SSxx / SSxy
b = ymean - m * xmean


def predict(value):
    # value = x
    for i in range(value):
        # straight line = m*x+y
       print(i, ':', m * i + b)


predict(6)

plt.scatter(x, y)
plt.plot(x, m*x+b, 'r')
plt.show()

输入cases-challenge.csv

days, cases
18,   85.15
19,   83.5
20,   82.5
21,   80.73
22,   78.77
23,   77.86
24,   75.96
25,   75.85
26,   74.79
27,   72.79

在终端中使用6as 中的值输出predict()

0 : 95.61300163132137
1 : 94.86531266992931
2 : 94.11762370853725
3 : 93.36993474714518
4 : 92.62224578575312
5 : 91.87455682436106

Matplotlib 输出:

标签: pythonpandas

解决方案


推荐阅读