机器学习算法梳理(一):线性回归

线性回归 什么是回归分析 回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。通常使用曲线/线来拟合数据点,目标是使曲线到数据点的距离差异最小。 线性回归 线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w和b。通长我们可以... 阅读详情

线性回归算法梳理

1.机器学习的一些概念

监督学习与无监督学习

监督学习有标签,监督学习的任务是学习一个模型,使模型对给定的任意的一个输入,对其都可以映射出一个预测结果。
监督学习可分为“回归”和“分类”问题。在回归问题中,我们会预测一个连续值。也就是说我们试图将输入变量和输出用一个连续函数对应起来;而在分类问题中,我们会预测一个离散值,我们试图将输入变量与离散的类别对应起来。
常见的监督学习:
K-近邻算法(k-Nearest Neighbors,KNN)
决策树(Decision Trees)
朴素贝叶斯(Naive Bayesian)

无监督学习中给定的数据没有任何标签或者说只有同一种标签。在无监督学习中,我们基本上不知道结果会是什么样子,但我们可以通过聚类的方式从数据中提取一个特殊的结构。在无监督学习中给定的数据是和监督学习中给定的数据是不一样的。
常见的无监督学习:
自编码(Autoencoding)
主成分分析(Principal components analysis)
随机森林(Random forests)
K均值聚类(K-means clustering)

在机器学习方法中,泛化能力通俗来讲就是指学习到的模型对未知数据的预测能力。在实际情况中,我们通常通过测试误差来评价学习方法的泛化能力。

过拟合指的是模型在训练集表象很好,预测集时表现不好的情况。
可以使用交叉验证避免过拟合。
欠拟合指的是模型在训练和预测时表现都不好的情况。
矫正方法是继续学习并且试着更换机器学习算法。

交叉验证

1).Hold-Out Method
将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标.此种方法的好处的处理简单,只需随机把原始数据分为两组即可,其实严格意义来说Hold-Out Method并不能算是CV,因为这种方法没有达到交叉的思想,由于是随机的将原始数据分组,所以最后验证集分类准确率的高低与原始数据的分组有很大的关系,所以这种方法得到的结果其实并不具有说服性.
2).K-fold Cross Validation(记为K-CV)
将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标.K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2.K-CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性.
3).Leave-One-Out Cross Validation(记为LOO-CV)
如果设原始数据有N个样本,那么LOO-CV就是N-CV,即每个样本单独作为验证集,其余的N-1个样本作为训练集,所以LOO-CV会得到N个模型,用这N个模型最终的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标.相比于前面的K-CV,LOO-CV有两个明显的优点:
a.每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠。
b.实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。
但LOO-CV的缺点则是计算成本高,因为需要建立的模型数量与原始数据样本数量相同,当原始数据样本数量相当多时,LOO-CV在实作上便有困难几乎就是不显示,除非每次训练分类器得到模型的速度很快,或是可以用并行化计算减少计算所需的时间.

2.线性回归的原理

线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。
  线性回归试图学得一个线性模型以尽可能准确地预测输出结果。
  先从简单的模型看起:  
  首先,我们只考虑单组变量的情况,有: 在这里插入图片描述
  假设有m个数据,我们希望通过x预测的结果f(x)来估计y。其中w和b都是线性回归模型的参数。
  为了能更好地预测出结果,我们希望自己预测的结果f(x)与y的差值尽可能地小,所以我们可以写出代价函数(cost function)如下:
在这里插入图片描述
  接着代入f(x)的公式可以得到:
在这里插入图片描述
不难看出,这里的代价函数表示的是预测值f(x)与实际值y之间的误差的平方。它对应了常用的欧几里得距离简称“欧氏距离”。基于均方误差最小化来求解模型的方法我们叫做“最小二乘法”。在线性回归中,最小二乘法实质上就是找到一条直线,使所有样本数据到该直线的欧式距离之和最小,即误差最小。

3.线性回归损失函数、代价函数、目标函数

基本概念:

损失函数:计算的是一个样本的误差

代价函数:是整个训练集上所有样本误差的平均

目标函数:代价函数 + 正则化项

实际应用:

损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,举例说明:
在这里插入图片描述
上面三个图的曲线函数依次为f1(x),f2(x),f3(x),我们想用这三个函数分别来拟合真实值Y。
我们给定x,这三个函数都会输出一个f(X),这个输出的f(X)与真实值Y可能是相同的,也可能是不同的,为了表示我们拟合的好坏,我们就用一个函数来度量拟合的程度。这个函数就称为损失函数(loss function),或者叫代价函数(cost function)。

