5.线性回归算法4/20(代码片段)

jwwzone jwwzone     2023-04-01     558

关键词:

1.本节重点知识点用自己的话总结出来,可以配上图片,以及说明该知识点的重要性

 · 我们先了解回归算法:

      技术图片

 · 课上老师举了线性回归的应用:①房价预测;②销售额预测;③贷款额度预测;

   我们可以发现做线性回归,需要的数据都应该为连续型,最终要预测的因素成为目标值,把影响的因素成为特征;如果影响的因素只有一个,那么这就是一个单线性回归,如果有多个影响因素,那就是一个多线性回归。

  我认为这里有一个重要的知识点就是:线性回归的数据应该是连续型的,如果拿到的数据如下图红色标点,那便不符合线性回归模型。

 

      技术图片 

   · 线性回归模型:

      技术图片

   (1)如果是一个变量,那就是二维空间;多个变量就是三维空间。

  (2)线性回归问题可以转换为矩阵乘积问题,矩阵在线性回归中扮演一个重要的角色。矩阵的计算正好满足线性回归的要求,所以矩阵的计算也是一个重点知识:

     ①数组与矩阵的特性与区别:

     技术图片

     ②用代码比较数据和矩阵相乘的结果:

      技术图片

  ·  机器学习需要迭代算法来减少误差,这里引入一个 损失函数(误差的大小);学习的目的,就是将损失函数最小化:

      技术图片

 

    减少误差的方法(优化线性回归的策略):

      ①正规方程:

          技术图片

 

     ②梯度下降法:

          技术图片

    ?为学习速率,学习速率的取值取决于数据样本。机器进行学习,多次迭代,如果损失函数在变小,说明结果越准确,取值准确。

    关于梯度下降的具体概念可以参考:https://www.cnblogs.com/jwwzone/p/12684355.html的第二题。

 梯度下降代码:

# 梯度下降
import random
import time
import matplotlib.pyplot as plt

# 产生数据
_xs = [0.1 * x for x in range(0, 10)]
_ys = [12 * i + 4 for i in _xs]
print(_xs)
print(_ys)

w = random.random()
b = random.random()

a1 = []
b1 = []
for i in range(100):
    for x, y in zip(_xs, _ys):
        o = w * x + b  # 预测值
        e = (o - y)  # 误差
        loss = e ** 2  # 损失
        dw = 2 * e * x  # 对w求导
        db = 2 * e * 1  # 对d求导
        # 梯度下降,0.1为学习率
        w = w - 0.1 * dw
        b = b - 0.1 * db
        # 最终结果:loss越小越好,w接近12,b接近4
        print(loss=0,w=1,b=2.format(loss, w, b))
    a1.append(i)
    b1.append(loss)
    plt.plot(a1, b1)
    plt.pause(0.1)

plt.show()

 

2.思考线性回归算法可以用来做什么?(大家尽量不要写重复)

  可以用于:

  (1)家庭家电的预测:①时间与功率之间的关系;②时间与电压之间的多项式关系。

  (2)医学上可以预测年龄和血压的关系。

  (3)预测一个发展的电信市场的网络容量。

 

3.自主编写线性回归算法 ,数据可以自己造,或者从网上获取。(加分题)

   数据是我以前爬虫的广州市二手房数据,前几天爬了一次被抓到了哈哈。

   数据如下(获取单价和总价作为数据样本):    

      技术图片 

   用单价来预测总价,可视化结果如下:

      技术图片

   我们可以看到预测值和真实值还是比较接近的,这说明用单价来预测总价还是比较靠谱的。从模型的权值也可以看出,预测结果相对准确:

                   技术图片

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv(house.csv, index_col=0)  # 读取数据

# 线型回归
from sklearn.linear_model import LinearRegression

