#将pyplot字体转化成中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
plt.rcParams['font.size'] = 12 # 设置字体大小
plt.rcParams['axes.unicode_minus'] = False # 设置正常显示负号
案例背景:寻找房屋面积与价格的关系并进行预测图
#需要的包
import matplotlib.pyplot as plt
from matplotlib import font_manager
import matplotlib
import numpy as np
import pandas as pd # 读取数据函数
data = pd.read_csv(r"C:\Users\A\Desktop\python\上课用\数据挖掘案例\回归分析\预测房屋面积.csv")
X = [] #空列表用于接收数据
Y = []
for single_square_feet ,single_price_value in zip(data['平方英尺'],data['价格(元/平方英尺)']): #遍历数据X.append([float(single_square_feet)]) #存储在相应的list列表中Y.append(float(single_price_value)) #存储在相应的list列表中
X,Y#将pyplot字体转化成中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
plt.rcParams['font.size'] = 12 # 设置字体大小
plt.rcParams['axes.unicode_minus'] = False # 设置正常显示负号#画图判断
def runplt(size=None):plt.figure(figsize=size)#figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)plt.title('散点图')plt.xlabel('平方英尺')plt.ylabel('价格')plt.axis([50, 800, 6450, 20000])plt.grid(True)return plt
plt = runplt()
X=X #赋值
y=Y
plt.plot(X, y,"k.")#"k."表示散点图,否则为折线
plt.show()
图像为:
#调用sklearn中的linear_model模块进行线性回归。
from sklearn import linear_model
model = linear_model.LinearRegression()
model.fit(X, y) #训练模型
intercept=display(model.intercept_) #截距
coefficient=display(model.coef_) #线性模型的系数
predict_outcome = model.predict(np.array(predict_value).reshape(1, -1)) #预测数据,此处传入数据必须是数组
predicted_value=700
predict_outcome
结果为:
进行拟合效果检验:
#图形检验
regr = linear_model.LinearRegression().fit(X, y)
plt.scatter(X,y,color='blue') #散点图,设置颜色
plt.plot(X,regr.predict(X),color='red',linewidth=4) #拟合曲线
plt.xticks(())
plt.yticks(())
plt.show()