在这里插入图片描述
损失函数越小,就代表模型拟合的越好。那是不是我们的目标就只是让loss function越小越好呢?还不是。这个时候还有一个概念叫风险函数(risk function)。风险函数是损失函数的期望,这是由于我们输入输出的(X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集,f(X)关于训练集的平均损失称作经验风险(empirical risk),所以我们的目标就是最小化经验风险。
在这里插入图片描述
到这里完了吗?还没有。
如果到这一步就完了的话,那我们看上面的图,那肯定是最右面的f3(x)的经验风险函数最小了,因为它对历史的数据拟合的最好嘛。但是我们从图上来看它肯定不是最好的,因为它过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)。为什么会造成这种结果?大白话说就是它的函数太复杂了,都有四次方了,这就引出了下面的概念,我们不仅要让经验风险最小化,还要让结构风险最小化。
在这里插入图片描述
这个时候就定义了一个函数J(f),这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化(regularization)。常用的有L1, L2范数。到这一步我们就可以说我们最终的优化函数是:
在这里插入图片描述
即最优化经验风险和结构风险,而这个函数就被称为目标函数

4.优化方法

梯度下降

梯度下降法是最常用的最优化方法。在目标函数为凸函数的问题中,梯度下降法的解是全局最优解。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是最速下降法。
最速下降法只用到了梯度信息,即目标函数的一阶导数信息,而牛顿法则用到了二阶导数信息。
牛顿法的原理与梯度下降法原理相似,只是牛顿法是二阶收敛,梯度下降是一阶收敛。

在这里插入图片描述
梯度下降法,首先我们给每个参数赋值一个随机数,然后按照下面公式进行迭代:
在这里插入图片描述

按照最小二乘法,我们直接求出导数为0的点,但是有时候很难解出方程,就考虑使用迭代的方法,首先取一个随机数,然后每一次去想着目标结果逼近,而为了效率最高,我们向着梯度下降最快的方向,既θ在偏导数上的取值。而α是学习速率,是个很重要的参数,设置过大会导致超过最小值,过小则学习的太慢。
对右边的式子展开得到:
在这里插入图片描述
批量梯度下降迭代如下:
在这里插入图片描述
随机梯度下降
上面公式我们发现,每迭代一次我们都要遍历所有的数据去求和,如果数据量大的话可能计算一次很耗时,于是就有了随机梯度下降,这样虽然解决了数据量大的问题,但是学习速度比较曲折,并且学习到的结果可能只是几个局部最优解。如果数据量小建议用批量梯度下降:
在这里插入图片描述

正规方程

需要满足可逆条件
在这里插入图片描述

5.线性回归评估指标

均方误差MSE:(平方和取平均值)

均方根误差RMSE:(平方和取平均值开根号):平均误差值

平均绝对误差MAE:(绝对值取平均)
在这里插入图片描述

RMSE>MAE大的原因:RMSE会放大误差,所以评估时应尽量让RMSE小
在这里插入图片描述

6.sklearn参数详解

官方文档参数

fit_intercept : boolean, optional, default True
whether to calculate the intercept for this model. If set to False, no intercept will be used in calculations (e.g. data is expected to be already centered).

normalize : boolean, optional, default False
This parameter is ignored when fit_intercept is set to False. If True, the regressors X will be normalized before regression by subtracting the mean and dividing by the l2-norm. If you wish to standardize, please use sklearn.preprocessing.StandardScaler before calling fit on an estimator with normalize=False.

copy_X : boolean, optional, default True
If True, X will be copied; else, it may be overwritten.

n_jobs : int or None, optional (default=None)
The number of jobs to use for the computation. This will only provide speedup for n_targets > 1 and sufficient large problems. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors. See Glossary for more details.

波士顿房价数据集线性回归预测

from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.model_selection import cross_val_predict
from numpy import shape
 
loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_y = loaded_data.target
# print(shape(data_X))
# print(shape(data_y))
# print(data_X[:2, :])
# print(data_y[:2])
 
X_train, X_test, y_train, y_test = train_test_split(data_X, data_y, test_size=0.2)
# print(shape(X_train))
# print shape(X_test)
 
model = LinearRegression()
model.fit(X_train, y_train)
# print (model.coef_)
# print (model.intercept_)
 
y_pred = model.predict(X_test)
from sklearn import metrics
print "MSE:", metrics.mean_squared_error(y_test, y_pred)
 
predicted = cross_val_predict(model, data_X, data_y, cv=10)
print  "MSE:", metrics.mean_squared_error(data_y, predicted)
 
plt.scatter(data_y, predicted, color='y', marker='o')
plt.scatter(data_y, data_y,color='g', marker='+')
plt.show()

在这里插入图片描述

