# 【阿旭机器学习实战】【29】产品广告投放实战案例---线性回归

## 数据处理过程及源码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
data = pd.read_csv("./data/Advertising.csv")
data.head()
 TV sales 0 230.1 22.1 1 44.5 10.4 2 17.2 9.3 3 151.5 18.5 4 180.8 12.9
data.columns
Index(['TV', 'sales'], dtype='object')

### 通过数据可视化分析数据

plt.figure(figsize=(16, 8))
plt.scatter(data['TV'], data['sales'], c ='black')
plt.ylabel("Sales")
plt.show()

### 训练线性回归模型

X = data['TV'].values.reshape(-1,1)
y = data['sales'].values.reshape(-1,1)
reg = LinearRegression()
reg.fit(X, y)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
normalize=False)
print('a = {:.5}'.format(reg.coef_[0][0]))
print('b = {:.5}'.format(reg.intercept_[0]))
print("线性模型为: Y = {:.5}X + {:.5} ".format(reg.coef_[0][0], reg.intercept_[0]))
a = 0.047537
b = 7.0326

### 可视化训练好的线性回归模型

predictions = reg.predict(X)
plt.figure(figsize=(16, 8))
plt.scatter(data['TV'], data['sales'], c ='black')
plt.plot(data['TV'], predictions,c ='blue', linewidth=2)
plt.ylabel("Sales")
plt.show()

## 结果预测

# 做预测

predictions = reg.predict([[100])
print('投入一亿元的电视广告, 预计的销售量为{:.5}亿'.format( predictions[0][0]) )
投入一亿元的电视广告, 预计的销售量为11.786亿

|
13天前
|

98 5
|
13天前
|

58 4
|
13天前
|

97 4
|
13天前
|

61 4
|
13天前
|

77 3
|
13天前
|

87 3
|
13天前
|

105 3
|
13天前
|

101 3
|
13天前
|

66 3
|
13天前
|

88 2