标签:一元 plt plot 回归 dia print 线性 y2 price
机器学习- 一元线性回归
通过分析披萨的直径与价格的线性关系,来预测任一直径的披萨的价格
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
def runplt():
plt.figure()
plt.title("Pizza price plotted against diameter")
plt.xlabel('Diameter')
plt.ylabel('Price')
plt.grid(True)
plt.xlim(0, 25)
plt.ylim(0, 25)
return plt
pizza = pd.DataFrame({'Diameter':[6 ,8, 10, 14, 18],'Price':[7.0,9.0,13.0,17.5,18.0]})
dia = pizza.loc[:,'Diameter'].values
price = pizza.loc[:,'Price'].values
print(dia)
print(price)
#plt = runplt()
#plt.plot(dia, price,'k.')
#plt.show()
variance = np.var(dia,ddof=1)
covariance = np.cov(dia,price)[0][1]
w = covariance/variance
b = np.mean(price)-w*np.mean(dia)
print("w = %f\n b = %f" % (w,b))
plt = runplt()
y_price = w*dia + b
plt.plot(dia,price,'k.')
plt.plot(dia,y_price,'k-')
X2 = 0 # 取个0点预测值
y2 = w*X2 + b # 进行预测
print(y2)
#plt.show()
model = LinearRegression() # 创建模型
X = dia.reshape((-1,1))#将dia转换为1列
y = price
model.fit(X, y) # 拟合
X2 = [[0], [25]] # 取两个预测值
y2 = model.predict(X2) # 进行预测
print(y2) # 查看预测值
#plt = runplt()
plt.plot(dia, price, 'k.')
plt.plot(X2, y2, 'b--') # 画出拟合曲线
# 画出残差
yr = model.predict(X)
for index, x in enumerate(X):
plt.plot([x, x], [y[index], yr[index]], 'r-')
plt.show()
标签:一元,plt,plot,回归,dia,print,线性,y2,price 来源: https://blog.csdn.net/qq_53223558/article/details/121445896
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。