机器学习多元线性回归最简单的一个算法,预测商品销售额

数据介绍

商品的销售可能与电视广告的投入,广播,报纸广告的投入有关系,通过分析,找出他们是怎么影响销售额,即求出多元线性回归的回归系数。数据下载
链接:https://pan.baidu.com/s/1JvxF-V2CV2ThoNVENzWTBw
提取码:pdj8

代码

#导入模块包

import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn import metrics
import pandas as pd
from sklearn.linear_model import LinearRegression
import numpy as np
import seaborn as sns

#读取数据
``

data = pd.read_csv('Advertising.csv')
#创建特征列表
feature_cols=['TV', 'radio', 'newspaper']
#使用列表选择data的子集
X=data[feature_cols]
# print(X.head())
y=data['sales']
# print(y.head())
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=1,test_size=0.2)#分为训练集和测试集,训练集占0.8
# print(X_train.shape)
# print(y_test.shape)

#训练模型

linear_reg=LinearRegression()#尝试了下不能直接使用LinearRegression()来进行拟合
model=linear_reg.fit(X_train,y_train)
print('截距是:',model.intercept_)
print('系数是:',model.coef_)
#预测结果
y_predict=linear_reg.predict(X_test)


#测试准确度

'''
print(type(y_predict),type(y_test))
print(len(y_predict),type(y_test))
print(y_predict.shape,y_test.shape)
sum_mean=0
for i in range(len(y_predict)):
    sum_mean+=(y_predict[i]-y_test.values[i])**2
sum_erro=np.sqrt(sum_mean/40)
print('Rmse',sum_erro)
这是一个具体的求RMSE 的公式,下边的那个是一个包,可以直接求出
'''
print ('RMSE',np.sqrt(metrics.mean_squared_error(y_test, y_predict)))#squared先求差的平方再求平均数,再求开平方

绘制ROC曲线

plt.figure()
plt.plot(range(len(y_predict)),y_predict,'b',label='predict')
plt.plot(range(len(y_test)),y_test,'r',label='test')
plt.legend()#显示图中的标签
plt.xlabel('the number of sales')#横坐标
plt.ylabel('value of sales')#纵坐标
plt.show()

#结论
通过简单的数据集,分析出影响销售额的三种因素的回归系数
发发发
电视广告对商品销售的影响最大,这也是与实际生活中判断的相符
在这里插入图片描述
从上图可以看模型的测试集的预测的出的结果y_predict与真实的测试值y_test误差很小,说明整个数据拟合出的模型还是很不错,当然也是因为只考虑了三个简单的影响因素,实际生活中影响销售额的因素是很多的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值