线性回归
线性回归:使用形如y=w T x+b
的线性模型拟合数据输入和输出之
间的映射关系的。
目标:对房屋成交信息建立回归方程,并依据回归方程对房屋价格进行预测
:
• 房屋面积单位为平方英尺(ft 2 )房
• 屋成交价格单位为万
可行性分析
• 简单而直观的方式是通过数据的可视化直接观察房屋成交价格与房
屋尺寸间是否存在线性关系。
• 对于本实验的数据来说,散点图就可以很好的将其在二维平面中进
行可视化表示。
可行性分析
实现步骤:
1.建立工程并导入sklearn包
2.加载训练数据,建立回归方程
3.可视化处理
关于一些相关包的介绍:
NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函
数库。
matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表。
实现步骤——1.建立工程并导入sklearn包
• 创建house.py文件
• 导入sklearn相关包
• import matplotlib.pyplot as plt
• from sklearn import linear_model
表示,matplotlib的pyplot子库,
它提供了和matlab类似的绘图API。
表示,可以调用sklearn中的
linear_model模块进行线性回归。
实现步骤——2.加载训练数据,建立回归方程
• datasets_X = []
• datasets_Y = []
• fr = open('prices.txt','r')
• lines = fr.readlines()
• for line in lines:
• items = line.strip().split(',')
• datasets_X.append(int(items[0]))
• datasets_Y.append(int(items[1]))
• length = len(datasets_X)
• datasets_X = np.array(datasets_X).reshape([length,1])
• datasets_Y = np.array(datasets_Y)
建立datasets_X和datasets_Y用来存储数
据中的房屋尺寸和房屋成交价格。
打开数据集所在文件
prices.txt,读取数据。
一次读取整个文件。
实现步骤——2.加载训练数据,建立回归方程
• datasets_X = []
• datasets_Y = []
• fr = open('prices.txt','r')
• lines = fr.readlines()
• for line in lines:
• items = line.strip().split(',')
• datasets_X.append(int(items[0]))
• datasets_Y.append(int(items[1]))
• length = len(datasets_X)
• datasets_X = np.array(datasets_X).reshape([length,1])
• datasets_Y = np.array(datasets_Y)
逐行进行操作,循环遍历所有数据
去除数据文件中的逗号
将读取的数据转换为int型,并分别写入
datasets_X和datasets_Y。
实现步骤——2.加载训练数据,建立回归方程
• minX = min(datasets_X)
• maxX = max(datasets_X)
• X = np.arange(minX,maxX).reshape([-1,1])
• linear = linear_model.LinearRegression()
• linear.fit(datasets_X, datasets_Y)
调用线性回归模块,建立回归方程,
拟合数据
以数据datasets_X的最大值和最小
值为范围,建立等差数列,方便后
续画图。
线性回归fit函数用于拟合输入输出数据,调用形式为linear.fit(X,y, sample_weight=None):
• X : X为训练向量;
• y : y为相对于X的目标向量;
• sample_weight : 分配给各个样本的权重数组,一般不需要使用,可省略。
实现步骤——2.加载训练数据,建立回归方程
• 如果有需要,可以通过两个属性查看回归方程的系数及截距。
• 具体的代码如下:
#查看回归方程系数
print('Coefficients:', linear.coef_)
#查看回归方程截距
print('intercept:', linear.intercept_)
实现步骤——3.可视化处理
• plt.scatter(datasets_X, datasets_Y, color = 'red')
• plt.plot(X, linear.predict(X), color = 'blue')
• plt.xlabel('Area')
• plt.ylabel('Price')
• plt.show()
scatter函数用于绘制数据
点,这里表示用红色绘制数
据点;
plot函数用来绘制直线,这
里表示用蓝色绘制回归线;
xlabel和ylabel用来指定
横纵坐标的名称。
结果展示、
页面更新:2024-05-02
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号