生猪价格预测及决策讨论
前一篇博客讨论了生猪价格的一些影响因素以及价格预测的模型表现,基于GA-BP神经网络的模型极容易出现欠拟合的现象:在生猪价格出现“暴涨”或“暴跌”的现象时。模型的预测结果欠佳。因此,本文将继续探讨基于SVM模型的生猪价格预测策略的建构和表现,并且将谈论基于价格预测的企业决策思路。(基于神经网络的价格回归及其分析:)
基于SVM的生猪价格预测模型
本例采用语言库中的SVM模型,数据还是基于温氏公开市场价来预测,我们把模型的输入量定为前6日生猪价格的历史数据;同时前600组数据作为模型的训练集,后257组数据作为测试集。数据来源见前述文章。
构建模型:
from sklearn import svm
import matplotlib.pyplot as plt
import numpy as np
from numpy import *
#读取数据集
f = open("input.txt",'r')
lines = f.readlines()
number_A = len(lines)
P=zeros((number_A,8),dtype=float)
A_ROW = 0
for line in lines:list = line.strip('\n').split(' ')P[A_ROW:] = list[0:8]A_ROW +=1
print(P)
#划分训练集及测试集
P_train = P[0:600,0:6]
value_train = P[0:600,7]
P_test = P[601:,0:6]
value_test = P[601:,7]
#调用模型、训练及预测
classifier = svm.SVR()
classifier.fit(P_train,value_train)
value_test_pf = classifier.predict(P_test)
2.模型结果
调用库对预测结果进行绘图展示:
#绘图
x = range(len (value_test))
plt.plot(x,value_test,'r-o',label='Real price')
plt.plot(x,value_test_pf,'b-*',label='Predict price')
plt.legend()
plt.show()#模型表现
value = np.array([value_test,value_test_pf])
r = np.corrcoef(value)
print(r)
下图即为本次模型测试的结果:
结果讨论:
3.基于价格预测与波动的企业决策探讨
如果模型可以准确预测未来多天的生猪价格,其实预测并不是最终的目的,所有的数据分析均要有利于企业的决策相关,才有意义,因此本节将探讨生猪价格预测基础之上企业应做的决策调整有哪些方面: