Python 灰色预测模型代码详解 - grey_model(X) 函数实现
这段代码定义了一个灰色预测模型函数 grey_model(X),它的输入是一个一维数组 X。
-
n = len(X):获取数组X的长度,即数据点的个数。 -
X1 = np.cumsum(X):对数组X进行累加求和,得到累加序列X1。 -
Z = np.zeros(n - 1):创建一个长度为n-1的全零数组Z。 -
for i in range(1, n):遍历从1到n-1的范围。a.
Z[i - 1] = -0.5 * (X1[i] + X1[i - 1]):计算Z数组的第i-1个元素,根据累加序列X1的相邻两个元素的平均值乘以-0.5。 -
B = np.vstack((np.ones(n - 1), -0.5 * np.ones(n - 1))).T:创建一个矩阵B,其中第一列是全为1的列向量,第二列是全为-0.5的列向量。 -
Y = X[1:]:将数组X的第一个元素去除,得到数组Y。 -
a, b = np.linalg.lstsq(B, Y, rcond=None)[0]:使用最小二乘法拟合矩阵B和数组Y,得到拟合系数a和b。 -
X_pred = np.zeros(n):创建一个长度为n的全零数组X_pred。 -
X_pred[0] = X[0]:将数组X的第一个元素赋值给X_pred的第一个元素。 -
for i in range(1, n):遍历从1到n-1的范围。a.
X_pred[i] = (X_pred[i - 1] - b / a) * np.exp(-a) + b / a:根据灰色预测模型的公式,依次计算预测值X_pred的每个元素。 -
return X_pred:返回预测结果数组X_pred。
这个灰色预测模型可以根据给定的数据序列 X 进行灰色预测,得到一组预测结果。
原文地址: http://www.cveoy.top/t/topic/n3E 著作权归作者所有。请勿转载和采集!