机器学习:线性回归梯度下降预测波士顿房价

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 机器学习:线性回归梯度下降预测波士顿房价

线性回归

分类: 目标值离散

回归: 目标值连续

线性回归:寻找一种能预测的趋势

线性关系:
    -二维:直线关系
    -三维:平面

线性关系定义

屏幕截图 2021-11-23 121746.png

参数b,偏置项,为了对于单个特征的情况更加通用

参数k,权重

屏幕截图 2021-11-23 121826.png

线性回归定义:

线性回归通过一个或多个自变量与因变量之间进行建模的回归分析

一元线性回归:变量只有一个

多元线性回归:变量两个或以上

通用公式:屏幕截图 2021-11-23 124533.png

其中w,x为矩阵

屏幕截图 2021-11-23 124600.png

属性和权重的组合来预测结果

矩阵

        数组              矩阵
0维      1
1维      [1, 2, 3]
2维      [               必须是二维的
          [1, 2, 3],     满足了特定的运算要求
          [4, 5, 6]      
         ]
3维      [[
           [1, 2, 3],
           [4, 5, 6]
          ],[
           [1, 2, 3],
           [4, 5, 6]
         ]]

数组的运算:加法,乘法

numpy.ndarray


矩阵乘法:

(m行,l列) * (l行,n列) = (m行,n列)

特征值                 权重              目标值
[[1, 2, 3, 4]]   [[1], [2], [3], [4]]   一个样本一个值
(1, 4)              (4, 1)              (1,1)
(100, 4)              (4, 1)              (100,1)

数组相乘

import numpy as np
a = [
  [1, 2, 3, 4], 
  [5, 6, 7, 8], 
  [1, 4, 3, 5]
]
b = [2, 2, 2, 2]
np.multiply(a, b)
Out[5]: 
array([[ 2,  4,  6,  8],
       [10, 12, 14, 16],
       [ 2,  8,  6, 10]])

矩阵相乘

import numpy as np
a = [
  [1, 2, 3, 4], 
  [5, 6, 7, 8], 
  [1, 4, 3, 5]
]
c = [
  [2], 
  [2], 
  [2], 
  [2]
]
np.dot(a, c)
Out[9]: 
array([[20],
       [52],
       [26]])

线性回归

求函数中的参数w,使得损失函数最小

迭代的算法

损失函数(误差大小)

屏幕截图 2021-11-23 125206.png

尽量去减少损失,算法的自我学习过程

算法      策略(损失函数) 优化
线性回归     误差平方和    正规方程
            最小二乘法    梯度下降

最小二乘法之正规方程

屏幕截图 2021-11-23 125315.png

X 为特征矩阵

y 为目标值矩阵

缺点:当特征过于复杂,求解速度太慢

XT 转置

X1求逆 ->X*?=

单位矩阵

[
 [1, 0, 0], 
 [0, 1, 0], 
 [0, 0, 1]
]

最小二乘法之梯度下降

方向

屏幕截图 2021-11-23 125555.png

a是学习速率

沿着这个函数下降的方向找,最后就能找到山谷的最低点,然后更新w值

使用:面对训练数据规模十分庞大的任务

线性回归API

普通最小二乘线性回归

sklearn.linear_model.LinearRegression

coef_ 回归系数

使用SGD最小线性模型

sklearn.linear_model.SGDRegressor

coef_ 回归系数

scikit-learn

优点:封装好,建立模型简单,预测简单

缺点:算法过程,参数都在算法内部优化

v0.18

v0.19 转换器 estimator 要求数据必须是二维数据

reshape(-1, 1)

TensorFlow

封装高低都有,自己实现线性回归

回归性能评估

均方误差(Mean Squared Error)MSE评价机制

image.png

yi预测值

y真实值

梯度下降和正规方程区别

梯度下降 正规方程
需要选择学习率a 不需要
需要多次迭代 一次运算得出
当特征数据量n大时能较好适用 如果特征数量n较大则运算代价较大

适用于各种类型的模型

只适用于线性模型,不适合逻辑回归模型
大规模数据 小规模数据,过拟合

