Python数据分析与可视化典型项目实战模块九-天气与空气质量数据分析_第1页
Python数据分析与可视化典型项目实战模块九-天气与空气质量数据分析_第2页
Python数据分析与可视化典型项目实战模块九-天气与空气质量数据分析_第3页
Python数据分析与可视化典型项目实战模块九-天气与空气质量数据分析_第4页
Python数据分析与可视化典型项目实战模块九-天气与空气质量数据分析_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

模块九广告投放效果分析Python数据分析与可视化典型项目实战(微课版)【任务描述】Excel文件“advertising.xlsx”共有200行、5列数据,列名分别为Unnamed:0、TV、Radio、Newspaper、Sales(产品的销量)。该数据集包含200个不同市场产品的销售额,每个销售额对应3种广告媒体投入成本,分别是TV(电视媒体)、Radio(广播媒体)和Newspaper(报纸媒体)的投入成本。如果我们能分析出广告媒体投入成本与销售额之间的关系,我们就可以更好地分配广告开支并且使销售额最大化。针对该数据集主要完成以下数据分析与可视化操作。(1)对广告费用与销售额的数据进行对比。(2)利用线性回归建立经典线性模型。(3)利用线性回归建立广告费用与销售额模型。(4)绘制图形展示预测数据与真实数据的变化趋势。【任务实现】在JupyterNotebook开发环境中创建tc09-01.ipynb,然后在单元格中编写代码并输出对应的结果。【任务9-1】利用线性回归建立广告费用与销售额模型利用线性回归建立广告费用与销售额模型1.导入模块importmatplotlibasmplmpl.rcParams['font.sans-serif']=[u'simHei']#用来显示中文标签mpl.rcParams['axes.unicode_minus']=False#用来显示负号fromsklearn.model_selectionimporttrain_test_splitfromsklearn.linear_modelimportLinearRegression读取数据与查看数据集的前5行数据读取数据data=pd.read_excel(r'.\data\advertising.xlsx')data1=data.copy()利用线性回归建立广告费用与销售额模型查看数据集的前5行数据data.head()查看数据集的维度data.shape输出结果:(200,5)查看数据集的基本统计信息data.describe()查看数据集的基本信息()利用线性回归建立广告费用与销售额模型3.数据预处理列重命名与重置索引data.rename(columns={'Unnamed:0':'No'},inplace=True)data.set_index('No',inplace=True)提取特征值与目标值x=data[['TV','Radio','Newspaper']]print(x.head())y=data['Sales']print(y.head())利用线性回归建立广告费用与销售额模型4.绘制散点图绘制广告费用与销售额对比的单一散点图plt.figure(facecolor='w')#设置背景颜色plt.plot(data['TV'],y,'ro',label='TV')plt.plot(data['Radio'],y,'g^',label='Radio')plt.plot(data['Newspaper'],y,'mv',label='Newspaper')plt.legend(loc='lowerright')plt.xlabel(u'广告费用',fontsize=16)plt.ylabel(u'销售额',fontsize=16)plt.title(u'广告费用与销售额对比数据',fontsize=20)plt.grid(linestyle='--')绘制不同广告渠道费用与销售额散点图的多张子图扫描二维码在线浏览电子活页9-1“绘制不同广告渠道费用与销售额散点图的多张子图”中的代码及绘制的图形。利用线性回归建立广告费用与销售额模型5.绘制每一个维度特征与销售额的散点图在不设置seaborn的kind参数的前提下绘制每一个维度特征与销售额的散点图sns.pairplot(data,x_vars=['TV','Radio','Newspaper'],y_vars='Sales',height=4,aspect=0.8)利用线性回归建立广告费用与销售额模型在设置seaborn的kind参数的前提下绘制每一个维度特征与销售额的散点图#设置参数kind='reg'sns.pairplot(data,x_vars=['TV','Radio','Newspaper'],y_vars='Sales',height=4,aspect=0.8,kind='reg')利用线性回归建立广告费用与销售额模型6.利用线性回归建立经典线性模型划分自变量与因变量x=data.iloc[:,:3]y=data.iloc[:,3]划分训练数据集和测试数据集fromsklearn.model_selectionimporttrain_test_splitx_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.8,random_state=1)建立模型fromsklearn.linear_modelimportLinearRegressionlinreg=LinearRegression()linreg.fit(x_train,y_train)输出结果:LinearRegression()利用线性回归建立广告费用与销售额模型查看模型参数print("截距:",ercept_)#截距print("回归系数",linreg.coef_)#回归系数将自变量与对应系数打包#zip()函数为打包函数#计算各指标回归系数feature=['TV','Radio','Newspaper']a=zip(feature,linreg.coef_)foriina:print(i)查看模型的可决系数R2fromsklearn.metricsimportr2_scorey_pred1=linreg.predict(x_train)r2_score(y_train,y_pred1)输出结果:截距:2.9079470208164295回归系数[0.04684310.178544340.00258619]输出结果:('TV',0.04684310317699042)('Radio',0.17854434380887624)('Newspaper',0.0025861860939889944)输出结果:0.8959372632325174利用线性回归建立广告费用与销售额模型模型预测#测试数据集上的预测y_pred2=linreg.predict(x_test)#可决系数r2_score(y_test,y_pred2)绘制训练数据集与测试数据集的对比曲线plt.plot(range(len(y_pred2)),y_pred2,color='blue',label='predict')plt.plot(range(len(y_pred2)),y_test,color='red',label='test')plt.legend(loc='upperright')plt.xlabel("销售数量")plt.ylabel("销售额")输出结果:0.8927605914615385利用线性回归建立广告费用与销售额模型7.利用线性回归建立广告费用与销售额模型#划分数据集x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.8,random_state=1)#利用线性回归建立模型linreg=LinearRegression()model=linreg.fit(x_train,y_train)print(linreg.coef_,ercept_)order=y_test.argsort(axis=0)y_test=y_test.values[order]x_test=x_test.values[order,:]y_hat=linreg.predict(x_test)mse=np.average((y_hat-np.array(y_test))**2)rmse=np.sqrt(mse)print('MSE=',mse,)print('RMSE=',rmse)print('R2=',linreg.score(x_train,y_train))print('R2=',linreg.score(x_test,y_test))输出结果:[0.04684310.178544340.00258619]2.9079470208164295MSE=1.9918855518287881RMSE=1.4113417558581578R2=0.8959372632325174R2=0.8927605914615385利用线性回归建立广告费用与销售额模型8.展示预测数据与真实数据的变化趋势plt.figure(facecolor='w')t=np.arange(len(x_test))plt.plot(t,y_test,'r-',linewidth=2,label=u'真实数据')plt.plot(t,y_hat,'g-',linewidth=2,label=u'预测数据')plt.legend(loc='upperright')plt.title(u'线性回归预测销量',fontsize=18)plt.grid(b=True,linestyle='--')【任务描述】对于零售商,对商超门店的销售额进行精准预测,尤其是量化自身所能控制的各种促销因素产生的结果,是重要的数据应用。CSV文件“sales_advert.csv”共有985行、7列数据,该文件中为某零售商广告投入与销售收入相关数据,列名分别为:revenue(销售收入)、reach(微信推送次数)、local_tv(本地电视广告投入)、online(线上广告投入)、instore(门店内海报陈列等投入)、person(门店销售人员投入)、event(促销事件),促销事件细分为cobranding(品牌联合促销)、holiday(节假日)、special(门店特别促销)、non-event(无促销活动)。针对该数据集完成以下数据分析与可视化操作。(1)分析各项投入与销售收入之间的关系。(2)计算相关系数与绘制相关系数热力图。【任务9-2】分析广告投入与销售收入的关系【任务描述】(3)建立销售收入的预测模型。(4)绘制预测值与真实值对比折线图。【任务实现】在JupyterNotebook开发环境中创建tc09-02.ipynb,然后在单元格中编写代码并输出对应的结果。【任务9-2】分析广告投入与销售收入的关系2.导入数据分析广告投入与销售收入的关系1.导入模块sns.set(style='whitegrid',palette="summer")fromwarningsimportfilterwarningsfilterwarnings('ignore')data=pd.read_csv(r".\data\sales_advert.csv")df=data分析广告投入与销售收入的关系3.数据预处理df.drop(axis=1,columns="Unnamed:0",inplace=True)#df.drop([data.columns[0]],axis=1,inplace=True)查看基本信息()删除信息无效的列统计缺失数值df.isnull().sum()删除缺失数值所在的行df.dropna(inplace=True)分析广告投入与销售收入的关系4.查看数据集的基本统计信息df.describe()5.绘制直方图查看数据集中各列数据的分布情况df.hist(bins=40,figsize=(12,8))plt.show()扫描二维码在线浏览电子活页9-2“数据集中各列数据分布情况直方图”。分析广告投入与销售收入的关系6.绘制数据集中各列数据的箱形图fig=plt.figure(figsize=(14,7))sns.boxplot(data=df)plt.show()7.新增加数据列“total_cost”df["total_cost"]=df.local_tv+df.online+df.instore+df.person#df['total_cost']=df['local_tv']+df['online']+df['instore']+df['person']df.head()分析广告投入与销售收入的关系8.分析各项投入与销售收入之间的关系扫描二维码在线浏览电子活页9-3“绘制总投入中各促销事件投入所占比例的圆环图”中的代码及绘制的图形。绘制各促销事件的投入对总销售收入的贡献占比圆环图。plt.figure(figsize=(8,6))size2=df.groupby("event").revenue.sum()plt.pie(size2.values,labels=size2.index,wedgeprops={'width':0.35,'edgecolor':'w'},autopct='%.2f%%',pctdistance=0.85,startangle=90)plt.show()绘制总投入中各促销事件投入所占比例的圆环图2021年长沙市天气数据分析绘制散点图分析各投入与销售额之间的关系sns.jointplot(x="reach",y="revenue",data=df)sns.jointplot(x="person",y="revenue",data=df)sns.jointplot(x="local_tv",y="revenue",data=df)sns.jointplot(x="online",y="revenue",data=df)sns.jointplot(x="instore",y="revenue",data=df)sns.jointplot(x="total_cost",y="revenue",data=df)plt.show()扫描二维码在线浏览电子活页9-4“绘制散点图分析各投入与销售额之间的关系”中的代码及绘制的图形。分析广告投入与销售收入的关系9.计算相关系数print('相关系数矩阵:\n',np.round(df.corr(method='pearson'),2))输出结果:分析广告投入与销售收入的关系10.绘制相关系数热力图sns.heatmap(df.corr())输出结果如图9-8所示。分析广告投入与销售收入的关系11.建立销售收入的预测模型fromsklearn.linear_modelimportLinearRegressionfromsklearn.model_selectionimporttrain_test_split删除无效的列数据x=df.drop(axis=1,columns=["event","revenue","total_cost"])#x=df.drop(['revenue','event',"total_cost"],axis=1)y=df["revenue"]导入sklearn中的线性回归模型以及训练数据集、测试数据集划分函数划分训练数据集、测试数据集x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=2021)创建线性回归模型lr_model=LinearRegression()lr_model.fit(x_train,y_train)分析广告投入与销售收入的关系R2=lr_model.score(x_test,y_test)R2计算回归系数w=lr_model.coef_w计算可决系数计算截距b=lr_ercept_b依据线性回归模型预测销售收入y_pre=lr_model.predict(x_test)y_pre[:5]输出结果:0.8206658950332533输出结果:array([-2.17286257e+03,1.73825253e+00,3.28827423e+00,4.07512062e+00,2.07002294e+03])输出结果:-50327.81848644526输出结果:array([27991.38966242,27914.94186385,48109.81035159,35083.85372346,49891.44008046])分析广告投入与销售收入的关系12.绘制预测值与真实值对比折线图fig=plt.figure(figsize=(10,6))plt.plot(np.arange(len(y_test)),y_test,color='blue',linestyle='-')plt.plot(np.arange(len(y_pre)),y_pre,color='red',linestyle='-')plt.legend(['真实值','预测值'])plt.show()【任务描述】随着互联网的飞速发展,各种网络产品应运而生,例如电商网站、移动应用、视频媒体、新媒体等,网络广告成了一种主要的广告形式,而网络广告具有形式复杂和多样化的特点。在大数据时代的背景下,网络广告的精准投放对广告主、服务平台与潜在用户而言,在提升效率与效益方面,有更迫切的需求。……网络广告投放效果分析的数据源主要包括4个Excel文件,即包括以下4个数据集。广告点击的样本数据集raw_sample.xlsx,体现的是用户对不同位置广告点击、没点击的情况;广告基本信息数据集ad_feature.xlsx,体现的是每个广告的种类、品牌、价格特征;用户基本信息数据集user_profile.xlsx,体现的是用户群组、性别、年龄、消费档次等特征;用户行为日志数据集behavior_log.xlsx,体现的是用户对商品种类、品牌的浏览、加入购物车、收藏、购买等信息。为达到广告精准投放的效果,分别从3方面分析网络广告投放效果:【任务9-3】分析网络广告投放效果【任务描述】①广告投放渠道;②广告投放时间;③广告投放目标人群。根据以下两项指标衡量不同广告投放效果:①页面访问占比,即以点击率为指标衡量广告投放效果;②以用户行为为指标衡量广告投放效果,找出实现广告精准投放的方案。【任务实现】在JupyterNotebook开发环境中创建tc09-03.ipynb,然后在单元格中编写代码并输出对应的结果。【任务9-3】分析网络广告投放效果分析网络广告投放效果扫描二维码在线浏览电子活页9-5“【任务9-3】分析网络广告投放效果”的实现过程。【任务描述】K-Means算法属于无监督机器学习算法,通过计算样本项之间的相似度(也称为样本间的距离),按照数据内部存在的数据特征将数据集划分为多个不同的类别,使类别内的数据相似度比较高,类别之间的数据相似度比较低。基于最优的数据尺度确定K-Means算法中的K值,其基本思想为,最佳的聚类类别划分从数据特征上看,类别内距离最小化且类别间距离最大化,直观的理解就是“物以类聚”:同类别的“聚集”“抱团”,不同类别的分散。轮廓系数通过枚举每个K计算平均轮廓系数得到最佳值。CSV文件“ad_performance.csv”共有889行(889条有关广告投放与效果的数据)、13列数据。本任务通过各类广告渠道90天内的日均UV、平均注册率、平均搜索量、访问深度、平均停留时间、订单转化率、投放总时间、素材类型、广告类型、合作方式、广告尺寸和广告卖点等特征,将渠道分类,找出每类渠道的重点特征,为数据分析提供支持。假如公司有多个广告投放渠道,每个渠道的客户性质可能不同,例如在优酷视频投放广告和今日头条投放广告,效果可能会有差异。为了知道哪些渠道的效果较好,哪些渠道的效果较差,需要有针对性地做广告投放效果测量和优化工作。通过之前的数据对每一个渠道进行分析和评价,根据不同渠道的【任务9-4】基于K-Means算法的广告投放效果聚类分析【任务描述】特征,有针对性地制定广告投放策略,实现利益的最大化。基于K-Means算法对不同的广告投放渠道的广告投放

温馨提示

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

评论

0/150

提交评论