人工智能与机器学习原理精解【2】

文章目录

  • 机器学习基础
    • 一般化流程
    • 回归
      • 线性回归julia实现
      • 最小二乘法原理
          • 最小二乘法的原理
          • 线性回归中的最小二乘法
          • 最小二乘法的优点与局限性
          • 最小二乘法算法过程
            • 一、线性回归模型
            • 二、目标函数
            • 三、求解算法
            • 四、算法步骤
            • 四、计算公式
            • 五、注意事项
      • 回归理论概述
        • 回归的基本概念
        • 回归模型的类型
        • 回归模型的评估
      • 线性回归
        • 基本概念
        • 线性回归模型
        • 参数估计
      • julia实现线性回归
        • 1. 使用GLM.jl库
        • 2. 使用Flux.jl库
        • 3. 从头开始编写代码
  • 参考文献

机器学习基础

一般化流程

  • 定义问题
  • 收集数据
  • 设计特征
  • 训练模型
  • 测试模型
  • 应用模型

回归

线性回归julia实现

# 生成随机数据 
using Random 
using Statistics
Random.seed!(123)  
x = rand(30) *50 
y = 5*x .+ randn(30)# 定义线性回归函数  
function linear_regression(x, y)  n = length(x)  x_mean = mean(x)  y_mean = mean(y)  b = sum((x .- x_mean) .* (y .- y_mean)) / sum((x .- x_mean) .^ 2)  a = y_mean - b * x_mean  return a, b  
end  # 计算回归系数  
a, b = linear_regression(x, y)  
println("y=$a+$b*x")
y=0.06200648282066368+4.9949470560804885*x

最小二乘法原理

下面内容来自文心一言的自动生成
最小二乘法(Least Squares Method)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。以下是对最小二乘法的详细解释:

最小二乘法的原理

最小二乘法的主要思想是通过确定未知参数(通常是一个参数矩阵),来使得真实值和预测值的误差(也称残差)平方和最小。其计算公式为:

E = ∑ i = 1 n ( y i − y ^ i ) 2 其中, y i 是真实值, y ^ i 是对应的预测值。 在线性回归中,我们通常使用均方误差( M e a n S q u a r e d E r r o r , M S E )作为损失函数, 均方误差可以看作是最小二乘法中的 E 除以 m ( m 为样本个数)。 E = \sum_{i=1}^{n}(y_i - \hat{y}_i)^2 \\其中,y_i是真实值,\hat{y}_i是对应的预测值。 \\在线性回归中,我们通常使用均方误差(Mean Squared Error, MSE)作为损失函数, \\均方误差可以看作是最小二乘法中的 E 除以 m(m为样本个数)。 E=i=1n(yiy^i)2其中,yi是真实值,y^i是对应的预测值。在线性回归中,我们通常使用均方误差(MeanSquaredError,MSE)作为损失函数,均方误差可以看作是最小二乘法中的E除以mm为样本个数)。

线性回归中的最小二乘法

在线性回归问题中,我们通常使用最小二乘法来求解回归系数。对于一维特征的样本,拟合函数可以表示为:

h θ ( x ) = θ 0 + θ 1 x h_\theta(x) = \theta_0 + \theta_1x hθ(x)=θ0+θ1x

损失函数则为:
J ( θ 0 , θ 1 ) = ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 = ∑ i = 1 m ( y ( i ) − θ 0 − θ 1 x ( i ) ) 2 要使损失函数最小,可以对损失函数求偏导,并令偏导等于 0 ,解出 θ 0 和 θ 1 。 J(\theta_0, \theta_1) = \sum_{i=1}^{m}(y^{(i)} - h_\theta(x^{(i)}))^2 = \sum_{i=1}^{m}(y^{(i)} - \theta_0 - \theta_1x^{(i)})^2 \\要使损失函数最小,可以对损失函数求偏导,并令偏导等于0,解出 \theta_0 和 \theta_1。 J(θ0,θ1)=i=1m(y(i)hθ(x(i)))2=i=1m(y(i)θ0θ1x(i))2要使损失函数最小,可以对损失函数求偏导,并令偏导等于0,解出θ0θ1
对于多维特征的样本,同样可以采用这种方式来求解。此时,拟合函数和损失函数的形式会更为复杂,但基本原理相同。

最小二乘法的优点与局限性

