from sklearn.svm import LinearSVR import matplotlib.pyplot as plt data = pd.read_excel('../tmp/new_reg_data_GM11.xls') # 读取数据 data = data.set_index('Unnamed: 0') data = data.drop(index ='模型精度') feature = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13'] #特征所在列 data_train = data.loc[range(1994, 2014)].copy() #取2014年前的数据建模 data_mean = data_train.mean() data_std = data_train.std() data_train = (data_train - data_mean) / data_std #数据标准化 x_train = data_train[feature].as_matrix() #特征数据 y_train = data_train['y'].as_matrix() #标签数据 linearsvr = LinearSVR(random_state=123) #调用LinearSVR()函数 linearsvr.fit(x_train, y_train) #预测2014 年和2015 年的财政收入,并还原结果 x = ((data[feature] - data_mean[feature]) / data std[feature]).as_matrix() data[u'y_pred'] = linearsvr.predict (x) * data_std['y'] + data_mean['y'] outputfile ='../tmp/new_reg_data_GM11_revenue.xls' data.to_excel(outputfile) print('真实值与预测值分别为: \n', data[['y', 'y_pred']]) print('预测图为: ',data[['y','y_pred']].plot(style = ['b-o','r-*'])) #画出预测结果图 plt.xlabel('年份') plt.xticks(range(1994,2015,2))
时间: 2024-02-01 14:02:07 浏览: 67
irisdata.zip_MATLAB导入 iris_iris_iris.data.mat_iris_data.mat_iris
5星 · 资源好评率100%
这段代码是使用线性支持向量回归(LinearSVR)进行财政收入预测的示例。首先,代码导入了所需的库,包括sklearn.svm中的LinearSVR和matplotlib.pyplot。然后,通过pd.read_excel方法读取了名为'../tmp/new_reg_data_GM11.xls'的Excel文件,并将数据设置为以'Unnamed: 0'列为索引。接下来,选择了特定的特征列,并将数据划分为训练集和测试集。然后,对训练集进行了数据标准化操作,并将特征数据和标签数据分别保存在x_train和y_train中。接着,创建了一个LinearSVR对象,并使用训练数据进行拟合。然后,对2014年和2015年的财政收入进行预测,并将结果还原至原始数据范围内。最后,将预测结果保存至Excel文件'../tmp/new_reg_data_GM11_revenue.xls',并打印出真实值和预测值。同时,代码还画出了真实值和预测值的图表,并设置了横坐标的刻度。
阅读全文