一.项目概述

  1. 数据来源:网络上自找的数据百度云盘链接:https://pan.baidu.com/s/1Lmhl34BumjBloN-rhy7Yqw 提取码:z84d

  2. 项目背景:地方财政收入,是指政府为履行其职能、实施公共政策和提供公共物品与服务需要而筹集的一切资金的总和,不但是国家财政收入的重要组成部分,而且具有其相对独立的构成内容。如何制定地方财政支出计划,合理分配地方财政收入,促进地方的发展,提高市民的收入和生活质量是每个地方政府需要考虑的首要问题。因此,地方财政收入预测是非常必要的。本案例运用数据挖掘技术按照1994年我国财政体制改革后至2013年的数据对市财政收入进行分析,并对未来两年的财政收入进行预测,希望能够帮助政府合理地控制财政收支,优化财政建设,为制定相关决策提供依据。
  3. 设计目标如下:(1)分析、识别影响地方财政收入的关键属性(2)预测2014年和2015年财政收入变化情况
  4. 一.项目具体应用
  • 导入必要的包:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    %matplotlib inline
    import seaborn as sns
    from scipy import stats
    from sklearn.model_selection import GridSearchCV
    from sklearn.model_selection import train_test_split
    from sklearn.model_selection import GridSearchCV, RepeatedKFold, cross_val_score,cross_val_predict,KFold
    from sklearn.metrics import make_scorer,mean_squared_error
    from sklearn.linear_model import LinearRegression, LassoCV, Ridge, ElasticNet
    from sklearn.svm import LinearSVR, SVR
    from sklearn.neighbors import KNeighborsRegressor
    # 使用r2_score作为回归模型性能的评价
    from sklearn.metrics import r2_score #用来正常显示中文
    plt.rcParams['font.sans-serif']=['SimHei']
    #用来显示负号
    plt.rcParams['axes.unicode_minus']=False 

    读取数据:

    #  数据读取
    data = pd.read_csv('data(1).csv')
    #通过观察前5行,了解数据每列(特征)的概况
    data.head()

    特征相关性:

    data.info()

    缺失值分析:

    data.isnull().sum()#缺失值分析

    重复值分析:

    data.duplicated()#重复值分析

    描述性统计分析:

    data.describe()

    画直方图与连续概率密度估计:

    for column in data.columns:
    fig,ax = plt.subplots(figsize=(6,6))
    sns.distplot(data.loc[:,column],norm_hist=True,bins=20)

    相关性分析:

    相关性分析是指对两个或多个具备相关型的特征元素进行分析,从而衡量两个特征因素的相关密切程度。在统计学中,常用到Pearson相关系数来进行相关性分析。Pearson相关系数可用来度量两个特征间的相互关系(线性相关强弱),是最简单的一种相关系数,取值范围在[-1,1]。

    corr=data.corr(method='pearson')
    corr

    结果:

    可以发现上述变量除了x11外均与y有强相关性,并且这些属性间存在多重共线性,考虑使用Lasso特征选择模型进行特征选择 绘制相关性热力图,直观显示相关性。

  • 绘制热力图:

    # 绘制热力图
    plt.style.use('ggplot')
    sns.set_style('whitegrid')
    plt.subplots(figsize=(10,10))
    sns.heatmap(data.corr(method='pearson'),cmap='Reds',annot=True,  square=True,fmt='.2f',  yticklabels=corr.columns, xticklabels=corr.columns  )

    结果:

    三.数据预处理

  • 利用Lasso特征选择模型提取关键属性

    import pandas as pd
    import numpy as np
    from sklearn.linear_model import Lasso
    data = pd.read_csv('data(1).csv', header=0)
    x, y = data.iloc[:, :-1], data.iloc[:, -1]
    lasso = Lasso(alpha=1000, random_state=1)
    lasso.fit(x, y)
    print('相关系数为', np.round(lasso.coef_, 5))
    coef = pd.DataFrame(lasso.coef_, index=x.columns)
    print('相关系数数组为\n', coef)
    mask = lasso.coef_ != 0.0
    x = x.loc[:, mask]
    mask = np.append(mask,True)
    new_reg_data = data.iloc[:,mask]
    new_reg_data = pd.concat([x, y], axis=1)
    new_reg_data.to_csv('new_reg_data.csv')

    结果

    灰色预测模型

    # 自定义灰色预测函数
    def GM11(x0):x1 = x0.cumsum()z1 = (x1[:len(x1) - 1] + x1[1:]) / 2.0  z1 = z1.reshape((len(z1), 1))B = np.append(-z1, np.ones_like(z1), axis=1)Yn = x0[1:].reshape((len(x0) - 1, 1))[[a], [b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn)f = lambda k: (x0[0] - b / a) * np.exp(-a * (k - 1)) - (x0[0] - b / a) * np.exp(-a * (k - 2))delta = np.abs(x0 - np.array([f(i) for i in range(1, len(x0) + 1)]))C = delta.std() / x0.std()P = 1.0 * (np.abs(delta - delta.mean()) < 0.6745 * x0.std()).sum() / len(x0)return f, a, b, x0[0], C, P
    new_reg_data = pd.read_csv('new_reg_data.csv', header=0, index_col=0)
    data = pd.read_csv('data(1).csv', header=0)
    new_reg_data.index = range(1994, 2014)
    new_reg_data.loc[2014] = None
    new_reg_data.loc[2015] = None
    cols = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13']
    for i in cols:f = GM11(new_reg_data.loc[range(1994, 2014), i].values)[0]new_reg_data.loc[2014, i] = f(len(new_reg_data) - 1)  new_reg_data.loc[2015, i] = f(len(new_reg_data)) new_reg_data[i] = new_reg_data[i].round(2)
    y = list(data['y'].values)
    y.extend([np.nan, np.nan])
    new_reg_data['y'] = y
    new_reg_data.to_excel('new_reg_data_GM11.xls')
    print('预测结果为:\n', new_reg_data.loc[2014:2015, :])  

    结果

    其次,当i=l[i],进入对应列从1994-2013遍历,然后根据1994-2013年的数据预测出2014和2015年的值并将其保存至数据表中

    l = ['x1','x3','x4','x5','x6','x7','x8','x13']
    for i in l:f = GM11(new_reg_data.loc[range(1994,2014),i].as_matrix())[0]print('i:',i)print(new_reg_data.loc[range(1994,2014),i])new_reg_data.loc[2014,i] = f(len(new_reg_data)-1)print(new_reg_data.loc[2014,i])new_reg_data.loc[2015,i] = f(len(new_reg_data))print(new_reg_data.loc[2015,i])new_reg_data[i] = new_reg_data[i].round(2) # 保留2位小数print("*"*50)

      构建支持向量机回归模型

使用支持向量回归模型对2014年和2015年的财政收入进行预测

from sklearn.svm import LinearSVR
import matplotlib.pyplot as plt
data = pd.read_excel('new_reg_data_GM11.xls',index_col=0,header=0)
feature = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13']
data_train = data.loc[range(1994, 2014)].copy()  data_mean = data_train.mean()
data_std = data_train.std()
data_train = (data_train - data_mean) / data_std
x_train = data_train[feature].values
y_train = data_train['y'].values linearsvr = LinearSVR()
linearsvr.fit(x_train, y_train)
x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
data[u'y_pred'] = linearsvr.predict(x) * data_std['y'] + data_mean['y']data.to_excel('new_reg_data_GM11_revenue.xls')
print('真实值与预测值分别为:\n', data[['y', 'y_pred']])
fig = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
plt.show()

结果

财政收入影响因素分析及预测相关推荐

  1. 数据挖掘实战分享:财政收入影响因素分析及预测(四)

    泰迪智能科技(TipDM数据挖掘平台)最新推出的数据挖掘实战专栏 专栏将数据挖掘理论与项目案例实践相结合,可以让大家获得真实的数据挖掘学习与实践环境,更快.更好的学习数据挖掘知识与积累职业经验 专栏中 ...

  2. 数据挖掘实战分享:财政收入影响因素分析及预测(二)

    泰迪智能科技(TipDM数据挖掘平台)最新推出的数据挖掘实战专栏 专栏将数据挖掘理论与项目案例实践相结合,可以让大家获得真实的数据挖掘学习与实践环境,更快.更好的学习数据挖掘知识与积累职业经验 专栏中 ...

  3. 数据挖掘实战分享:财政收入影响因素分析及预测(一)

    泰迪智能科技最新推出的数据挖掘实战专栏 专栏将数据挖掘理论与项目案例实践相结合,可以让大家获得真实的数据挖掘学习与实践环境,更快.更好的学习数据挖掘知识与积累职业经验 专栏中每四篇文章为一个完整的数据 ...

  4. python财政收入预测分析_Python:Lasso方法、GM预测模型、神经网络预测模型之财政收入影响因素分析及预测...

    问题重述 通过研究,发现影响某市目前及未来地方财源的因素.结合文中目标:(1)选择模型,找出影响财政收入的关键因素:(2)基于关键因素,选择预测方法.模型预测未来收入. 具体来讲 本文分析了地方财政收 ...

  5. 【项目实战】Python基于Lasso特征选择、GM算法和SVR回归算法进行财政收入影响因素分析及预测

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 随着信息化的发展和科学技术的进步,数据分析与挖掘技术开始得到广泛 ...

  6. python数据分析与挖掘实战(财政收入影响因素分析及预测)

    导言 随着信息化的发展和科学技术的进步,数据分析与挖掘技术开始得到广泛应用.人们无时无刻不面对着海量的数据,这些海量数据中隐藏着人们所需要的具有决策意义的信息.数据分析与挖掘技术的产生和发展就是帮助人 ...

  7. 【深度学习实验】第二次:Python财政收入影响因素分析及预测

    相关知识 设变量 X ( 0 ) = { X ( 0 ) ( i ) , i = 1 , 2 , . . . , n

  8. 数据分析与挖掘:财政收入影响因素分析及预测模型

    财政收入影响因素分析及预测模型 1. 背景与挖掘目标 2. 分析方法与过程 2.1 数据探索 2.2 模型构建 2.3 数据预测 1. 背景与挖掘目标 项目为<Python 数据分析与挖掘实战& ...

  9. 10 财政收入影响因素分析及预测模型

    4 10 财政收入影响因素分析及预测模型 10.1背景与挖掘目标 本案例通过研究发现影响目前以及未来地方财源建设的因素,并对其进行深入分析,提出对该市地方财源优化的具体建议,供政府决策参考,同时为其他 ...

最新文章

  1. C++多线程:异步操作std::async和std::promise
  2. 排名看似毫无波澜的,但 R 语言热度仍在上升 | 8月编程语言排行
  3. Android客户端和服务端如何使用Token和Session
  4. csharp添加引用路径_(2)添加path
  5. TreeSet-自然排序与比较器排序
  6. 内存不能为read进不去桌面_纯小白向:AMD平台内存超频教程,附金士顿FuryDDR4 3200超频实战...
  7. 修改Centos服务器主机名称
  8. 谷歌浏览器任务栏图标变白色解决方法(亲测有效!)
  9. sdcc对应stc51单片机
  10. vbscript错误代码及对应解释大全
  11. 王道计算机组成原理课代表 - 考研计算机 第四章 指令系统 究极精华总结笔记
  12. ES中如何实现随机抽样查询
  13. h5游戏引流推广方法:电商平台如何引流推广?
  14. java中正则表达式校验日期,1999-01-01 ,1991\01\01,-分割和\分割两种形式
  15. 面试官:你对Redis缓存了解吗?面对这11道面试题你是否有很多问号?
  16. 课堂结队作业:二维数组(2)
  17. 如何实现一个直播APP
  18. 银行风险预警 第三方数据_网络第三方风险
  19. 红尘陌上,为谁一抹忧伤:QQ伤感日志
  20. Project工具(五)—资源冲突解决

热门文章

  1. Java编程思想学习笔记4 - 序列化技术
  2. play 框架目录结构
  3. CSS Sprites(精灵图)
  4. 启发式搜索的实现,特性
  5. Openssl下载网址
  6. Android之高仿QQ6.6.0侧滑效果(背景动画、透明+沉浸式状态栏、渐变效果)
  7. 网络安全 - 一名合格的Web安全工程师之成长路径
  8. python怎么批量下载年报_Python+Wind 批量下载上市公司年报 - Part 1/2
  9. cgroup架构及控制文件介绍
  10. DebugView在win7下没有输出内核信息解决办法