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

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

一、回归模型

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-这个值,最终值越大表示预测和样本值的分散分布程度越相近。

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

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

相关文章
|
27天前
|
机器学习/深度学习 存储 设计模式
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
60 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
|
30天前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
166 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
19天前
|
机器学习/深度学习 安全 PyTorch
FastAPI + ONNX 部署机器学习模型最佳实践
本文介绍了如何结合FastAPI和ONNX实现机器学习模型的高效部署。面对模型兼容性、性能瓶颈、服务稳定性和安全性等挑战,FastAPI与ONNX提供了高性能、易于开发维护、跨框架支持和活跃社区的优势。通过将模型转换为ONNX格式、构建FastAPI应用、进行性能优化及考虑安全性,可以简化部署流程,提升推理性能,确保服务的可靠性与安全性。最后,以手写数字识别模型为例,展示了完整的部署过程,帮助读者更好地理解和应用这些技术。
62 18
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署 DeepSeek-V3 模型,阿里云 PAI-Model Gallery 最佳实践
本文介绍了如何在阿里云 PAI 平台上一键部署 DeepSeek-V3 模型,通过这一过程,用户能够轻松地利用 DeepSeek-V3 模型进行实时交互和 API 推理,从而加速 AI 应用的开发和部署。
|
16天前
如何看PAI产品下训练(train)模型任务的费用细节
PAI产品下训练(train)模型任务的费用细节
41 4
|
3月前
|
人工智能 JSON 算法
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式、 AI Native 的大模型与 AIGC 工程平台,为开发者和企业客户提供了 Qwen2.5-Coder 系列模型的全链路最佳实践。本文以Qwen2.5-Coder-32B为例,详细介绍在 PAI-QuickStart 完成 Qwen2.5-Coder 的训练、评测和快速部署。
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
|
2月前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
179 15
|
2月前
|
机器学习/深度学习 数据采集 运维
机器学习在运维中的实时分析应用:新时代的智能运维
机器学习在运维中的实时分析应用:新时代的智能运维
96 12
|
2月前
|
编解码 机器人 测试技术
技术实践 | 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型快速搭建专业领域知识问答机器人
Qwen2-VL是一款具备高级图像和视频理解能力的多模态模型,支持多种语言,适用于多模态应用开发。通过PAI和LLaMA Factory框架,用户可以轻松微调Qwen2-VL模型,快速构建文旅领域的知识问答机器人。本教程详细介绍了从模型部署、微调到对话测试的全过程,帮助开发者高效实现定制化多模态应用。
|
2月前
|
机器学习/深度学习 人工智能 算法
人工智能浪潮下的编程实践:构建你的第一个机器学习模型
在人工智能的巨浪中,每个人都有机会成为弄潮儿。本文将带你一探究竟,从零基础开始,用最易懂的语言和步骤,教你如何构建属于自己的第一个机器学习模型。不需要复杂的数学公式,也不必担心编程难题,只需跟随我们的步伐,一起探索这个充满魔力的AI世界。
65 12