python实现一元线性回归预测电影票房收入

利用回归分析来确定多个变量的依赖关系的方程称为回归方程。如果回归方程所呈现的图形为一条直线,则称为线性回归方程

y=kx+b即称为一元线性回归,也就是大家初中学的一次函数,原理比较简单,不再赘述。

问题描述:电影公司投资拍摄了五部电影,并且整理了各部影片的投资金额和票房收入,电影的投入和票房收入如下,接下来要拍一部投资两千万的电影,使用一元线性回归预测新电影的票房收入

1:数据可视化如下

可以看出 可以用一条直线来拟合

代码如下

import  matplotlib.pyplot as plt
import matplotlib; matplotlib.use('TkAgg')
def drwaplt():
    plt.figure()
    plt.title('cost and income of a film')
    plt.xlabel('cost(million yuan)')
    plt.ylabel('income(million yuan')
    plt.axis([0,25,0,60])
    plt.grid(True)
x=[[6],[9],[12],[14],[16]]
y=[[9],[12],[29],[35],[59]]
drwaplt()
plt.plot(x,y,'k.')
plt.show()

 2:线性回归预测可视化如下

 

 预测代码如下:

from sklearn import linear_model
import  matplotlib.pyplot as plt
import matplotlib; matplotlib.use('TkAgg')
def drawplt():
    plt.figure()
    plt.title('cost(million yuan)')
    plt.xlabel('cost(million yuan)')
    plt.ylabel('income(million yuan)')
    plt.axis([0,25,0,60])
    plt.grid(True)
x=[[6],[9],[12],[14],[16]]
y=[[9],[12],[29],[35],[59]]
model=linear_model.LinearRegression()
model.fit(x,y)
a=model.predict([[20]])
w=model.coef_
b=model.intercept_
print('投资两千万的电影预计票房收入为:{:.2f}百万元'.format(model.predict([[20]])[0][0]))
print("回归模型的系数是",w)
print("回归模型的截距是",b)
print("最佳拟合线:y=",int(b),"+",int(w),"x")
drawplt()
plt.plot(x,y,'k.')
plt.plot([0,25],[b,25*w+b])
plt.show()


猜你喜欢

转载自blog.csdn.net/jiebaoshayebuhui/article/details/126982853