regr = LinearRegression()  # 构建模型
regr.fit(data[[单价]].values, data[总价])
print(权值:, regr.coef_, 截距:, regr.intercept_)
plt.plot(regr.predict(data[[单价]].values), linewidth=1.7, linestyle=-, color=#A6CEE3)  # 预测结果
plt.plot(data[[总价]].values, linewidth=1.7, linestyle=-, c=#FDBF6F)

# 可视化处理
plt.rcParams[font.sans-serif] = SimHei
plt.rcParams[axes.unicode_minus] = False
plt.legend([真实值, 预测值])
plt.title(广州市二手房价格线型回归模型预测结果)
plt.show()

  我们也可以画出单价和总价呈线性关系的可视化视图:

      技术图片

plt.scatter(data[单价].values, data[总价].values)
plt.plot(data[[单价]].values, regr.predict(data[[单价]].values), c=r)
plt.title(广州市二手房价格与单价散点图)
plt.xlabel(单价)
plt.ylabel(总价)
plt.show()

5.线性回归算法(代码片段)

...可以配上图片,以及说明该知识点的重要性(1)什么是线性回归算法回归:人们在测量事物的时候因为客观条件所限,求得的都是测量值,而不是事物真实的值,为了能够得到真实值,无限次的进行测量,最后通过这些测量数... 查看详情

回归-线性回归算法(房价预测项目)(代码片段)

...录简介损失函数优化算法正规方程梯度下降项目实战简介线性回归(LinearRegression)是回归任务中最常见的算法,利用回归方程对自变量和因变量进行建模,且因变量和自变量之间是线性关系而得名,从而可以... 查看详情

回归-线性回归算法(房价预测项目)(代码片段)

...录简介损失函数优化算法正规方程梯度下降项目实战简介线性回归(LinearRegression)是回归任务中最常见的算法,利用回归方程对自变量和因变量进行建模,且因变量和自变量之间是线性关系而得名,从而可以... 查看详情

史诗级干货长文线性回归算法(代码片段)

线性回归算法前言1.线性回归简介1.1线性回归应用场景1.2什么是线性回归1.2.1定义与公式1.2.2线性回归的特征与目标的关系分析2.线性回归API初步使用2.1线性回归API2.2举例2.2.1步骤分析2.2.2代码过程3.数学:求导3.1常见函数的导数3.2导... 查看详情

机器学习模型和算法(代码片段)

文章目录python简介python基本语法监督学习--回归模型线性回归模型一元线性回归线性回归最小二乘代码实现多元线性回归梯度下降法和最小二乘法相比线性回归梯度下降代码实现非线性回归python简介略python基本语法文件开头加上#... 查看详情

机器学习-线性回归(代码片段)

线性回归简介:之前的文章中介绍过一种回归算法,梯度下降算法,这里再看看另外一个回归算法,线性回归,主要的内容包括简单的线性回归和局部加权回归算法。在回归里面需要考虑的问题就是,我如... 查看详情

机器学习之线性回归岭回归lasso回归(代码片段)

...标称型数据,而回归的目标变量是连续型数据,主要包括线性回归,岭回归,lasso回归,前向逐步回归。2、线性回归线性回归主要用于处理线性数据,结果易于理解,计算复杂度不高,但是处理不了非线性数据。线性回归用最适... 查看详情

机器学习一般线性回归(代码片段)

...类回归模型,之前总结了逻辑回归模型,这里总结一下"线性回归"模型。 0.概述线性回归应该是我们听过次数最多的机器学习算法了。在一般的统计学教科书中,最后都会提到这种方法。因此该算法也算是架起了数理统计与... 查看详情

aiot(人工智能+物联网)知识总结+实战项目(代码片段)

...块Pandas1.4数据可视化模块2.算法数学基础2.1微积分基础2.2线性代数基础2.3多元函数微分学2.4线性代数高级2.5概率论2.6最优化3.线性回归算法3.1多元线性回归3.2梯度下降法3.3归一化3.4正则化3.5Lasso回归、Ridge回归、多项式回归4.线性... 查看详情

机器学习-线性回归算法(房价预测项目)(代码片段)

...默,忍不住分享一下给大家。点击跳转到网站。简介线性回归(LinearRegression)是回归任务中最常见的算法,利用回归方程对自变量和因变量进行建模,且因变量和自变量之间是线性关系而得名&# 查看详情

机器学习sklearn监督学习回归算法线性回归linearregression(代码片段)

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_model#设置中文字体plt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=False#设置自变量和因变 查看详情

通俗得说线性回归算法线性回归实战(代码片段)

前情提要:通俗得说线性回归算法(一)线性回归初步介绍一.sklearn线性回归详解1.1线性回归参数介绍完线性回归,那么我们来看看如何运用sklearn来调用线性回归模型,进行训练和预测。defLinearRegression(fit_intercept=True,normalize=False... 查看详情

机器学习回归算法-精讲(代码片段)

回归算法回归算法线性回归和非线性回归:线性回归线性回归方程:损失函数:损失函数推理过程:公式转换:误差公式:转化为`θ`求解:似然函数求`θ`:对数似然:损失函数࿱... 查看详情

5.线性回归算法

...及说明该知识点的重要性(1)回归与分类的区别 (2)线性回归的应用 ①房价预测②贷款额度预测③销售额预测④面积与房价的关系(3)矩阵的乘积运算(4)线性回归关系模型  (5)损失函数  可以计算误差... 查看详情

机器学习sklearn(78):算法实例(三十五)回归线性回归大家族多重共线性:岭回归与lassolasso(代码片段)

3Lasso3.1Lasso与多重共线性      3.2Lasso的核心作用:特征选择  importnumpyasnpimportpandasaspdfromsklearn.linear_modelimportRidge,LinearRegression,Lassofromsklearn.model_selecti 查看详情

探索五大机器学习技术及其应用(代码片段)

...以及使每个算法更适合特定任务的注意事项。这将包括对线性回归、逻辑回归、随机森林、XGBoost和K-means的简要介绍。对于每种算法,我将介绍以下内容:基本原理。示例代码。应该什么时候使用。优点和缺点。文章目录... 查看详情

用python实现岭回归算法与lasso回归算法并处理iris数据集(代码片段)

在介绍岭回归算法与Lasso回归算法之前,先要回顾一下线性回归算法。根据线性回归模型的参数估计公式可知可知,得到的前提是矩阵可逆。换句话说就是样本各个特征(自变量)之间线性无关。然而在实际问题中,常常会出现... 查看详情

r语言-岭回归及lasso算法(代码片段)

前文我们讲到线性回归建模会有共线性的问题,岭回归和lasso算法都能一定程度上消除共线性问题。岭回归>#########正则化方法消除共线性>###岭回归>###glmnet只能处理矩阵>library(glmnet)>library(mice)>creditcard_exp<-creditcard_... 查看详情