利用灰色预测模型预测房地产价格的python代码
时间: 2023-12-20 18:22:56 浏览: 150
灰色预测,灰色预测模型,Python
5星 · 资源好评率100%
以下是利用灰色预测模型预测房地产价格的Python代码示例:
```python
import numpy as np
from matplotlib import pyplot as plt
# 输入数据,第一列为年份,第二列为房地产价格
data = np.array([[2010, 100], [2011, 120], [2012, 150], [2013, 180], [2014, 200], [2015, 220], [2016, 240], [2017, 260]])
# 灰色预测模型
def GM11(x0):
# 累加生成函数
def cumulate(data):
return np.array([np.sum(data[:i+1]) for i in range(data.size)])
# 紧邻均值生成函数
def mean_adjacent(data):
return np.array([(data[i]+data[i+1])/2 for i in range(data.size-1)])
# 灰色预测
x1 = cumulate(x0)
z1 = mean_adjacent(x1)
b = np.append(-0.5*(z1+x0[0:-1]), [[1]])
y = np.dot(np.linalg.inv(b.reshape((b.size, 1))), x0).reshape((x0.size, 1))
C = y[0]
G = np.append(-y[1:], 1)
predict = (x0-C)/G
return predict, C, G
# 预测未来3年的房地产价格
x0 = data[:, 1]
predict, C, G = GM11(x0)
future_years = np.array([2018, 2019, 2020])
future_predict = np.zeros((future_years.size, ))
for i in range(future_years.size):
future_predict[i] = (C-G)*np.exp(-G*(i+x0.size))+G
print("未来三年的房地产价格预测为:", future_predict)
# 绘制原始数据和预测数据的图像
plt.plot(data[:, 0], data[:, 1], 'b-', label='原始数据')
plt.plot(np.append(data[:, 0], future_years), np.append(data[:, 1], future_predict), 'r-', label='预测数据')
plt.title('灰色预测模型预测房地产价格')
plt.xlabel('年份')
plt.ylabel('房地产价格')
plt.legend()
plt.show()
```
在这个例子中,我们使用了一个简单的房地产价格数据集,其中第一列是年份,第二列是房地产价格。我们首先定义了一个灰色预测模型函数 `GM11`,然后使用这个函数预测未来3年的房地产价格,并绘制了原始数据和预测数据的图像。
阅读全文