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

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

一、回归模型

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月前
|
机器学习/深度学习 存储 设计模式
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
143 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
7天前
|
机器学习/深度学习 数据采集 分布式计算
大数据分析中的机器学习基础:从原理到实践
大数据分析中的机器学习基础:从原理到实践
47 3
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署 DeepSeek-V3 模型,阿里云 PAI-Model Gallery 最佳实践
本文介绍了如何在阿里云 PAI 平台上一键部署 DeepSeek-V3 模型,通过这一过程,用户能够轻松地利用 DeepSeek-V3 模型进行实时交互和 API 推理,从而加速 AI 应用的开发和部署。
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
384 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
2月前
|
机器学习/深度学习 安全 PyTorch
FastAPI + ONNX 部署机器学习模型最佳实践
本文介绍了如何结合FastAPI和ONNX实现机器学习模型的高效部署。面对模型兼容性、性能瓶颈、服务稳定性和安全性等挑战,FastAPI与ONNX提供了高性能、易于开发维护、跨框架支持和活跃社区的优势。通过将模型转换为ONNX格式、构建FastAPI应用、进行性能优化及考虑安全性,可以简化部署流程,提升推理性能,确保服务的可靠性与安全性。最后,以手写数字识别模型为例,展示了完整的部署过程,帮助读者更好地理解和应用这些技术。
120 20
|
17天前
|
人工智能 自然语言处理 搜索推荐
全网首发 | PAI Model Gallery一键部署阶跃星辰Step-Video-T2V、Step-Audio-Chat模型
Step-Video-T2V 是一个最先进的 (SoTA) 文本转视频预训练模型,具有 300 亿个参数,能够生成高达 204 帧的视频;Step-Audio 则是行业内首个产品级的开源语音交互模型,通过结合 130B 参数的大语言模型,语音识别模型与语音合成模型,实现了端到端的文本、语音对话生成,能和用户自然地进行高质量对话。PAI Model Gallery 已支持阶跃星辰最新发布的 Step-Video-T2V 文生视频模型与 Step-Audio-Chat 大语言模型的一键部署,本文将详细介绍具体操作步骤。
|
18天前
|
机器学习/深度学习 数据挖掘 定位技术
多元线性回归:机器学习中的经典模型探讨
多元线性回归是统计学和机器学习中广泛应用的回归分析方法,通过分析多个自变量与因变量之间的关系,帮助理解和预测数据行为。本文深入探讨其理论背景、数学原理、模型构建及实际应用,涵盖房价预测、销售预测和医疗研究等领域。文章还讨论了多重共线性、过拟合等挑战,并展望了未来发展方向,如模型压缩与高效推理、跨模态学习和自监督学习。通过理解这些内容,读者可以更好地运用多元线性回归解决实际问题。
|
2月前
如何看PAI产品下训练(train)模型任务的费用细节
PAI产品下训练(train)模型任务的费用细节
98 6
|
3月前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
304 15

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等