6利用决策树模型预测天气质量
来源:互联网 发布:淘宝怎么购买115会员 编辑:程序博客网 时间:2024/05/22 04:02
背景:客观评价一个区域的环境质量状况,需要综合考虑各种因素之间以及影响因素与环境质量之间错综复杂的关系,此次目的是根据空气质量中SO2,NO,NO2,NOx,PM10和PM2.5的含量建立分类预测模型,实现对空气质量的评价。采用C4.5决策树进行模型构建,并评价模型效果。
6.1数据探索
首先对各个属性的数据进行可视化,看看之间是否存在某种联系。
#空气质量图
import matplotlibas mpl
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] =False
fig=plt.figure()
plt.subplot(711)
plt.plot(data['SO2'],linewidth=2)
plt.title(u'各指标变化趋势')
plt.ylabel(u'空气质量')
#SO2分布图
plt.subplot(712)
plt.plot(data['CLASS'],'b-',linewidth=1)
# plt.title(u'SO2走势图')
plt.ylabel(u'SO2含量')
#NO
plt.subplot(713)
plt.plot(data['NO'],'r-',linewidth=1)
# plt.title(u'NO走势图')
plt.ylabel(u'NO含量')
#NO2
plt.subplot(714)
plt.plot(data['NO2'],'b-',linewidth=1)
# plt.title(u'NO2走势图')
plt.ylabel(u'NO2含量')
#NOx
plt.subplot(715)
plt.plot(data['NOx'],'y-',linewidth=1)
# plt.title(u'NOx走势图')
plt.ylabel(u'NOx含量')
#PM10
plt.subplot(716)
plt.plot(data['PM10'],'g-',linewidth=1)
# plt.title(u'PM10走势图')
plt.ylabel(u'PM10含量')
#PM2.5
plt.subplot(717)
plt.plot(data['PM2-5'],'y-',linewidth=1)
# plt.title(u'PM2-5走势图')
plt.ylabel(u'PM2-5含量')
plt.show()
结果如下:
发现SO2,NO2,NO,NOx,PM10,PM2.5与空气质量有很大的相关性,其全部可以当做特征。
6.2 数据处理
数据中不存在缺失值和异常值故不需要对数据做此部分的处理,因为我们要建立预测模型,需要有训练数据和测试数据,现在我们对数据进行切割。
#数据分割
data=data.as_matrix()
data_train=data[:int(len(data)*0.8),:]
data_test=data[int(len(data)*0.8):,:]
x_train=data_train[:,:-1]
y_train=data_train[:,-1]
x_test=data_test[:,:-1]
y_test=data_test[:,-1]
6.3 模型建立
#模型的建立
from sklearn.treeimport DecisionTreeClassifierasDTC
model=DTC(criterion='entropy',max_depth=4)
model.fit(x_train,y_train)
print model.score(x_test,y_test)
#导入相关函数,可视化决策树
#导出的结果是一个dot文件,需要安装Graphviz才能将它转换为pdf或者png等格式
from sklearn.treeimport export_graphviz
from sklearn.externals.siximport StringIO
x_train=pd.DataFrame(x_train)
with open("tree.dot",'w')as f:
f=export_graphviz(model,feature_names=x_train.columns,out_file=f)
经几次试验,确定决策树的参数,也就是树的深度是4,结果如下:
用这个模型就可以很好的根据一些非气象因素来预测空气质量了。
数据就是python数据分析与挖掘第九章的习题。
- 6利用决策树模型预测天气质量
- R语言 决策树--预测模型
- 炎热天气看书还是钓鱼?隐马尔科夫模型教你预测!
- 使用决策树模型预测泰坦尼克号乘客的生还情况
- Spark 数据挖掘 - 利用决策树预测森林覆盖类型
- java利用Spark决策树算法实现人员特性预测
- 模型评估——定量分析预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- 栈帧的开辟与回退
- windows平台Mosquitto使用
- 《重构》一书经典总结(一)
- JQueryUI实现对话框
- Python_self详解
- 6利用决策树模型预测天气质量
- STL容器_优先队列
- STM32进入HardFault_Handler处理办法
- ssh配置
- 洛谷 3370 hash模板
- spring配置文件加<aop:aspectj-autoproxy/>后无法启动listener【解决方案】
- webpack学习
- 过滤器链-18
- Android Studio 查看构建报告