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

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

一、回归模型

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

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

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

相关文章
|
7天前
|
机器学习/深度学习 数据采集 数据挖掘
实战派教学:掌握Scikit-learn,轻松实现数据分析与机器学习模型优化!
【10月更文挑战第4天】Scikit-learn凭借高效、易用及全面性成为数据科学领域的首选工具,简化了数据预处理、模型训练与评估流程,并提供丰富算法库。本文通过实战教学,详细介绍Scikit-learn的基础入门、数据预处理、模型选择与训练、评估及调优等关键步骤,助你快速掌握并优化数据分析与机器学习模型。从环境搭建到参数调优,每一步都配有示例代码,便于理解和实践。
43 2
|
4天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
【10月更文挑战第6天】如何使用机器学习模型来自动化评估数据质量?
|
2天前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
10 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
2天前
|
机器学习/深度学习 前端开发 网络架构
Django如何调用机器学习模型进行预测
Django如何调用机器学习模型进行预测
26 5
|
2天前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
9 1
|
10天前
|
机器学习/深度学习 算法 知识图谱
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
|
10天前
|
机器学习/深度学习 算法 数据挖掘
机器学习入门(二):如何构建机器学习模型,机器学习的三要素,欠拟合,过拟合
机器学习入门(二):如何构建机器学习模型,机器学习的三要素,欠拟合,过拟合
|
11天前
|
机器学习/深度学习 数据可视化 算法
机器学习中的回归分析:理论与实践
机器学习中的回归分析:理论与实践
|
12天前
|
机器学习/深度学习 数据采集 算法
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
26 2
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024