优点

  1. 原理简单,易于理解和实现。
  2. 在线性回归问题中,最小二乘法能够得到唯一的最优解(在参数无约束的情况下)。
  3. 适用于大规模数据处理,因为最小二乘法的计算过程相对简单。

局限性

  1. 对异常值较为敏感,因为最小二乘法是通过最小化所有误差的平方和来求解的,所以单个异常值可能会对结果产生较大影响。
  2. 在非线性回归问题中,最小二乘法可能无法得到最佳解。此时,需要考虑其他非线性优化方法。

最小二乘法(Least Squares Method)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。以下是最小二乘法的具体算法,特别是针对线性回归问题的详细解释:

最小二乘法算法过程
一、线性回归模型

在线性回归中,我们假设模型为线性关系,即:

y = β 0 + β 1 x + ϵ y = \beta_0 + \beta_1x + \epsilon y=β0+β1x+ϵ

其中, y 是因变量, x 是自变量, β 0 是截距项, β 1 是斜率项, ϵ 是误差项。 其中,y是因变量,x 是自变量,\beta_0是截距项,\beta_1是斜率项,\epsilon是误差项。 其中,y是因变量,x是自变量,β0是截距项,β1是斜率项,ϵ是误差项。

二、目标函数

最小二乘法的目标是找到 β 0 和 β 1 的值,使得真实值 y i 和预测值 y ^ i = β 0 + β 1 x i 之间的误差平方和最小。 最小二乘法的目标是找到\beta_0和 \beta_1的值,使得真实值 y_i和预测值\hat{y}_i = \beta_0 + \beta_1x_i之间的误差平方和最小。 最小二乘法的目标是找到β0β1的值,使得真实值yi和预测值y^i=β0+β1xi之间的误差平方和最小。即:

minimize S = ∑ i = 1 n ( y i − ( β 0 + β 1 x i ) ) 2 \text{minimize} \quad S = \sum_{i=1}^{n} (y_i - (\beta_0 + \beta_1x_i))^2 minimizeS=i=1n(yi(β0+β1xi))2

三、求解算法

为了找到最小化 S S S β 0 和 β 1 \beta_0 和 \beta_1 β0β1,我们可以使用以下方法:

  1. 偏导数为零法

    S S S 分别求 β 0 \beta_0 β0 β 1 \beta_1 β1的偏导数,并令其为零:

    ∂ S ∂ β 0 = − 2 ∑ i = 1 n ( y i − ( β 0 + β 1 x i ) ) = 0 \frac{\partial S}{\partial \beta_0} = -2\sum_{i=1}^{n}(y_i - (\beta_0 + \beta_1x_i)) = 0 β0S=2i=1n(yi(β0+β1xi))=0

    ∂ S ∂ β 1 = − 2 ∑ i = 1 n x i ( y i − ( β 0 + β 1 x i ) ) = 0 \frac{\partial S}{\partial \beta_1} = -2\sum_{i=1}^{n}x_i(y_i - (\beta_0 + \beta_1x_i)) = 0 β1S=2i=1nxi(yi(β0+β1xi))=0

    解这两个方程,可以得到 β 0 \beta_0 β0 β 1 \beta_1 β1 的值。

  2. 矩阵解法

    对于多元线性回归(即有多个自变量的情况),我们可以使用矩阵形式来表示和求解。设 Y Y Y是因变量向量, X X X是设计矩阵(包括自变量和常数项), β \beta β是参数向量, e e e 是误差向量。则模型可以表示为:

Y = X β + e Y = X\beta + e Y=+e

通过最小化误差平方和 ( e T e ) ,我们可以得到参数估计 ( β ^ = ( X T X ) − 1 X T Y ) 通过最小化误差平方和 (e^Te),我们可以得到参数估计 (\hat{\beta} = (X^TX)^{-1}X^TY) 通过最小化误差平方和(eTe),我们可以得到参数估计(β^=(XTX)1XTY)

四、算法步骤
  1. 收集数据:收集自变量 (x) 和因变量 (y) 的观测值。

  2. 构建设计矩阵:对于线性回归,设计矩阵 (X) 包括自变量和常数项(用于表示截距项)。

  3. 计算参数:使用上述方法(偏导数为零法或矩阵解法)计算回归参数 β 0 \beta_0 β0 β 1 \beta_1 β1(或对于多元线性回归,计算 β ^ \hat{\beta} β^)。

  4. 评估模型:使用得到的回归方程进行预测,并评估模型的性能(如使用均方误差等指标)。

