1.1 一元线性回归分析案例

#将pyplot字体转化成中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
plt.rcParams['font.size'] = 12  # 设置字体大小
plt.rcParams['axes.unicode_minus'] = False  # 设置正常显示负号

1.1 一元线性回归分析案例_第1张图片

案例背景:寻找房屋面积与价格的关系并进行预测图

#需要的包
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()

图像为:1.1 一元线性回归分析案例_第2张图片 

 

#调用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

结果为:1.1 一元线性回归分析案例_第3张图片

进行拟合效果检验:

#图形检验
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() 

1.1 一元线性回归分析案例_第4张图片

 

你可能感兴趣的:(数据分析案例,回归,数据挖掘,机器学习)