ITPub博客

首页 > 人工智能 > 机器学习 > 监督学习之回归

监督学习之回归

机器学习 作者:AIBigbull2050 时间:2019-08-30 16:41:43 0 删除 编辑
2019-08-28 19:03:20
监督学习之回归

小学课本上讲过

线性回归

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

横纵坐标的名称。

结果展示、

监督学习之回归

https://www.toutiao.com/a6730171663125578251/

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946223/viewspace-2655579/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
SAP虾客(~Suzhou Boy~)

注册时间:2019-08-22

  • 博文量
    1788
  • 访问量
    1220894