在回归分析中,最小二乘法是一种广泛使用的技术,用于估计模型参数,使得模型预测值与真实观测值之间的差的平方和最小。

四、计算公式

以下是一般线性模型( y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n + ϵ y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_nx_n + \epsilon y=β0+β1x1+β2x2++βnxn+ϵ)中使用最小二乘法的基本步骤和计算公式:

    1. 目标函数

我们的目标是找到一组参数 β 0 , β 1 , … , β n \beta_0, \beta_1, \ldots, \beta_n β0,β1,,βn,使得目标函数(也称为残差平方和)最小化:

S ( β ) = ∑ i = 1 m ( y i − ( β 0 + β 1 x i 1 + β 2 x i 2 + ⋯ + β n x i n ) ) 2 S(\beta) = \sum_{i=1}^{m} \left( y_i - (\beta_0 + \beta_1x_{i1} + \beta_2x_{i2} + \cdots + \beta_nx_{in}) \right)^2 S(β)=i=1m(yi(β0+β1xi1+β2xi2++βnxin))2

其中, m m m是观测值的数量, y i y_i yi是第 i i i个观测的响应变量, x i j x_{ij} xij是第 i i i个观测的第 j j j个预测变量(或自变量), β j \beta_j βj是对应的系数(或参数)。

    1. 正规方程

为了找到使 S ( β ) S(\beta) S(β)最小的 β \beta β值,我们可以对 S ( β ) S(\beta) S(β)关于每个 β j \beta_j βj求偏导,并令其为0。这将产生一组线性方程(称为正规方程或法方程):

∂ S ( β ) ∂ β j = 0 \frac{\partial S(\beta)}{\partial \beta_j} = 0 βjS(β)=0

解这组方程,我们可以得到 β \beta β的估计值。对于简单的线性模型( y = β 0 + β 1 x + ϵ y = \beta_0 + \beta_1x + \epsilon y=β0+β1x+ϵ),正规方程简化为:

β 1 = n ∑ x i y i − ∑ x i ∑ y i n ∑ x i 2 − ( ∑ x i ) 2 \beta_1 = \frac{n \sum x_iy_i - \sum x_i \sum y_i}{n \sum x_i^2 - (\sum x_i)^2} β1=nxi2(xi)2nxiyixiyi

β 0 = ∑ y i − β 1 ∑ x i n \beta_0 = \frac{\sum y_i - \beta_1 \sum x_i}{n} β0=nyiβ1xi

其中, n n n是数据点的数量, x i x_i xi y i y_i yi分别是第 i i i个观测的自变量和因变量值。

    1. 矩阵形式

对于更一般的线性模型,我们可以将问题转化为矩阵形式来求解。定义设计矩阵 X X X(其中行对应观测,列对应预测变量,包括常数项1用于截距),响应向量 y y y,和参数向量 β \beta β,正规方程可以表示为:

X T X β = X T y X^TX\beta = X^Ty XT=XTy

解这个方程,我们得到:

β = ( X T X ) − 1 X T y \beta = (X^TX)^{-1}X^Ty β=(XTX)1XTy

这是最小二乘解的矩阵形式,它可以直接通过线性代数方法求解。

  • 注意

1.当 X T X X^TX XTX是可逆的(即,设计矩阵 X X X的列是线性独立的),上述方程有唯一解。
2. 在实际应用中,可能会遇到 X T X X^TX XTX不可逆的情况(如,预测变量之间存在多重共线性),此时需要使用正则化技术(如岭回归或LASSO)或其他方法来处理。
3. 最小二乘法假设误差项 ϵ \epsilon ϵ是独立同分布的,并且具有零均值和常数方差。这些假设对于最小二乘估计的性质至关重要。

五、注意事项
  1. 异常值处理:最小二乘法对异常值较为敏感,因此在应用前需要进行异常值检测和处理。

  2. 多重共线性:当自变量之间存在高度相关性时,可能会导致回归系数不稳定或难以解释。此时需要进行多重共线性检验和处理。

  3. 非线性关系:如果数据之间存在非线性关系,则线性回归模型可能无法很好地拟合数据。此时需要考虑使用非线性回归模型或其他方法。

  4. 模型假设检验:在应用最小二乘法进行线性回归时,需要检验模型的假设条件(如误差项的正态性、独立性等)是否满足。

