python - 如何使用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
在终端中使用6
as 中的值输出predict()
:
0 : 95.61300163132137
1 : 94.86531266992931
2 : 94.11762370853725
3 : 93.36993474714518
4 : 92.62224578575312
5 : 91.87455682436106
Matplotlib 输出:
解决方案
推荐阅读
- vba - 如何将单元格值相加到小数点后两位
- reactjs - react-alert-template-basic 中的 i18n
- adobe-illustrator - 如何在 Illustrator 中创建数百个具有不同值的标签副本?
- python - 多个实例更新elasticsearch时如何保证消息顺序?
- java - 将活动状态保存到名称/或文件
- javascript - 如何通过数组传入的 ID 选择剑道网格项目?
- javascript - Android WebView - 活动开始后第一次点击/触摸被忽略
- c++ - 对类模板成员显式特化的约束
- python - 使用 Tensorflow 张量时 Keras 和图形断开连接的问题
- java - 除了使用循环之外,有没有办法简化这种情况?