线性回归算法梳理 目录 1、机器学习基本概念 2、线性回归原理 3、优化方法 4、线性回归的评估指标 5、sklearn参数详解 1、机器学习基本概念 监督学习:KNN、线性回归、逻辑回归、SVM、决策树和随机森林、神经网络 无监督学习:K-means、聚类分析、可视化和降维-PCA、关联性规则学习 泛化能力:Generalization Ability,是指指机器学习算法对新鲜样本的适应能力。学... 阅读详情

相关推荐

吴恩达机器学习--复习或汇报ppt【免费】(课程一全部和课程二第一节)

吴恩达机器学习复习PPT分享,涵盖课程一(监督学习:回归与分类)全部内容及课程二(高级学习算法)第一节内容,包括线性回归、逻辑回归和神经网络基础等核心知识点。该资料已整理为清晰的知识框架,适合正在学习该课程的学生复习使用。PPT下载链接已附在文中。全文约150字,简明扼要地介绍了资料内容和适用人群。

qq_75132460的博客 500

ML之LiR:使用线性回归LiR回归模型在披萨数据集上拟合(train)、价格回归预测(test)

ML之LiR:使用线性回归LiR回归模型在披萨数据集上拟合(train)、价格回归预测(test) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 r= LinearRegression() r.fit(X_train, y_train) x = np.linspace(...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 7778

在 Windows 系统下使用 VMware 安装 Ubuntu 24.04 LTS 系统

Ubuntu24.04桌面端官方下载:https://cn.ubuntu.com/download/desktop。

u014695938的博客 1万+

机器学习的练功方式(九)——线性回归

线性回归

弄鹊 1142

从零到一:在RK3588 Android12上实战RTL8723DU WiFi蓝牙双模驱动移植

本文详细介绍了在RK3588 Android12系统上实战RTL8723DU WiFi蓝牙双模驱动移植的全过程。从驱动源码获取与修改、系统级集成与编译,到调试与性能优化,提供了完整的解决方案。特别针对USB接口适配、电源管理和蓝牙共存等关键问题给出了具体代码示例,帮助开发者快速完成驱动适配并提升设备稳定性。

weixin_28703489的博客 326

Slurm集群调度策略详解(1)-主调度

Slurm调度系统中针对作业的调度主要有三种,主调度,回填调度,GANG调度,这篇文章主要针对主调度进行解析。

h_m_l的博客 6031

机器学习(二):线性回归

线性回归的原理与多个实战内容

全栈川川 3411

利用LTspice设计Pt100测温电路

是一种广泛使用的温度传感器,它属于(RTD, Resistance Temperature Detector)的类型,通常用于温度测量。在0°C时,的电阻值为100欧姆,且它的电阻值会随着温度的升高而升高。PT100热电阻温度阻值对应表)因此可以根据这一特性来检测出环境温度。

2301_77033628的博客 2418

机器学习之线性回归

一、简单的线性回归 例如: y=ax+b 这个公式中,y是目标变量(应变量),x是自变量,x是影响y的因素,a,b的公式上的参数即要求的模型。在数学里面 y=ax+b是 一元一次方程,a是这个方程的斜率,b是在y的截距。 当我们有多个方程组(已知的x,y),多个方程组解出来的参数a,b的值不一样。那我们需要寻求最优解 二、最优解 Actual value:真实值,即已知的y Predicted value:预测值,是把已知的x带到公式里面和猜出来的参数a,b计算得到的 Error:误差,预..

qq_53582111的博客 5835

数字麦克风PDM信号采集与STM32 I2S接口应用(二)

在使用STM32的数字麦克风I2S接口时,计算采样率让人头疼,芯片手册上没有明确的说法,而手册上的计算方法经过测试却和实验不符。借助搜索引擎,大部分资料都是来自于开发板卖家或开发板论坛,主要是咪头采集然后配置WM89系列解码芯片,然后配合FatFS、MP3解码等模式,主要是讲解I2S录音、存储、放音等。外文资料得到的也寥寥无几,也没有找到讲解STM32数字麦克风配置、计算的文档。加上网上资料转载、抄袭、浅尝辄止的笔记教程,这些更是让检索大海捞针,过程艰辛一言难尽,有些网文三言两语抑或作者都没有搞清楚随手一写

XIAOYOUDUODUO的博客 6057

MOOS-ivp实战:从零搭建水下机器人通信系统(Ubuntu 22.04版)

本文详细介绍了在Ubuntu 22.04系统上从零开始搭建MOOS-ivp水下机器人通信系统的完整实战流程。内容涵盖环境准备、核心安装、MOOSDB通信模型解析、自定义应用节点开发、以及调试监控工具链的使用,旨在帮助开发者快速掌握这一分布式机器人系统框架,构建稳定可靠的水下机器人通信与控制系统。

