一、数据描述
(以月为单位)
1.数据行/列数量
2.缺失值分布
2.1local_tv有缺失值
2.2对比有无local_tvt投入的销售收入
可见local_tv投入对销售收入影响较大
2.3填充缺失值
填充0
data['local_tv']=data['local_tv'].fillna(0)
二、单变量分析
1.数字型变量描述(平均、最小、最大、标准差)
2.类别型变量
**可见Event变量对销售额的影响比较小,基本上可忽略
3.相关性分析
再次印证event对销售收入影响小;
发现reach微信推送越多,反而收入越小,funny
推送次数为1或2的时候销售收入最高,当超过次数时出现反作用
可以给出适度推送的建议,既降低成本,又能达到最好的宣传效果
查看不同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上升,说明均值填充效果好