回归理论概述

下面内容来自文心一言的自动生成
机器学习中的回归是一种预测数值型目标变量的监督学习算法。与分类问题不同

  • 回归问题的目标是预测一个连续的值,而不是一个离散的类别标签。
  • 回归模型通过学习输入变量(也称为特征或自变量)与输出变量(也称为目标变量或因变量)之间的关系来工作。
回归的基本概念
  • 输入变量(X):影响目标变量的因素,可以是单个或多个。
  • 输出变量(Y):需要预测的数值,也称为响应变量或目标变量。
  • 训练集:包含输入变量和对应输出变量的数据集,用于训练回归模型。
  • 测试集:用于评估训练好的回归模型性能的数据集,不包含在训练过程中。
回归模型的类型
  1. 线性回归

    • 最简单的回归形式,假设输入变量和目标变量之间存在线性关系。
    • 模型可以表示为: Y = β 0 + β 1 X 1 + β 2 X 2 + . . . + β n X n + ϵ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_nX_n + \epsilon Y=β0+β1X1+β2X2+...+βnXn+ϵ,其中 β i \beta_i βi 是系数, ϵ \epsilon ϵ 是误差项。
    • 可通过最小二乘法等方法求解系数。
  2. 多项式回归

    • 当线性关系不足以描述数据时,可以使用多项式回归。
    • 通过在回归方程中引入输入变量的幂次项来建模非线性关系。
  3. 岭回归(Ridge Regression)

    • 一种用于处理多重共线性数据的技术,通过向损失函数中添加L2正则化项来减少模型复杂度。
  4. 套索回归(Lasso Regression)

    • 类似于岭回归,但使用L1正则化项,可以自动进行特征选择,将不重要特征的系数收缩到0。
  5. 弹性网回归(Elastic Net Regression)

    • 岭回归和套索回归的结合,同时包含L1和L2正则化项。
  6. 决策树回归

    • 使用决策树模型进行回归预测,通过递归地将数据集分割成更小的子集来拟合模型。
  7. 随机森林回归

    • 基于多棵决策树的集成学习方法,通过平均或多数投票的方式提高预测的准确性和稳定性。
  8. 梯度提升回归树(GBRT, Gradient Boosting Regression Trees)

    • 通过构建多个弱学习器(通常是决策树),并将它们组合成一个强学习器来进行预测。
回归模型的评估
  • 均方误差(MSE, Mean Squared Error):预测值与真实值之差的平方的平均值,常用于评估回归模型的性能。
  • 均方根误差(RMSE, Root Mean Squared Error):MSE的平方根,与数据单位相同,更易于解释。
  • 平均绝对误差(MAE, Mean Absolute Error):预测值与真实值之差的绝对值的平均值,对异常值不如MSE敏感。
  • R²分数(R-squared):表示模型预测值与实际观测值之间的拟合程度,最佳值为1,值越小表示模型性能越差。

回归模型的选择和评估取决于具体问题的性质、数据的特性以及模型的假设条件。在实际应用中,通常需要通过交叉验证等方法来选择最优的模型。

线性回归

下面内容来自文心一言的自动生成
线性回归是机器学习中最基础也是应用最广泛的算法之一。它主要用于预测一个或多个自变量(特征)与因变量(目标)之间的线性关系。线性回归模型假设目标变量是输入特征的线性组合,并可能包括一个常数项(截距项)。

基本概念
  • 自变量(X):也称为特征或输入变量,是我们要用来预测因变量的值。在线性回归中,可以有一个或多个自变量。
  • 因变量(Y):也称为目标变量或输出变量,是我们想要预测的值。
  • 线性关系:指的是自变量和因变量之间存在一种直线关系,即当自变量变化时,因变量也按照一定比例变化,但这种变化是线性的。
线性回归模型

线性回归模型的一般形式可以表示为:

Y = β 0 + β 1 X 1 + β 2 X 2 + ⋯ + β n X n + ϵ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \dots + \beta_nX_n + \epsilon Y=β0+β1X1+β2X2++βnXn+ϵ

