Python实现多元回归实战——商品销售

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mico_cmm/article/details/87003846

 备注:'Advertising.csv'是一个包含200行的商品信息数据(下载地址:在我的资源页面https://download.csdn.net/download/mico_cmm/10952846)。

下面使用该数据进行多元回归分析。

# 多元回归分析
# 加载数据
import pandas as pd
data=pd.read_csv('Advertising.csv')
data.head() # 显示前五行
# print(data)

# 数据特征分析
import matplotlib.pyplot as plt
fig,axes=plt.subplots(1,3,figsize=(9,3))
for n in range(3):
    axes[n].scatter(data.ix[:,n+1],data.ix[:,4])

feature_cols=['TV','Radio','Newspaper']
X=data[feature_cols]
print(X.head()) # 打印前五行数据
print(type(X)) # X的数据类型
print(X.shape) # X的行数、列数

y=data['Sales']
print(y.head())

# 使用交叉验证
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=1)
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)

# 算法实现
from sklearn.linear_model import LinearRegression
linreg=LinearRegression()
model=linreg.fit(X_train,y_train)
print(model)
print(linreg.intercept_)
print(linreg.coef_)

model.score(X_train,y_train)

y_pred=linreg.predict(X_test)
print(y_pred)

# 拟合检验
import matplotlib.pyplot as plt
plt.figure()
plt.plot(range(len(y_pred)),y_pred,'b',label="predict")
plt.plot(range(len(y_pred)),y_test,'r',label="test")
plt.legend(loc="upper right")
plt.xlabel("the number of sales")
plt.ylabel("value of sales")
plt.show()

猜你喜欢

转载自blog.csdn.net/mico_cmm/article/details/87003846