七种 AI 底层算法的 Java 实现代码,我会为每一种算法提供可直接运行、逻辑完整的 Java 代码,同时附带核心思路注释,方便你理解和调试。

说明

  1. 代码均为纯 Java 实现,无第三方依赖,可直接在 Java SE 环境中运行。
  2. 聚焦算法核心逻辑,简化了部分数据预处理(如归一化),便于聚焦算法本身。
  3. 每种算法包含「核心实现」+「测试用例」,可直接复制运行验证结果。

1. 线性回归算法(Linear Regression)

核心思路

基于最小二乘法求解解析解,拟合线性关系 y=WTX+b,核心是计算 W=(XTX)−1XTy(为简化,实现单特征线性回归)。避开复杂公式:

  1. 核心目标(线性回归):找一条最贴合所有样本数据的直线(单特征场景),用这条直线就能通过一个自变量(比如房屋面积)预测结果(比如房价)。
  2. 最小二乘法的作用:判断直线 “贴合度” 的标准 —— 让所有数据点到这条直线的 “垂直距离平方和” 最小(简单说就是整体误差最小),这就是最小二乘法的核心。
  3. 解析解 W=(XTX)−1XTy 的通俗理解
    • 这是一个 “一步到位” 的计算公式,不用反复迭代试错,直接算出能得到最优直线的参数(包括直线的截距、斜率)。
    • 大白话翻译:把整理好的样本特征数据(X)和真实结果数据(y),代入这个公式做矩阵运算,就能直接得到最优的权重参数(W),有了 W 就确定了那条最贴合的直线。
    • 补充(单特征简化):这个公式看着复杂,对应到单特征场景,其实就是算出直线的 “斜率” 和 “与 y 轴交点”,和我们初中学的直线方程 y=kx+b 是一回事。

一句话总结

线性回归用最小二乘法定 “最优直线” 的标准,而 W=(XTX)−1XTy 是直接算出这条最优直线参数的 “快捷公式”。

代码解析:线性回归实现

该Java代码实现了一个简单的单变量线性回归模型,使用最小二乘法进行参数估计。以下是关键部分的详细说明:

类结构

定义LinearRegression类,包含两个成员变量:

  • w:权重(斜率)
  • b:偏置(截距)

训练方法

train()方法通过最小二乘法计算最优参数:

  1. 输入验证确保数据有效性

  2. 计算以下统计量:

    • 自变量和(sumX)
    • 因变量和(sumY)
    • 自变量与因变量乘积和(sumXY)
    • 自变量平方和(sumX2)
  3. 使用最小二乘法公式计算参数:

    • 斜率公式: [ w = \frac{n\sum xy - (\sum x)(\sum y)}{n\sum x^2 - (\sum x)^2} ]
    • 截距公式: [ b = \frac{\sum y - w\sum x}{n} ]

预测方法

predict()方法使用训练得到的参数进行预测: [ \hat{y} = w \times x + b ]

测试用例

主方法演示了如何使用:

  1. 创建样本数据(房屋面积->房价)
  2. 训练模型
  3. 输出模型参数
  4. 对新面积进行价格预测

输出示例

运行测试代码会输出类似结果:

拟合参数:w=0.3829, b=-2.8571
房屋面积75.0㎡的预测价格:25.86万元

数学公式说明

最小二乘法通过最小化误差平方和来求解最优参数: [ \min \sum_{i=1}^n (y_i - (wx_i + b))^2 ]

该实现直接使用解析解进行计算,适合小规模数据。对于大规模数据,建议使用梯度下降等迭代方法。

逻辑回归算法核心思路与实现详解

1. 逻辑回归算法概述​

1.1 逻辑回归的定义与应用场景​

逻辑回归(Logistic Regression)是一种广泛应用于机器学习和统计分析领域的分类算法,虽然其名称中包含 "回归" 二字,但它实际上是一种用于解决二分类问题的监督学习方法​

。逻辑回归通过将线性回归的输出通过 Sigmoid 函数映射到 (0,1) 区间,从而实现概率预测和分类决策​

。​

在实际应用中,逻辑回归被广泛应用于以下场景:​

金融风控领域:银行和金融机构使用逻辑回归评估客户的信用风险,通过分析客户的收入水平、信用记录、年龄等特征来预测其违约概率​

。逻辑回归在处理大规模稀疏数据时具有较好的性能,适用于信用评分这种涉及大量特征的场景​

。​

医疗诊断领域:逻辑回归在疾病预测和诊断中发挥重要作用。医学研究人员通过分析患者的年龄、性别、血压、胆固醇水平等特征,可以预测患者患心脏病、糖尿病等疾病的概率​

。在乳腺癌诊断中,逻辑回归模型能够根据肿瘤的大小、形状、边界等特征判断其是良性还是恶性​

。​

客户行为分析:在电子商务和市场营销领域,逻辑回归被用于预测客户的购买行为、流失倾向和广告点击率。例如,通过分析用户的浏览历史、购买记录、停留时间等特征,预测用户是否会购买某产品或是否会流失​

。​

欺诈检测:在金融交易中,逻辑回归可以帮助识别潜在的欺诈行为,通过分析交易金额、交易地点、交易时间、用户行为模式等特征来判断交易的真实性​