其中:

  • Y Y Y 是因变量(目标变量)。
  • X 1 , X 2 , … , X n X_1, X_2, \dots, X_n X1,X2,,Xn 是自变量(特征)。
  • β 0 , β 1 , … , β n \beta_0, \beta_1, \dots, \beta_n β0,β1,,βn 是模型的参数,也称为系数。 β 0 \beta_0 β0 是截距项,表示当所有自变量都为零时,因变量的预期值。 β 1 , … , β n \beta_1, \dots, \beta_n β1,,βn 表示各自变量对因变量的影响程度。
  • ϵ \epsilon ϵ 是误差项,表示模型预测值与实际值之间的差异,通常假设它遵循正态分布,且均值为0。
参数估计

在线性回归中,我们需要通过数据来估计模型的参数 β 0 , β 1 , … , β n \beta_0, \beta_1, \dots, \beta_n β0,β1,,βn。最常用的参数估计方法是最小二乘法(Least Squares Method)。最小二乘法通过最小化误差项的平方和来找到最佳的参数估计值,即求解以下优化问题:

minimize ∑ i = 1 m ( y i − ( β 0 + β 1 x i 1 + ⋯ + β n x i n ) ) 2 \text{minimize} \quad \sum_{i=1}^{m} (y_i - (\beta_0 + \beta_1x_{i1} + \dots + \beta_nx_{in}))^2 minimizei=1m(yi(β0+β1xi1++βnxin))2

其中 m m m 是样本数量, y i y_i yi 是第 i i i 个样本的实际目标值, x i j x_{ij} xij 是第 i i i 个样本的第 j j j 个特征值。

julia实现线性回归

下面内容来自文心一言的自动生成
在Julia中实现线性回归,可以通过多种方式完成,包括但不限于使用专门的库(如Flux.jl、GLM.jl等)或从头开始编写代码。以下是几种常见的方法:

1. 使用GLM.jl库

GLM.jl是Julia中用于广义线性模型(Generalized Linear Models)的一个包,它支持线性回归等多种模型。以下是使用GLM.jl进行线性回归的基本步骤:

  1. 安装GLM.jl:首先,需要确保GLM.jl包已经安装在你的Julia环境中。如果未安装,可以通过Julia的包管理器进行安装。

  2. 准备数据:准备输入特征(X)和目标变量(y)。这些数据可以是Julia中的向量或矩阵。

  3. 定义模型:使用GLM.jl的lm函数或fit函数来定义线性回归模型。lm函数通常与@formula宏一起使用,以定义模型公式(如y ~ x)。

  4. 拟合模型:调用lmfit函数来拟合模型,并获取模型对象。

  5. 分析模型:使用GLM.jl提供的函数(如coefr2等)来分析模型结果,如获取回归系数、R方值等。

  6. 使用GLM.jl库

GLM.jl是Julia中用于广义线性模型(Generalized Linear Models)的一个包,它支持线性回归等多种模型。以下是使用GLM.jl进行线性回归的基本步骤:

安装GLM.jl:首先,需要确保GLM.jl包已经安装在你的Julia环境中。如果未安装,可以通过Julia的包管理器进行安装。

准备数据:准备输入特征(X)和目标变量(y)。这些数据可以是Julia中的向量或矩阵。

定义模型:使用GLM.jl的lm函数或fit函数来定义线性回归模型。lm函数通常与@formula宏一起使用,以定义模型公式(如y ~ x)。

拟合模型:调用lm或fit函数来拟合模型,并获取模型对象。

分析模型:使用GLM.jl提供的函数(如coef、r2等)来分析模型结果,如获取回归系数、R方值等。

using GLM, DataFrames# 构造样本数据
x = [0.5, 1.0, 1.5, 2.0]
y = [1.0, 2.0, 2.5, 3.5]
df = DataFrame(x=x, y=y)# 进行线性回归拟合
model = lm(@formula(y ~ x), df)# 打印模型信息
println("R-squared: $(r2(model))")
println("Estimation coefficients: ")
println(coef(model))
2. 使用Flux.jl库

Flux.jl是Julia中的一个深度学习框架,它支持构建和训练包括线性回归在内的各种神经网络模型。以下是使用Flux.jl实现线性回归的基本步骤:

  1. 安装Flux.jl:确保Flux.jl包已安装在Julia环境中。

  2. 导入所需包:使用using Flux等语句导入Flux.jl及其相关函数。

  3. 准备数据集:准备输入特征和目标变量。

  4. 定义模型:使用Flux.jl的ChainDense层来定义线性回归模型。

  5. 定义损失函数和优化器:定义用于训练模型的损失函数(如均方误差MSE)和优化器(如梯度下降)。

  6. 训练模型:使用Flux.jl提供的训练函数(如Flux.train!)来训练模型。

  7. 进行预测:使用训练好的模型进行预测。

