监督学习之回归

监督学习之回归

小学课本上讲过

线性回归

线性回归:使用形如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

标签:等差数列   向量   据点   数组   线性   方程   系数   函数   模块   步骤   加载   房屋   文件   数据   价格   体育

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top