能源大数据分析理论与实践 课件 11.油气大数据分析案例_第1页
能源大数据分析理论与实践 课件 11.油气大数据分析案例_第2页
能源大数据分析理论与实践 课件 11.油气大数据分析案例_第3页
能源大数据分析理论与实践 课件 11.油气大数据分析案例_第4页
能源大数据分析理论与实践 课件 11.油气大数据分析案例_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

油气大数据分析案例11TheCaseofOilandGasBigData11.1油气消费量的影响因素分析石油和天然气是经济发展的重要驱动因素,分析油气消费量的影响因素和影响效果对政府决策具有重要意义。影响油气消费量的因素较多,本案例选取经济发展、经济结构、科技发展及人口规模4种因素,研究其对油气消费量的影响,从而介绍回归分析的应用方法。其中,油气消费量用符号OGC表示;经济发展使用GDP指标量化,用符号ED表示;经济结构使用第三产业产值占GDP比值来量化,用符号ES表示;科技发展通过研究与试验发展经费支出来量化,用符号TD表示;人口规模使用年末总人口数来量化,用符号PS表示。1.案例描述11.1油气消费量的影响因素分析2.回归分析(1)数据采集与处理本案例以2001年—2020年全国数据为例,探究各因素对油气消费量的影响,数据来源于《中国统计年鉴》。采集数据之后,需要将数据文件保存为CSV文件,图1部分数据11.1油气消费量的影响因素分析2.回归分析(2)绘制散点图观察变量关系首先使用pandas库读取数据,使用前需要提前导入这个库。案例中使用的数据文件名是“Oil_and_gas.csv”,然后使用read_csv()函数读取数据文件中的数据,并用第一列作为每一行的索引。绘制自变量与目标变量之间的散点图,即OGC关于ED、OGC关于ES、OGC关于TD、OGC关于PS的散点图。Matplotlib库是用于绘制可视化图像的2D绘图库,该部分使用Matplotlib库的子库matplotlib.pyplot,直接调用plot()函数对列表数据画图。plot()函数默认为绘制线形(kind='line')图形,绘制散点图需要kind='scatter',设置好“x”和“y”等内容,最终使用show()函数进行展示。11.1油气消费量的影响因素分析2.回归分析importpandasaspdimportmatplotlib.pyplotaspltfilename='Oil_and_gas.csv'data=pd.read_csv(filename,index_col=0)data.plot(kind='scatter',x='ED',y='OGC',title='ED-OGC')plt.xlabel("ED")plt.ylabel("OGC")plt.show()data.plot(kind='scatter',x='ES',y='OGC',title='ES-OGC')plt.xlabel("ES")plt.ylabel("OGC")plt.show()data.plot(kind='scatter',x='TD',y='OGC',title='TD-OGC')plt.xlabel("TD")plt.ylabel("OGC")plt.show()data.plot(kind='scatter',x='PS',y='OGC',title='PS-OGC')plt.xlabel("PS")plt.ylabel("OGC")plt.show()图2散点图绘制结果散点图绘制结果如图所示,该模型所选择的4个自变量均与目标变量存在线性相关关系,可以尝试使用线性回归方法进行估计。11.1油气消费量的影响因素分析2.回归分析(3)回归分析模型应用建立回归分析模型可以使用statsmodels库,它是Python中的统计分析库,提供了多种用于统计建模和分析的函数和类,用于拟合多种统计模型,执行统计测试及数据探索和可视化。首先使用iloc()函数定位数据所在列,并将数据类型转换成浮点型;然后使用sm.add_constant()函数在“X”上加入一列常数项,从而得出后续的常数项;接着使用OLS()函数建立模型,使用fit()函数获取拟合结果,最后使用summary()函数展示拟合模型的详细结果。importstatsmodels.apiassmX=data.iloc[:,1:5].values.astype(float)y=data.iloc[:,0].values.astype(float)X=sm.add_constant(X)model=sm.OLS(y,X)results=model.fit()print('检验的结果为:\n',results.summary())11.1油气消费量的影响因素分析3.结果分析可以通过程序输出结果观察我国油气消费量与影响因素之间的关系,在回归分析模型中,R2为0.998,表明模型的拟合度较好,自变量经济发展(ED)的回归系数为0.0207,P值为0.446,说明经济发展对油气消费量有正向促进作用,但显著性不高;经济结构(ES)的回归系数为-0.6158,P值为0.104,虽未低于0.1,但基本说明了经济结构的优化对降低油气消费量产生了正向促进作用;科技发展(TD)的回归系数为0.1668,通过了5%的显著性检验,表明当科技发展水平较高时,会促进油气消费量的增加,说明科技发展的方向主要是拉动经济增长,在降低能耗方面未得到体现;人口规模(PS)的回归系数为3.5771,通过了1%的显著性检验,表明人口规模越大,油气消费量越高。图3回归分析模型输出结果11.2石油管线损失预测石油管线事故是指在石油管线系统中发生的意外事件,导致石油或石油产品的泄漏、溢出或其他不良后果,造成巨大的损失。本案例针对石油管线事故损失进行预测,通过搜集到的数据集和机器学习算法(随机森林)建立模型来预测石油管线事故可能导致的损失,包括人员伤亡、环境破坏、财务成本等。本案例主要展示如何基于机器学习算法建立一个有效的预测系统,帮助石油公司更好地管理风险和进行资源分配,以提高石油管线安全性,降低损失。1.案例描述11.2石油管线损失预测步骤1:采集数据并准备数据集。需要准备用于训练和测试模型的数据集,数据集应包含特征和对应的目标变量。特征是用于预测目标变量的特征或指标,目标变量是需要进行预测的值。通常,需要将数据集划分为训练集和测试集,其中训练集用于训练模型,测试集用于评估模型的性能。2.随机森林回归的步骤11.2石油管线损失预测步骤2:模型训练与预测。在sklearn库中,可以使用RandomForestRegressor类来构建随机森林回归模型。可以设置一些参数来控制随机森林的行为,例如决策树的数量、特征选择的方式、决策树的生长方式等,可以根据实际问题和需求进行参数的调整。使用训练集对随机森林回归模型进行训练,模型将根据训练集中的样本和目标变量的值来构建多棵决策树,并在每棵树上进行特征选择和划分。使用训练好的随机森林回归模型对测试集中的样本进行预测,模型将对每棵决策树的预测结果进行平均或加权平均,从而得到最终的回归预测结果。2.随机森林回归的步骤11.2石油管线损失预测步骤3:模型评估与调优。通过与真实目标变量的比较,评估模型的性能。可以使用各种回归性能指标,如均方误差(MeanSquaredError,MSE)、平均绝对误差(MeanAbsoluteError,MAE)、决定系数(R2)等,来评估模型的准确性和泛化能力。根据评估结果可以对随机森林回归模型进行调优,尝试调整随机森林回归模型的参数,从而提高模型的性能。步骤4:模型应用。模型评估与调优后,可以将训练好的随机森林回归模型保存为文件,在使用时读取文件并进行实际预测。2.随机森林回归的步骤11.2石油管线损失预测3.程序实现与结果分析(1)数据预处理首先导入模型训练需要的各个包,然后利用Python的第三方库pandas将数据集加载到DataFrame中,可以通过直接打印输出DataFrame查看数据集的大小(数据集有多少个样本及每个样本有多少个特征),通过isnull()函数查看每列的非空值数量。对于空值超过50%以上的特征,直接删除。图4数据集部分内容11.2石油管线损失预测3.程序实现与结果分析(1)数据预处理

fromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportmean_squared_error,mean_absolute_error,r2_scoreimportmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspdfromsklearn.ensembleimportRandomForestRegressorplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsedf=pd.read_csv('data.csv')columns=df.columnslack=df.isnull().sum()/2795lack=df.isnull().sum()/2795lack=lack.apply(lambdax:format(x,'.2%'))columns_1=['LiquidSubtype','LiquidName','IntentionalRelease(Barrels)','ShutdownDate/Time','RestartDate/Time','OperatorEmployeeInjuries','OperatorContractorInjuries','EmergencyResponderInjuries','OtherInjuries','PublicInjuries','AllInjuries','OperatorEmployeeFatalities','OperatorContractorFatalities','EmergencyResponderFatalities','OtherFatalities','PublicFatalities','AllFatalities']df=df.drop(columns_1,axis=1)11.2石油管线损失预测3.程序实现与结果分析(1)数据预处理

对于剩下的特征,如AccidentDate/Time列,将其拆分为年、月、日三个特征,来表示事故发生时间的特征,对于PipelineLocation、PipelineType等列,由于其特征值为分类变量,因此用One-hot编码进行处理,对于部分缺失值用0填充。最后根据变量的实际意义,删除与预测事故总成本没有关系的特征。

df['AccidentDate/Time']=pd.to_datetime(df['AccidentDate/Time'])df['AccidentMonth']=df['AccidentDate/Time'].dt.monthdf['AccidentDay']=df['AccidentDate/Time'].dt.daycolumns_2=['ReportNumber','SupplementalNumber','OperatorName','Pipeline/FacilityName','AccidentCity','AccidentCounty','AccidentState','CauseSubcategory','PublicEvacuations','OtherCosts','PropertyDamageCosts','AccidentDate/Time','OperatorID']df=df.drop(columns_2,axis=1)df.fillna(0,inplace=True)columns_3=['PipelineLocation','PipelineType','LiquidType','CauseCategory','LiquidIgnition','LiquidExplosion','PipelineShutdown']data=pd.get_dummies(df,columns=columns_3)data['AllCosts']=data.pop('AllCosts')11.2石油管线损失预测3.程序实现与结果分析(2)模型训练与预测

首先将标签和特征分开,并以8∶2的比例划分训练集和测试集,然后基于得到的训练集数据(训练集特征X_train和训练集标签y_train)来拟合决策树模型,最后使用训练好的模型对测试集数据进行预测。其中,使用sklearn库中的RandomForestRegressor类来建立决策树模型,可以设置不同的参数来调整树的数量、深度、分裂准则等。

X=data.iloc[:,:-1]y=data.iloc[:,-1]X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=33)random_forest_regressor=RandomForestRegress

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论