using Flux
using Flux: @epochs, mse# 准备数据集
X = [1.0, 2.0, 3.0, 4.0, 5.0]' # 注意这里使用了转置,使其成为列向量
y = [2.0, 3.0, 4.0, 5.0, 6.0]'# 定义模型
model = Chain(Dense(1, 1))# 定义损失函数
loss(x, y) = mse(model(x), y)# 定义优化器
optimizer = Descent(0.1)# 训练模型
@epochs 1000 Flux.train!(loss, params(model), [(X, y)], optimizer)# 进行预测
prediction = model(X)
3. 从头开始编写代码

如果不使用任何外部库,也可以从头开始编写代码来实现线性回归。这通常涉及使用最小二乘法来求解回归系数。

# 生成随机数据
Random.seed!(123)
x = rand(100)
y = 2*x .+ randn(100)# 定义线性回归函数function linear_regression(x, y)n = length(x)x_mean = mean(x)y_mean = mean(y)b = sum((x .- x_mean) .* (y .- y_mean)) / sum((x .- x_mean) .^ 2)a = y_mean - b * x_meanreturn a, b
end# 计算回归系数
a, b = linear

参考文献

  • 《机器学习精讲 基础、算法与应用》
  • 文心一言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4 Java的基本程序设计结构(基本语法3)- 字符串、面向对象(进阶)

文章目录 前言一、java中的 究竟比较的是什么?二、字符串1 String(1)String的两种构造方式(2)字符数组转字符串、字节数组转字符串(3)字符串的 拼接(4)字符串的内存结构…

2024睿抗机器人开发者大赛CAIP编程赛题解(c++)

题目地址(补题) PTA | 程序设计类实验辅助教学平台 RC-u1 热҈热҈热҈ 简单模拟题&#xff0c;没什么好说的 : #include<bits/stdc.h> using namespace std ; const int N 55 ;int a[N] ;int main(){int n , w ; cin >> n >> w ;for(int i1;i<n;i)…

【Android面试八股文】荣耀面试算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵

文章目录 1. 算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵1.1 题目描述1.2 算法实现1.2.1 步骤说明:1.2.2 算法实现1.2.3 代码实现:1.2.4 程序说明:1.2.5 示例详细讲解如何将一个矩阵顺时针旋转90度1. 算法题:输入一个N阶方…

Spring -- 三层架构

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 应用分层 介绍 在阿里的开发手册里,关于工程结构部分,定义的常见工程的应用分层结构 那么什么是应用分层呢? 应用分层是一种软件开发设计思想,他将应用程序分层N个层次.这N个层次分别负责各…

Oracle小白菜鸟从入门到精通教程

前言 Oracle公司&#xff08;甲骨文&#xff09;是全球最大的信息管理软件及服务供应商&#xff0c;成立于1977年&#xff0c;总部位于美国加州Redwood shore&#xff0c;面向全球开放oracle认证。Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财…

Hi6274 反激式20瓦电源芯片

HI6274为高性能多模式 PWM 反激式20瓦电源芯片。HI6274较少的外围元器件、较低的系统成本可设计出高性能的"无Y"开关电源。HI6274提供了极为全面和性能优异的智能化保护功能&#xff0c;包括逐周期过流保护、过载保护、软启动、芯片过温保护、可编程输出过压保护功能…

云原生项目纪事系列 - 项目管理的鲜活事例

大规模云原生系统的新颖性、建设性和挑战性&#xff0c;吸引着许多有数学思想、哲学意识和美学观念的系统架构师&#xff0c;老模也是其中一员。 老模即是文史家庭出身&#xff0c;又有理工学业背景&#xff0c;他基于平时记录的翔实细节&#xff0c;秉持客观原则&#xff0c;使…

【Langchain大语言模型开发教程】记忆

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、Langchain的历史记忆 ConversationBufferMemory 2、基于窗口限制的临时记忆 ConversationBufferWindowMemory 3、基于Token数量的临时记忆 ConversationTokenBufferMemory 4、基于历史…

世界启动Ⅷ--AI视频制作-方案与创新

