机器学习|有监督学习和无监督学习,线性回归问题的两种算法

737 阅读9分钟

引言

机器学习(Machine Learning)作为人工智能的重要分支,正在以惊人的速度改变着我们的世界。学习机器学习不仅能够帮助我们解决复杂问题,还能够赋予我们创造创新解决方案的能力。机器学习的应用已经渗透到各个领域,包括医疗保健、金融、交通、娱乐等,为我们的生活带来了巨大的改变和便利。

阅读本文可能需要额外了解一下微积分和线性代数基本概念:微积分、偏导数、矩阵乘法、逆矩阵、矩阵转置等。

什么是机器学习?

事实上对于机器学习并没有一个特别统一的定义,机器学习领域的创始人Arthur Samuel(亚瑟·塞缪尔)早在1959年就给机器学习(Machine Learning,ML)下了定义:机器学习是这样的一个研究领域,它能让计算机不依赖确定的编码指令来自主的学习工作。塞缪尔本人在1950年编写过一款跳棋游戏,而他自己本身并不是一个跳棋高手,他所做的是与程序对弈几万次,通过长久以往的棋局布局和结果让程序不断学习,并最终棋力水平超过塞缪尔,这是一个非常神奇的成果。

Tom Mitchell(汤姆·米切尔)提出了一个更新的机器学习的定义计算机程序从经验E中学习关于某个任务T和一些性能度量P,如果其在T上的性能(由P度量)随经验E而改善,就是机器学习。 对于跳棋游戏,经验E就是计算机与你玩了很多次游戏,任务T就是玩跳棋,而性能度量P就是与新对手玩跳棋赢得概率。

举个栗子🌰

各种平台的猜你喜欢功能——依据用户的历史浏览、使用记录推送用户可能喜欢的商品或者其他的什么。在这个例子中,用户的历史记录就是经验E,为用户推送可能喜欢的内容就是任务T,而用户的是否喜欢系统推送的反馈就是性能度量P。

机器学习算法的常见类型

监督学习

定义:监督学习是机器学习中一种常见的学习范式,其目标是通过使用带有标签的训练数据集来建立一个模型,该模型能够对未知数据进行预测或分类。在监督学习中,训练数据集包含了输入特征(也称为自变量)以及相应的目标变量(也称为因变量或标签)。模型的任务是基于训练数据集中的模式和关联,学习一个函数或映射关系,将输入特征映射到目标变量。下面是几个典型的数据模型的例子:

image.png

房屋面积与房价之间的关系

image.png

肿瘤大小与肿瘤类型的关系

image.png

多维度肿瘤因素与肿瘤类型的关系

无监督学习

定义:无监督学习是机器学习中的一种学习范式,其目标是从未标记的数据中发现隐藏的模式、结构或关联性,而无需事先提供标签或指导信息。与监督学习不同,无监督学习的训练数据集只包含输入特征,没有对应的标签或类别信息。

无监督学习的主要任务可以分为两类:

  1. 聚类(Clustering):聚类任务旨在将数据样本划分为不同的组或簇,使得同一组内的样本彼此相似,而不同组之间的样本差异较大。聚类算法通过分析数据的相似性和距离度量,自动识别和发现数据中的群组结构。

image.png

数据样本的聚类

  1. 降维(Dimensionality Reduction):降维任务旨在从高维数据中提取关键的特征或维度,以便更好地理解数据或进行可视化。降维算法可以减少数据的维度,同时尽量保留原始数据的重要信息,从而降低计算复杂度、处理噪声和冗余数据,并提高后续任务的效果。

image.png

基因表达数据分析

线性回归问题

在机器学习中,线性回归是最基础、最常用的回归算法之一。它的意义在于它提供了一个理想的入门点,让我们可以逐步了解模型拟合和参数优化的基本概念。通过学习线性回归,我们可以构建一个简单但强大的预测模型。

假设函数和代价函数

线性回归的核心概念:假设函数、代价函数

首先我们需要了解线性回归工作原理:

graph TD
Dataset --> Learning-Algorithm
Learning-Algorithm --> Hpothesis
input --> Hpothesis
Hpothesis --> output

假设函数

在线性回归中,我们假设特征和目标变量之间存在线性关系。假设函数表示为:

h(x)=θ0+θ1x1+θ2x2+...+θnxnh(x) = θ_0 + θ_1 * x_1 + θ_2 * x_2 + ... + θ_n * x_n

这里,h(x)h(x) 是我们模型的预测值,x1x_1xnx_n 是输入特征,θ0θ_0θnθ_n 是我们需要学习的模型参数。

代价函数

为了衡量模型预测值与实际值之间的误差,我们引入了代价函数。在线性回归中,常用的代价函数是均方误差(Mean Squared Error,MSE),定义如下:

J(θ)=12mi=1m(hθ(x(i))y(i))2J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2

其中,J(θ)J(\theta) 是代价函数,mm 是样本数量,hθ(x(i))h_{\theta}(x^{(i)}) 是模型预测值,y(i)y^{(i)} 是实际值。

其中,mm 是样本数量,h(x)h(x) 是模型的预测值,yy 是实际值。我们的目标是最小化代价函数,使得模型的预测结果与实际值尽可能接近。

梯度下降法

为了求解最小化代价函数的模型参数,我们可以使用梯度下降法这一迭代优化算法,它是我们理解和应用机器学习算法的重要基石。

梯度下降法的思想是通过不断调整模型参数来降低代价函数的值。我们计算代价函数关于每个参数的偏导数,即梯度,然后根据梯度的方向和大小更新参数的数值,逐步接近最优解。

