数据挖掘算法的底层基础来自线性代数、概率论和信息论。通过学习常用算法,可以逐步理解数学家、统计学家与计算机工程师的思考方式,并为后续结合 TensorFlow 的高级算法、在人脸识别与自然语言处理等实际项目中的应用打下基础。
一、理解线性回归模型
回归模型研究的是因变量(目标)与自变量(预测特征)之间的关系。若因变量为连续值即回归;若为离散则对应分类问题。以房价预测为例,可以用房子的面积、户型、位置、采光等自变量来预测售价。这一类最简单的回归模型,常用的表达形式为 y = w1 x1 + w2 x2 + … + wn xn + b,其中 x 表示自变量,y 为因变量,w 为权重向量,b 为偏置。

在机器学习的推导中,常用线性代数来描述预测模型。设 x 是一个房子的特征向量,通常为 n×1 的列向量,总共有 M 个特征集合,θ 也是 n×1 的向量,表示需要学习的参数。

常见的做法是以误差最小化为目标,即用预测值 y_hat 与真实值 y 的差值平方和作为损失函数,并使其尽可能小。以一个简单的例子为说明,假设预测表达式为工资的预测:y_hat = Θ1*学历 + Θ2*工作经验 + Θ3*技术能力 + … + Θn*x + 基本工资,实际值为 y,目标是使 (y – y_hat)^2 的和尽量小。

对正规方程求解时,需要对参数 θ 求偏导,因此需要对特征矩阵 X 与因变量 y 的关系进行求解,得到使误差最小的 θ。然而,矩阵求逆在很多情况下不可保证存在,从而导致解的不稳定或不存在。

二、计算机的做法:梯度下降
直接求解需要大量矩阵求逆运算,且在数据规模较大时计算成本高。梯度下降法通过逐步向损失函数最陡下降的方向更新参数,逐步接近全局或局部最小值,便于大规模数据处理。你可以把自己想象成下山的过程,不必事先知道终点在哪,但每一步都尽量走得“最陡峭”的方向。

核心目标仍然是让 (y – y_hat)^2 的和尽量小:

梯度下降的实现:给定一个初始的 θ 值,按照更新规则不断迭代,直到 J(θ) 收敛或达到预设迭代次数。为便于推导,先从只有一个训练样本的情况入手。

单个分量的更新公式为:

p
将其推广到 M 条训练数据后的参数更新公式为:

三、逻辑回归模型
逻辑回归与线性回归同属广义线性模型,但逻辑回归主要用于二分类问题,并可扩展到多分类。通过引入 Sigmoid 函数,线性预测的结果被映射到 0 到 1 的区间,从而表示类别概率。

Sigmoid 函数呈 S 形曲线,输出范围在 [0, 1],在远离 0 和 1 的区域变化较慢。其导数性质有利于梯度计算。

逻辑回归的预测函数是在对特征做线性求和后再通过 g(z) 将结果映射到 0~1 的概率值:

通过最大似然估计,取对数似然并对 θ 求偏导,得到梯度上升更新式:

p
因此,逻辑回归的迭代更新具有与线性回归相似的结构关系,这也体现了两者之间的深层联系。
四、回归模型的实际应用
数据来自美国 King County 的房屋销售价格及相关信息,数据分为训练集 kc_train.csv(约 10000 条记录,含14个字段:销售日期、销售价格、卧室数、浴室数、房屋面积、停车面积、楼层数、房屋评分、建筑面积、地下室面积、建筑年份、修复年份、纬度、经度)和测试集 kc_test.csv。数据集的获取地址为 Github 地址示例,请按照流程完成模型建立与评估。