1.文本/图片生成视频顾名思义&#xff0c;就是输入一段文本描述/上传一张图片即可生成对应的视频。我们常见的Runway、Pika、NeverEnds、Pixverse、svd等都属于此类。比如runway的影视风格Pika的动漫风格NeverEnds的人像模特当然还有一些外延应用&#xff0c;例如最近比较火的阿…

【Webpack】提高打包速度

升级 webpack 版本&#xff1a;Webpack 不断更新优化打包速度&#xff0c;升级到最新版本可以获得更好的性能。 减少模块解析范围&#xff1a;通过设置resolve.modules、resolve.extensions、resolve.alias等选项&#xff0c;可以让Webpack减少查找和解析模块的范围&#xff0…

《从C/C++到Java入门指南》- 17.命令行参数

命令行参数 一直写代码的童鞋可能留意到了&#xff0c;main函数中会传入一个String args[]的字符串数组。 这个数组由JVM接收用户输入并传给main函数。 import java.util.*; public class Main {public static void main(String[] args) {for (String arg : args) {System.out…

FLINK-运行架构

为什么要学习Flink运行架构&#xff1f; 虽然现在大厂的开发工具都非常高效、只需要进行参数配置、Flink-sql写业务逻辑&#xff0c;但是在资源配置逻辑优化上不可避免需要了解底层的组件配置。面试时可能也会被问到FLINK是如何进行资源分配、作业运行的等。 以下是在学习时记录…

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图&#xff08;二D&#xff09; 散点图示例解析效果 饼图示例解析效果 折线图示例解析效果 柱状图示例解析效果 箱线图示例解析效果 直方图示例解析效果 等高线图使用filled.contour函数示例…

Python学习—open函数,json与pickle知识点,Os模块详解

目录 1. Open函数 2.json与pickle模块 json模块 1. json.dumps() 2. json.dump() 3. json.loads() 4. json.load() pickle 模块 1. pickle.dumps() 2. pickle.dump() 3. pickle.loads() 4. pickle.load() 3.Os模块 1. Open函数 在Python中&#xff0c;open() 函数…

Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署

目录 环境准备 导入项目包 配置jenkins 构建项目 配置项目上线 修改项目代码测试 环境准备 本实操项目环境基于https://blog.csdn.net/Lzcsfg/article/details/140359830 首先在node01主机中操作&#xff0c;本次操作需要java8的版本&#xff0c;将之前安装的java17卸…

IoTDB 分段查询语句详解:GROUP BY + 时序语义

GROUP BY 查询子句的时序语义展开&#xff0c;IoTDB 支持的分段方式总结&#xff01; 存储的数据通过分析来发挥价值&#xff0c;当一组被存储的数据通过查询得到分析后的结果时&#xff0c;这些数据才真正在数据库中实现了价值闭环。 在关系型数据库中&#xff0c;GROUP BY 子…

陀螺仪LSM6DS3TR-C的简单使用

文章目录 一、前言二、硬件1.引脚说明2.原理图 三、软件1.IIC读写函数1.1 读函数1.2 写函数 2.初始化2.1 检测设备是否存在2.2 读取LSM6DS3TRC器件ID2.3 LSM6DS3TRC重启&#xff0c;重置寄存器2.5 LSM6DS3TRC设置块数据更新2.6 LSM6DS3TRC设置加速度计的数据采样率2.7 LSM6DS3T…

剪画小程序:刷到好听的音频怎么将音频保存到手机里

在这个短视频盛行的时代&#xff0c;相信很多朋友都和我一样&#xff0c;常常会被那些精彩视频中的背景音乐深深吸引。 比如我&#xff0c;特别喜欢听歌&#xff0c;这段时间在短视频平台上刷到了好多好看的视频&#xff0c;里面的背景音乐简直绝绝子&#xff01; 那么&#x…

【数据分享】2013-2022年我国省市县三级的逐年SO2数据(excel\shp格式\免费获取)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000——2022年的省市县三级的逐年PM2.5数据和2013-2022年的省市县三级的逐年CO数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次我们分享的是我国2013——2022年的省…

《样式设计011:模组-瓷片区》

描述&#xff1a;在开发小程序过程中&#xff0c;发现一些不错的案例&#xff0c;平时使用也比较多&#xff0c;稍微总结了下经验&#xff0c;以下内容可以直接复制使用&#xff0c;希望对大家有所帮助&#xff0c;废话不多说直接上干货&#xff01; 一、小程序&#xff1a;模组…