商业分析 | 宝洁销售额预测分析

一、数据描述

数据字典

(以月为单位)
head()

1.数据行/列数量

image.png

2.缺失值分布
2.1local_tv有缺失值

缺失值

2.2对比有无local_tvt投入的销售收入
可见local_tv投入对销售收入影响较大
对比

2.3填充缺失值
填充0

data['local_tv']=data['local_tv'].fillna(0)

二、单变量分析

1.数字型变量描述(平均、最小、最大、标准差)

image.png

2.类别型变量
**可见Event变量对销售额的影响比较小,基本上可忽略

event对销售的影响

3.相关性分析
再次印证event对销售收入影响小;
发现reach微信推送越多,反而收入越小,funny

corr()

推送次数为1或2的时候销售收入最高,当超过次数时出现反作用
可以给出适度推送的建议,既降低成本,又能达到最好的宣传效果
image.png

查看不同event的销售收入平均值


event

四、模型
1.模型建立

#切分训练测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(data_x,data_y,test_size=0.2)
#建模拟合
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train,y_train)

2.模型评估优化
RMSE:均方根误差,将每个数据点的误差取平方后开方
RMSE越小说明模型误差越小

#模型评估:RMSE
def rmse(predictions, targets):
    return np.sqrt(((predictions - targets) ** 2).mean())
print('RMSE:')
rmse(prediction,y_test)
print('R2:')
model.score(X_test,y_test)

<<<RMSE:8368.355000888903
<<<R2:0.43
尝试用均值填充
data['local_tv'] = data['local_tv'].fillna(data['local_tv'].mean())
<<<RMSE:5773.972139
<<<R2:0.73
rmse有明显下降,R2上升,说明均值填充效果好

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容