snow3的博客 636

【机器学习经典算法梳理】一.线性回归

【机器学习经典算法梳理】是一个专门梳理几大经典机器学习算法的博客。我在这个系列博客中,争取用最简练的语言、较简洁的数学公式,和清晰成体系的提纲,来尽我所能,对于算法进行详尽的梳理。【机器学习经典算法梳理】系列博客对于机器学习算法的梳理,将从“基本思想”、“基本形式”、“过程推导”、“损失函数”、“sklearn库的参数含义”和“总结”几个方面去进行。下面,就让我开始第一个算法,线性回归吧! ...

谁谓荼苦,其甘如荠 1439

Hyper-V虚拟机 安装 银河麒麟V10桌面版

如何在windows 11 Hyper-V 虚拟机中 安装 银河麒麟V10桌面版。

m0_46756112的博客 3425

机器学习算法梳理(一):基础扫盲&线性回归

基础扫盲 监督学习:训练数据有标记信息的学习 典型问题有回归、分类。 无监督学习:训练数据没有标记信息的学习 典型问题有聚类。 泛化能力:学得模型适用于新样本的能力 训练样本越多,就越有可能获得强泛化能力模型。 “偏差-方差分解”(bias-variance decomposition)是解释泛化性能的一种重要工具。 偏差(bias):预测输出与标记间的差。描述算法本身...

全情投入 248

把 Client 当成 ABAP 系统的多租户底座:从 sy-mandt 到 CDS_CLIENT 的隔离机制与工程实践

本文深入解析SAP ABAP系统中Client概念的本质与应用。Client不仅是数据表的MANDT字段,更是会话级别的隔离边界,贯穿用户登录、授权和数据访问控制全过程。文章从ABAP SQL的隐式Client处理机制出发,详细介绍了USING CLIENT、USING ALL CLIENTS等安全跨客户端访问方式,并对比了传统CLIENT SPECIFIED的风险。同时阐述了ABAP CDS中@ClientHandling注解的类型与算法选择,包括#AUTOMATED自动拼接和#SESSION_VARIA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 184

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

机器学习第三章——线性回归思维导图

blue04137599的博客 220

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

线性回归专题知识总结

线性回归是一种通过属性的线性组合进行预测的模型,其核心目标是找到一条适配特征数量的直线、平面或超平面,使得所有样本点到该平面的距离之和最小。当特征数量为 1 时,目标是找到一条直线;当特征数量为 2 时,目标是找到一个平面;当特征数量为 n(n≥3)时,目标是找到一个 n-1 维超平面。线性回归作为机器学习的入门模型,其原理简洁但内涵丰富。从基础概念到参数求解,从评估指标到算法实现,每个环节都需要深入理解并灵活应用。

T70212804的博客 851

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

机器学习---线性回归算法梳理

任务1 - 线性回归算法梳理 1、机器学习的一些概念 有监督、无监督、泛化能力、过拟合欠拟合(方差和偏差以及各自解决办法)、交叉验证 2、线性回归的原理 3、线性回归损失函数、代价函数、目标函数 4、优化方法(梯度下降法、牛顿法、拟牛顿法等) 5、线性回归的评估指标 6、sklearn参数详解 ...

weixin_43760925的博客 832

算法梳理(一)线性回归算法梳理

目录 一、机器学习的一些概念 1、有监督 2、无监督 3、泛化能力 4、过拟合和欠拟合 5、交叉验证 二、线性回归的原理 三、线性回归的损失函数、代价函数、目标函数 1、损失函数 2、代价函数 3、目标函数 四、优化方法 1、梯度下降法 2、牛顿法 3、拟牛顿法 五、线性回归的评价指标 六、sklearn参数详解 一、机器学习的一些概念 计算机程序利用经验 E...

qq_35175666的博客 748

机器学习算法基本概念梳理(一)

All about ML.

timcompp的博客 1291

算法梳理(一)线性回归

目录1. 机器学习的一些概念1.1 机器学习的概念1.2 有监督学习1.3 无监督学习1.4 半监督学习1.5 强化学习1.6 泛化能力1.7 过拟合1.8 欠拟合1.9 常见模型指标1.10 交叉验证2. 线性回归2.1 线性回归的原理2.2 线性回归的目标函数、损失函数2.3 优化方法2.4 线性回归的评估指标2.5 sklearn参数详解 1. 机器学习的一些概念 1.1 机器学习的概念 计...

weixin_44025838的博客 1123
上一篇: VUE页面之间传值的方式
下一篇: 机器学习算法梳理(二):逻辑回归
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值