【毕业设计】大数据电商销售预测分析 - python 数据分析

1 前言

🔥 Hi,大家好,这里是丹成学长的毕设系列文章!

🔥 对毕设有任何疑问都可以问学长哦!

这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是

🚩 基于大数据的电商销售预测分析

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿 选题指导, 项目分享:

https://gitee.com/yaa-dc/BJH/blob/master/gg/cc/README.md

2 开始分析

2.1 数据特征

# 导入包
import pandas as pd
import numpy as np

import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns 
sns.set(style='whitegrid',palette="Set2")
plt.rcParams['font.sans-serif']=['Microsoft YaHei']

from warnings import filterwarnings
filterwarnings('ignore')

df = pd.read_csv('/home/kesci/input/data_baojie1642/baojie.csv')

在这里插入图片描述

查看缺失值

df.isnull().sum()/df.shape[0]

在这里插入图片描述

删除空值

df.dropna(inplace=True)
df.isnull().sum()

在这里插入图片描述

查看数据分布

df.hist(bins=40,figsize=(12,8))
plt.show()

在这里插入图片描述

数据相对符合正太分布

2.2 各项投入与销售额之间的关系

该时间段内不同活动期间所投入的费用占比

plt.figure(figsize=(8,6))
size = df.groupby('event').total_input.sum()
plt.pie(size.values,labels = size.index,wedgeprops={'width':0.35,'edgecolor':'w'},
autopct='%.2f%%',pctdistance=0.85,startangle = 90)
plt.axis('equal')
plt.show()

在这里插入图片描述

推送次数

sns.jointplot(x='reach',y='revenue',data=df)

在这里插入图片描述

电视广告

在这里插入图片描述

线上广告投入

sns.jointplot(x='online',y='revenue',data=df)

在这里插入图片描述

门店宣传投入

sns.jointplot(x='instore',y='revenue',data=df)

在这里插入图片描述

相关系数

在这里插入图片描述
在这里插入图片描述

2.3 建立销售额的预测模型

选择最小二乘回归试试


# 部分代码
y = df['revenue']
x = df.drop(['revenue','event'],axis = 1)
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3,random_state=20)
from sklearn.linear_model import LinearRegression
lr_model = LinearRegression()
lr_model.fit(x_train,y_train)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)
print('预测测试集前5个结果为:\n',lr_model.predict(x_test)[:5])
print('测试集R^2值为:',lr_model.score(x_test,y_test))
from matplotlib import rcParams
fig = plt.figure(figsize = (10,6))
y_pred = lr_model.predict(x_test)
plt.plot(range(y_test.shape[0]),y_test,color='blue',linewidth = 1.5,linestyle = '-')
plt.plot(range(y_test.shape[0]),y_pred,color='red',linewidth = 1.5,linestyle = '-.')
plt.legend(['真实值','预测值'])
plt.show()

在这里插入图片描述

3 最后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值