具体步骤如下:

  1. 初始化模型参数 θθ
  2. 计算代价函数关于每个参数的偏导数,即梯度。
  3. 同步更新模型参数,通过减去学习率α\alpha乘以梯度。
  4. 重复步骤2和3,直到满足停止条件(如达到最大迭代次数或梯度变化很小)。

梯度下降迭代公式:

θj:=θjαθjJ(θj)\theta_j := \theta_j - \alpha\frac{\partial }{\partial \theta_j}J(\theta_j)

J(θ)J(\theta)函数代入并求导得:

θj:=θjα1mi=1m(hθ(x(i))y(i))xj(i)\theta_j := \theta_j - \alpha\frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})x_j^{(i)}

最后将hθ(x(i)){h_\theta(x^{(i)})}展开:

θj:=θjα1mi=1m(θ0+θ1x1(i)+θ2x2(i)+...+θnxn(i)y(i))xj(i)\theta_j := \theta_j - \alpha\frac{1}{m} \sum_{i=1}^{m} (θ_0 + θ_1 * x_1^{(i)} + θ_2 * x_2^{(i)} + ... + θ_n * x_n^{(i)} - y^{(i)})x_j^{(i)}

通过梯度下降法的迭代优化过程,我们可以逐步拟合出最佳的线性回归系数,使得模型能够更好地预测目标变量。

梯度下降法是一种常用且有效的优化算法,广泛应用于各种机器学习算法中,包括线性回归、逻辑回归和神经网络等。

线性函数的正规方程算法

除了梯度下降法外,我们还可以使用正规方程算法来求解线性回归的参数。正规方程算法通过求解线性方程组来获得最优参数。

首先我们假设一个矩阵XX,两个向量θ\thetaYY。

其中XX是列数为nn,行数为mm的矩阵, 其中nn代表了自变量xx的个数,每一行代表一个单独的数据,mm则代表数据集的个数,表示了总共有mm个数据,整个矩阵就表示了完整的数据集自变量整体。

[x11x21x31x41...xn1x12x22x32x42...xn2x13x23x33x43...xn3............x1mx2mx3mx4m...xnm]\begin{bmatrix} x_{11} & x_{21} & x_{31} & x_{41} & ... & x_{n1} \\ x_{12} & x_{22} & x_{32} & x_{42} & ... & x_{n2} \\ x_{13} & x_{23} & x_{33} & x_{43} & ... & x_{n3} \\ . & . & . & . & . & . \\ . & . & . & . & . & . \\ x_{1m} & x_{2m} & x_{3m} & x_{4m} & ... & x_{nm} \\ \end{bmatrix}

θ\theta则表示了一个行数为nn列数为11的向量,nn代表自变量系数的个数,表示了nn个数据自变量的系数。

[θ1θ2θ3..θn]\begin{bmatrix} \theta_{1} \\ \theta_{2} \\ \theta_{3} \\ . \\ . \\ \theta_{n} \\ \end{bmatrix}

YY则表示了一个行数为mm列数为11的向量,mm代表数据集的个数,表示了mm个数据因变量。

[y1y2y3..ym]\begin{bmatrix} y_{1} \\ y_{2} \\ y_{3} \\ . \\ . \\ y_{m} \\ \end{bmatrix}

所以我们将线性方程矩阵表达式就是:

θX=Y\theta X = Y

现在,我们可以使用最小二乘法来求解最优的线性回归系数 θ\theta。我们的目标是最小化残差平方和,即最小化误差的平方和。对于每个方程,我们可以定义残差 rir_i 为预测值与真实值之间的差距,即 ri=y^iyir_i = \hat{y}_i - y_i,其中 y^i\hat{y}_i 是使用当前的线性回归系数预测得到的值。

我们的目标是使得残差平方和最小化,即最小化代价函数 J(θ)J(\theta),定义如下:

为了推导线性矩阵方程的最小二乘解,我们可以使用最小二乘法的原理来求解。首先,我们假设 θ\theta 是一个待求解的参数向量,XX 是一个已知的设计矩阵,YY 是一个已知的观测向量。

最小二乘法的目标是通过调整参数向量 θ\theta,使得预测值 Y^\hat{Y} 和观测值 YY 的残差平方和最小化。即,我们要求解以下最小化问题:

minθθXY2\min_{\theta} \|\theta X - Y\|^2

其中,2\|\cdot\|^2 表示向量的二范数的平方。

为了求解上述最小化问题,我们可以对目标函数进行求导并令其导数等于零。首先,我们将目标函数展开:

θXY2=(θXY)T(θXY)\|\theta X - Y\|^2 = (\theta X - Y)^T(\theta X - Y)

将其展开并求导,可以得到:

θ(θXY)T(θXY)=2XTXθ2XTY\frac{\partial}{\partial \theta} (\theta X - Y)^T(\theta X - Y) = 2X^TX\theta - 2X^TY

将导数等于零,并解得:

XTXθ=XTYX^TX\theta = X^TY

上述方程被称为正规方程(Normal Equation)。通过求解正规方程,我们可以得到线性矩阵方程的最小二乘解。具体求解过程包括计算矩阵的逆和矩阵乘法,可以使用适当的线性代数库或数值计算工具进行计算。

最后将等于整理:

θ=(XTX)1XTY\theta = (X^TX)^{-1}X^TY

正规方程算法可以直接求解最优参数,无需迭代过程。但对于特征矩阵较大的情况,计算复杂度较高。

以上是关于线性回归算法在机器学习中的基本概念和两种算法的分享。通过深入学习和理解线性回归,未来我们可以构建出简单而强大的预测模型,为进一步探索机器学习领域打下坚实的基础。