python与财务数据挖掘_Python数据挖掘实战2:财政收入影响因素及预测
Reference
《Python数据分析与挖掘实战(第2版)》
第6章,页码:P170,代码略有改进
data.csv数据下载
分析过程
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import sys
from GM11 import GM11
from sklearn.linear_model import Lasso
from sklearn.svm import LinearSVR
pd.set_option('max_columns',1000)
pd.set_option('max_row',300)
pd.set_option('display.float_format', lambda x: '%.5f' % x)
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
data = pd.read_csv('data.csv') #读取数据
print(data.head()) #展示前几行
image.png
#描述性统计分析
#依次计算最小值、最大值、平均值、标准差
description = [data.min(), data.max(), data.mean(), data.std()]
#将结果存入数据框
description = pd.DataFrame(description, index=['Min', 'Max', 'Mean', 'STD']).T
print('描述性统计结果:\n', np.round(description, 2)) #保留两位小数
image.png
#相关性分析
corr = data.corr(method='pearson') #计算相关系数矩阵
print('相关系数矩阵为:\n', np.round(corr, 2)) #保留两位小数
image.png
#绘制相关性热力图
plt.subplots(figsize=(10, 10)) #设置画面大小
sns.heatmap(corr, annot=True, vmax=1, square=True, cmap="Blues")
plt.title('相关性热力图')
plt.show()
plt.close()
image.png
#数据预处理: Lasso回归选取关键属性
lasso = Lasso(1000) #调用Lasso()函数,设置λ的值为1000, lasso的复杂程度由λ来控制,λ越大对变量较多的线性模型的惩罚力度就越大,从而最终获得一个变量较少的模型。
lasso.fit(data.iloc[:,0:13], data['y'])
print('相关系数为:\n', np.round(lasso.coef_, 5)) #输出结果,保留5位小数
print('相关系数非零个数为:\n', np.sum(lasso.coef_ != 0)) #计算相关系数非零的个数
mask = lasso.coef_ != 0 #返回一个相关系数是否为零的布尔数组
print('相关系数是否为零:\n', mask)
image.png
mask = np.insert(mask, 13, [False])
# print(mask)
new_data = data.T[mask].T
# print(new_data)
#构建财政收入预测模型
##构建灰色预测模型并预测
new_data.index = range(1994, 2014)
new_data.loc[2014] = None
new_data.loc[2015] = None
cols = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13']
# print(new_data)
for i in cols:
f = GM11(new_data.loc[range(1994, 2014), i].values)[0]
new_data.loc[2014, i] = f(len(new_data) - 1) #2014年预测结果
new_data.loc[2015, i] = f(len(new_data)) #2015年预测结果
new_data[i] = new_data[i].round(2) #保留两位小数
y = list(data['y'].values) #提取财政收入列,合并至新数据框中
y.extend([np.nan, np.nan])
new_data['y'] = y
print('预测结果为:\n',new_data.loc[2014:2015,:]) #预测展示
image.png
##构建支持向量回归预测模型
feature = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13'] #属性所在列
data_train = new_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].values #属性数据
y_train = data_train['y'].values #标签数据
linearsvr = LinearSVR() #调用LinearSVR()函数
linearsvr.fit(x_train, y_train)
x = ((new_data[feature] - data_mean[feature])/data_std[feature]).values #预测,并还原结果
new_data[u'y_pred'] = linearsvr.predict(x) * data_std['y'] + data_mean['y']
print('真实值与预测值分别为:\n', new_data[['y', 'y_pred']])
fig = new_data[['y', 'y_pred']].plot(subplots = True, style=['b-o', 'r-*'])
plt.show()
image.png
image.png
python与财务数据挖掘_Python数据挖掘实战2:财政收入影响因素及预测相关推荐
- python 数据挖掘_Python数据挖掘框架scikit数据集之iris
一.iris数据集简介 iris数据集的中文名是安德森鸢尾花卉数据集,英文全称是Anderson's Iris data set.iris包含150个样本,对应数据集的每行数据.每行数据包含每个样本的 ...
- python分析鸢尾花数据_python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据...
但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...
- python特征工程意义_python数据挖掘--特征工程篇(附代码)
记录数据挖掘路上遇到的常用特征工程方法和技巧(附代码),方便自己,方便他人,持续更新. 1.哑编码 对某一列数据进行pandas自带的(定性数据哑编码,定量数据二值化),并附上名字 pd.get_du ...
- python 调用数据挖掘_Python数据挖掘 环境搭建
deepin 有很多小伙伴想学习python,但windows写python基本是坑,deepin属于linux分支,界面美观,内置大量桌面软件,对新手十分友好,这里尝试在深度系统(deepin)内安 ...
- 如何用python数据挖掘_Python数据挖掘-文本挖掘
文本挖掘概要 搞什么的? 从大量文本数据中,抽取出有价值的知识,并且利用这些知识更好的组织信息的过程. 目的是什么? 把文本信息转化为人们可利用的知识. 举例来说,下面的图表利用文本挖掘技术对库克ip ...
- python神经网络分析案例_python神经网络实战
机器学习实战笔记(Python实现)-04-Logistic回归 转自:机器学习实战笔记(Python实现)-04-Logistic回归 转自:简单多元线性回归(梯度下降算法与矩阵法) 转自:人工神经 ...
- python数据分析概述答案_Python数据分析实战(1)数据分析概述
一.入门数据分析 1.大数据时代的基本面 大数据产业发展现状:现在数据已经呈现出了爆炸式的增长,每一分钟可能就会有:13000+个iPhone应用下载 Twitter上发布98000+新微博 发出1. ...
- python资本市场财务数据分析_Python对股票财务数据进行可视化分析
对股票财务数据进行分析是非常必要,但因股票数据量很大,单凭浏览网页或在软件客户端查看是非常浪费精力的一件事,通过Python进行网页数据提取,将财务数据图表化会更加直观.以下代码在Python 3.6 ...
- python爬虫经典段子_Python爬虫实战(1):爬取糗事百科段子
大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...
最新文章
- CowNew开源-sql解析引擎和cownewsql阶段成果汇报
- 爬虫+python3(网页图片)
- Windows 下配置Apache+MySql+PHP环境(原创)
- DispatcherServlet的用途
- Java Hessian小试(转)
- nagios监控mysql主机,nginx,cpu,网卡流量
- python生成器迭代_python中的生成器和迭代器
- 傅里叶变换和拉普拉斯变换公式总结
- 借助echarts制作酷炫3d地球动画
- java从文本中提取姓名、身份证、电话、地址
- 关于字符集的测试报告(转)
- 读书笔记《能力陷阱》第四章:试着朝更多不同的方向发展自己
- MsysGIT -- Windows下GIT提供众多的Linux命令
- 使用vagrant搭建三台虚拟机环境
- LeetCode-344
- 计算机英语和普通英语区别表现,浅谈日常英语与计算机专业英语的区别
- keras 香草编码器_用香草javascript遍历dom
- 金融结算系统的基础业务之账户体系结构分析
- python中内置数学函数详解和实例应用之三角函数曲线_初级阶段(三)
- 金融风控实战——风控数据挖掘方法(决策树规则挖掘)
热门文章
- 基于ASP的课外培训在线教育毕设免费下载
- python 函数调用列表_python – 根据列表中的字符串调用函数
- 关于互联网大厂裁员,引发企业危机处理与个人危机处理的思考
- 深入理解C++浮点数(float、double)类型数据比较、相等判断
- OpenCV自适应阈值分割函数:adaptiveThreshold()介绍
- 为opencv添加contrib库
- APP如何进行通信的
- 下载Office安装包,提示找不到OfficeLR.cab文件。
- 如何用OpenCV自带的adaboost程序训练并检测目标
- 拥抱.NET Core,如何开发一个跨平台类库 (1)