代码示例

# -*- coding: utf-8 -*-
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 加载数据
boston = load_boston()
# 训练集,测试集拆分
X_train, X_test, y_train, y_test = train_test_split(
    boston.data, boston.target, test_size=0.25)
# 数据标准化处理
# 特征值 标准化
std_x = StandardScaler()
X_train = std_x.fit_transform(X_train)
X_test = std_x.transform(X_test)
# 目标值 标准化
std_y = StandardScaler()
y_train = std_y.fit_transform(y_train.reshape(-1, 1))
y_test = std_y.transform(y_test.reshape(-1, 1))
# 正规方程 线性回归预测
lr = LinearRegression()
lr.fit(X_train, y_train)
print(lr.coef_)
y_lr_predict = std_y.inverse_transform(lr.predict(X_test))
print(y_lr_predict)
# 梯度下降 线性回归预测
sgd = SGDRegressor()
sgd.fit(X_train, y_train)
print(sgd.coef_)
y_sgd_predict = std_y.inverse_transform(sgd.predict(X_test))
print(y_sgd_predict)
# 性能评估 均方误差
lr_mse = mean_squared_error(std_y.inverse_transform(y_test), y_lr_predict)
sgd_mse = mean_squared_error(std_y.inverse_transform(y_test), y_sgd_predict)
print(lr_mse)  # 28.97
print(sgd_mse)  # 31.36


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习-线性模型(波士顿房价预测)
机器学习-线性模型(波士顿房价预测)
|
1月前
|
算法 Python
线性回归-最小二乘法入门(波士顿房价)
线性回归-最小二乘法入门(波士顿房价)
20 0
|
23天前
R语言Lasso回归模型变量选择和糖尿病发展预测模型
R语言Lasso回归模型变量选择和糖尿病发展预测模型
|
8月前
|
机器学习/深度学习 算法 API
机器学习梯度下降法应用波士顿房价预测
机器学习梯度下降法应用波士顿房价预测
118 0
|
机器学习/深度学习 算法 测试技术
机器学习实战︱基于多层感知机模型和随机森林模型的某地房价预测
在现实生活中,除了分类问题外,也存在很多需要预测出具体值的回归问题,例如年龄预测、房价预测、股价预测等。相比分类问题而言,回归问题输出类型为一个连续值,如下表所示为两者的区别。在本文中,将完成房价预测这一回归问题。
373 0
机器学习实战︱基于多层感知机模型和随机森林模型的某地房价预测
|
机器学习/深度学习 数据采集 数据可视化
机器学习实战 | 逻辑回归应用之“Kaggle房价预测”
基于kaggle网站所提供的爱荷华州埃姆斯的住宅数据信息,预测每间房屋的销售价格,数据的标签SalePrice是连续性数据,因此可以判定这是一个回归问题。
机器学习实战 | 逻辑回归应用之“Kaggle房价预测”
|
机器学习/深度学习
基于SVM-支持向量机解决波士顿房价预测回归问题
基于SVM-支持向量机解决波士顿房价预测回归问题
331 0
基于SVM-支持向量机解决波士顿房价预测回归问题
|
机器学习/深度学习 算法 索引
【阿旭机器学习实战】【9】随机梯度下降(SGD)进行乳腺癌良恶性预测,并与逻辑斯蒂回归预测结果进行对比
【阿旭机器学习实战】【9】随机梯度下降(SGD)进行乳腺癌良恶性预测,并与逻辑斯蒂回归预测结果进行对比
【阿旭机器学习实战】【9】随机梯度下降(SGD)进行乳腺癌良恶性预测,并与逻辑斯蒂回归预测结果进行对比
|
机器学习/深度学习 算法 TensorFlow
机器学习:线性回归梯度下降预测波士顿房价
机器学习:线性回归梯度下降预测波士顿房价
349 0
机器学习:线性回归梯度下降预测波士顿房价
|
机器学习/深度学习
机器学习:欠拟合过拟合岭回归预测波士顿房价
机器学习:欠拟合过拟合岭回归预测波士顿房价
211 0