二、机器学习之回归模型分析

简介: 二、机器学习之回归模型分析

一、回归模型

1.1 回归模型定义

回归模型是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。也就是我们高中所说的一次函数问题

1.2 回归模型分析方法

回归分析是研究一个变量(被解释变量)关于另一个(些)变量(解释变量)的具体依赖关系的计算方法和理论是建模和分析数据的重要工具。

在这里,我们使用曲线或线来拟合这些数据点,在这种方式下,从曲线或线到数据点的距离差异最小。下面是回归分析的几种常用的方法

  • 线性回归( Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 多项式回归(Polynomial Regression)
  • 岭回归(Ridge Regression)

这四种是在机器学习中常见的回归分析方法,下面来一一分解一下:

二、回归分析

2.1 线性回归和多项式回归

2.1.1 线性回归定义

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。

回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析

2.2.2 代码实现分析:
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import random
plt.rcParams["font.sans-serif"]=["simhei"]
plt.rcParams["axes.unicode_minus"]=False
%matplotlib inline
ex0=pd.read_table("ex0.txt",header=None)
ex0.head()

获得特征矩阵

def get_Mat(dataSet):
    xMat=np.mat(dataSet.iloc[:,:-1].values)
    yMat=np.mat(dataSet.iloc[:,-1].values).T
    return xMat,yMat
'运行
运行

采样展示数据

xMat,yMat=get_Mat(ex0)
def plotshow(dataSet):
    xMat,yMat=get_Mat(dataSet)
    plt.scatter(xMat.A[:,1],yMat.A,c="b",s=5)
    plt.show()
plotshow(ex0)

获得线性回归画图

def satandRegres(dataSet):
    xMat,yMat=get_Mat(dataSet)
    xTx=xMat.T*xMat
    if np.linalg.det(xTx)==0:
        print("矩阵为奇异矩阵,无法求逆")
        return
    ws=xTx.I*(xMat.T*yMat)
    return ws
#打印回归函数
def plotReg(dataSet):
    xMat,yMat=get_Mat(dataSet)
    plt.scatter(xMat.A[:,1],yMat.A,c="b",s=5)
    ws=satandRegres(dataSet)
    yHat=xMat*ws
    plt.plot(xMat[:,1],yHat,c="r")
    plt.show()
plotReg(ex0)

xMat,yMat=get_Mat(ex0)
ws=satandRegres(ex0)
yHat=xMat*ws
np.corrcoef(yHat.T,yMat.T)

可得相关系数

2.2 逻辑回归

2.2.1 逻辑回归定义

Logistic Regression(简称LR)擅长处理分类问题(用户点击率、用户违约信息预测、垃圾邮件检测、疾病预测、和用户等级问题(多分类问题))

其结果是在于线性回归的基础上加上了一个,sigmold函数(也就是分类函数):

sigmoid函数表达式如下:

f ( x ) = 1 / ( 1 + e y ) f(x)=1/(1+e^y)f(x)=1/(1+ey)

2.2.2 代码说明
import numpy as np
import math
import matplotlib.pyplot as plt
%matplotlib inline
X=np.linspace(-5,5,200)
y=[1/(1+math.e**(-x)) for x in X]
plt.plot(X,y)
plt.show()

其结果是先模型出数据的线性回归,在根据sigmold函数将原来的y值和标准的y^大于0的可以分为正类,小于0的分为负类

2.3 多项式回归

2.3.1 多项式回归定义

多项式回归,回归函数是回归变量多项式的回归。多项式回归模型是线性回归模型的一种,此时回归函数关于回归系数是线性的。

直线回归研究的是一个依变量与一个自变量之间的回归问题,但是,在畜禽、水产科学领域的许多实际问题中,影响依变量的自变量往往不止一个,而是多个,比如绵羊的产毛量这一变量同时受到绵羊体重、胸围、体长等多个变量的影响,因此需要进行一个依变量与多个自变量间的回归分析,即多元回归分析。

2.4 岭回归

2.4.1 岭回归定义

岭回归(英文名:ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。

通常岭回归方程的R平方值会稍低于普通回归分析,但回归系数的显著性往往明显高于普通回归,在存在共线性问题和病态数据偏多的研究中有较大的实用价值。

2.4.2 岭回归函数
def get_Mat(dataSet):
    xMat=np.mat(dataSet.iloc[:,:-1].values)
    yMat=np.mat(dataSet.iloc[:,-1].values).T
    return xMat,yMat
'''函数功能:
            使用岭回归来计算归系数
    参数说明:lam:认为设定惩罚系数
'''
def rigdeRegres(dataSet,lam=0.2):
    xMat,yMat=get_Mat(dataSet)
    xTx=xMat.T*xMat
    denom=xTx+np.eye(xMat.shape[1])*lam
    ws=denom.I*(xMat.T*yMat)
    return ws
'运行
运行

三、回归模型的评价

对于回归模型效果的判断指标经过了几个过程,从SSE到R-square再到Ajusted R-square, 是一个完善的过程:

3.1 均方误差(mean squared error,mse)

定义:观察值与真实值偏差的平方和与观察次数的比值,

公式:

描述:这就是线性回归中最常用的损失函数,线性回归过程中尽量让该损失函数最小。那么模型之间的对比也可以用它来比较。MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

3.2 标准误差(rmse)

定义:标准差是方差的算术平方根,标准误差是均方误差的算术平方根。

描述标准差是用来衡量一组数自身的离散程度,而均方根误差是用来衡量观测值同真值之间的偏差,它们的研究对象和研究目的不同,但是计算过程类似。

公式:

它的意义在于开个根号后,误差的结果就与数据是一个级别的,可以更好地来描述数据。标准误差对一组测量中的特大或特小误差反映非常敏感,所以,标准误差能够很好地反映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因

3.3 平均绝对误差(MAE)

平均绝对误差能更好地反映预测值误差的实际情况

3.4 R-squared

上面分子就是我们训练出的模型预测的误差和。

下面分母就是瞎猜的误差和。(通常取观测值的平均值)

变形:

3.5 解释方差(explained variance score)

公式:

解释:

可解释方差指标衡量的是所有预测值和样本之间的差的分散程度与样本本身的分散程度的相近程度。本身是分散程度的对比。最后用1-这个值,最终值越大表示预测和样本值的分散分布程度越相近。

最后本文如有错误,请您指正,感谢您的阅读,谢谢。

路漫漫其修远兮,吾将上下而求索。

相关文章
|
2月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
617 109
|
3月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
月之暗面发布开源模型Kimi K2,采用MoE架构,参数达1T,激活参数32B,具备强代码能力及Agent任务处理优势。在编程、工具调用、数学推理测试中表现优异。阿里云PAI-Model Gallery已支持云端部署,提供企业级方案。
287 0
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
|
3月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型
阿里云 PAI-Model Gallery 已同步接入 gpt-oss 系列模型,提供企业级部署方案。
|
4月前
|
机器学习/深度学习 算法 安全
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
本文探讨在敏感数据上应用差分隐私(DP)进行机器学习的挑战与实践。通过模拟DP-SGD算法,在模型训练中注入噪声以保护个人隐私。实验表明,该方法在保持71%准确率和0.79 AUC的同时,具备良好泛化能力,但也带来少数类预测精度下降的问题。研究强调差分隐私应作为模型设计的核心考量,而非事后补救,并提出在参数调优、扰动策略选择和隐私预算管理等方面的优化路径。
341 3
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
|
4月前
|
机器学习/深度学习 人工智能 算法
Post-Training on PAI (4):模型微调SFT、DPO、GRPO
阿里云人工智能平台 PAI 提供了完整的模型微调产品能力,支持 监督微调(SFT)、偏好对齐(DPO)、强化学习微调(GRPO) 等业界常用模型微调训练方式。根据客户需求及代码能力层级,分别提供了 PAI-Model Gallery 一键微调、PAI-DSW Notebook 编程微调、PAI-DLC 容器化任务微调的全套产品功能。
|
4月前
|
机器学习/深度学习 分布式计算 Java
Java 大视界 -- Java 大数据机器学习模型在遥感图像土地利用分类中的优化与应用(199)
本文探讨了Java大数据与机器学习模型在遥感图像土地利用分类中的优化与应用。面对传统方法效率低、精度差的问题,结合Hadoop、Spark与深度学习框架,实现了高效、精准的分类。通过实际案例展示了Java在数据处理、模型融合与参数调优中的强大能力,推动遥感图像分类迈向新高度。
|
4月前
|
机器学习/深度学习 存储 Java
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用(190)
本文探讨了Java大数据与机器学习模型在游戏用户行为分析及游戏平衡优化中的应用。通过数据采集、预处理与聚类分析,开发者可深入洞察玩家行为特征,构建个性化运营策略。同时,利用回归模型优化游戏数值与付费机制,提升游戏公平性与用户体验。
|
5月前
|
存储 人工智能 运维
企业级MLOps落地:基于PAI-Studio构建自动化模型迭代流水线
本文深入解析MLOps落地的核心挑战与解决方案,涵盖技术断层分析、PAI-Studio平台选型、自动化流水线设计及实战构建,全面提升模型迭代效率与稳定性。
216 6
|
4月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据机器学习模型在舆情分析中的情感倾向判断与话题追踪(185)
本篇文章深入探讨了Java大数据与机器学习在舆情分析中的应用,重点介绍了情感倾向判断与话题追踪的技术实现。通过实际案例,展示了如何利用Java生态工具如Hadoop、Hive、Weka和Deeplearning4j进行舆情数据处理、情感分类与趋势预测,揭示了其在企业品牌管理与政府决策中的重要价值。文章还展望了多模态融合、实时性提升及个性化服务等未来发展方向。

热门文章

最新文章