。​

1.2 逻辑回归与线性回归的关系​

逻辑回归与线性回归在数学形式上有密切的联系,但它们解决的问题类型完全不同。线性回归主要用于预测连续值,而逻辑回归则用于分类问题,尤其是二分类问题​

。​

数学形式对比:​

  • 线性回归:​

    y=β0​+β1​x1​+β2​x2​+⋯+βn​xn​+ϵ

    ,其中​

    y

    是连续的因变量​
  • 逻辑回归:​

    P(y=1∣x)=1+e−(β0​+β1​x1​+⋯+βn​xn​)1​

    ,其中​

    P(y=1∣x)

    是条件概率​

核心差异:​

  1. 输出范围:线性回归的输出是任意实数,而逻辑回归的输出被限制在 (0,1) 区间内,可解释为概率​
  1. 损失函数:线性回归使用均方误差(MSE)作为损失函数,而逻辑回归使用对数似然损失或交叉熵损失​
  1. 优化目标:线性回归通过最小二乘法直接求解解析解,而逻辑回归通常使用梯度下降等迭代方法求解​

联系与转换:逻辑回归实际上是在线性回归的基础上,通过 Sigmoid 函数进行了非线性变换。这个变换将线性回归的输出转换为概率值,使得模型能够处理分类问题​

。从这个意义上说,逻辑回归可以看作是线性回归在分类问题上的扩展。​

1.3 逻辑回归的数学基础​

逻辑回归的数学基础建立在以下几个关键概念之上:​

伯努利分布假设:逻辑回归假设每个样本的标签服从伯努利分布,即​

Y∼Bernoulli(p)

,其中​

p=σ(θTx)

是样本属于正类的概率。​

对数几率(Logit)变换:逻辑回归假设对数几率与自变量之间存在线性关系,即:​

logit(p)=ln(1−pp​)=β0​+β1​x1​+β2​x2​+⋯+βn​xn​

这个假设是逻辑回归模型的核心,它将非线性的概率关系转换为线性关系,大大简化了模型的学习和理解​

。​

Sigmoid 函数:Sigmoid 函数是逻辑回归的关键组成部分,其数学表达式为:​

σ(z)=1+e−z1​

Sigmoid 函数具有以下重要性质:​

  • 定义域:​

    (−∞,+∞)

  • 值域:​

    (0,1)

    ,适合表示概率​
  • 单调递增,连续可导​
  • 关于点​

    (0,0.5)

    中心对称​
  • 导数形式简单:​

    σ′(z)=σ(z)(1−σ(z))

这些性质使得 Sigmoid 函数非常适合用于将线性组合的结果转换为概率值,并在梯度计算中发挥重要作用。​

2. 逻辑回归核心算法原理​

2.1 线性计算与 Sigmoid 映射机制​

逻辑回归的核心机制是 "线性计算 + Sigmoid 非线性映射",这一机制使得线性模型能够处理非线性的分类问题。​

线性计算部分:​

逻辑回归首先对输入特征进行线性组合计算:​

z=θTx=θ0​x0​+θ1​x1​+θ2​x2​+⋯+θn​xn​

其中,​

x0​

通常设为 1,对应偏置项​

θ0​

;​

xi​

(​

i=1,2,...,n

)是输入特征;​

θi​

是对应的权重参数。这个线性计算的结果​

z

可以取任意实数值,范围是​

(−∞,+∞)

。​

Sigmoid 映射部分:​

将线性计算的结果​

z

输入 Sigmoid 函数,得到概率输出:​

y^​=σ(z)=1+e−z1​=1+e−(θTx)1​

这个映射过程具有以下特点:​

  • 当​

    z→+∞

    时,​

    σ(z)→1

    ,表示样本属于正类的概率很高​
  • 当​

    z→−∞

    时,​

    σ(z)→0

    ,表示样本属于负类的概率很高​
  • 当​

    z=0

    时,​

    σ(z)=0.5

    ,这是分类的决策边界​

概率解释:​

逻辑回归模型的输出​

y^​

可以直接解释为条件概率:​

  • P(y=1∣x)=σ(θTx)

    表示给定特征​

    x

    时,样本属于正类的概率​
  • P(y=0∣x)=1−σ(θTx)

    表示给定特征​

    x

    时,样本属于负类的概率​

这种概率解释使得逻辑回归不仅能够进行分类预测,还能提供预测的置信度信息,这在许多实际应用中非常有价值​

。​

2.2 损失函数与极大似然估计​

逻辑回归使用极大似然估计(Maximum Likelihood Estimation, MLE)来确定模型参数,其核心思想是 "让观测到的训练数据出现的概率最大"​

。​

似然函数:​

对于二分类问题,假设样本​

i

的标签为​

yi​∈{0,1}

,则单个样本的概率可以统一表示为:​

P(yi​∣xi​;θ)=σ(θTxi​)yi​⋅(1−σ(θTxi​))1−yi​

对于​

n

个独立同分布的样本,似然函数为:​

L(θ)=i=1∏n​P(yi​∣xi​;θ)=i=1∏n​[σ(θTxi​)yi​⋅(1−σ(θTxi​))1−yi​]

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