python机器学习(四)线性代数回顾、多元线性回归、多项式回归、标准方程法求解、线性回归案例

回顾线性代数

矩阵

矩阵可以理解为二维数组的另一种表现形式。A矩阵为三行两列的矩阵,B矩阵为两行三列的矩阵,可以通过下标来获取矩阵的元素,下标默认都是从0开始的。 A i j : A_{ij}: Aij:表示第 i i i行,第 j j j列的元素。
在这里插入图片描述

向量

向量是特殊的矩阵,只有1列的矩阵,C是4行1列的向量。
在这里插入图片描述

矩阵与标量运算

标量与矩阵里的每一个元素进行运算,也可以想象成利用广播机制,把标量看成与矩阵同形状且每个元素都为标量的矩阵,对应位置进行运算。
在这里插入图片描述
矩阵与标量之间的运算是将每个元素都与标量进行运算。

矩阵与向量运算

在这里插入图片描述
n n n m m m列的矩阵乘以 m m m行1列的向量,得到 n n n行1列的向量。
例题:
比如房子的大小影响房价的高低,大小作为特征数据。
某特征数据: [ 1 2 3 ] \begin{bmatrix} 1\\ 2\\3\end{bmatrix} 123 ,线性关系为: h ( x ) = 2 x + 1 h(x)=2x+1 h(x)=2x+1,如何使用线性代数的知识表示 h ( x ) h(x) h(x) x x x之间的关系?
构建特征矩阵,添加系数全为1的1列,然后构建参数向量,1对应 θ 0 θ_0 θ0,2对应 θ 1 θ_1 θ1。x为特征数据,样本数据有 m m m个,此时 m = 3 m=3 m=3,分别对应 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3,保证截距没有其他系数干扰
在这里插入图片描述

矩阵与矩阵运算

对应位置进行运算。矩阵与向量不能直接进行相加运算。
在这里插入图片描述
矩阵与矩阵之间按位运算,并且形状要保持一致,否则不可运算。
3 ∗ 2 3*2 32的矩阵与 2 ∗ 3 2*3 23的矩阵进行相乘运算,可以把后面的 2 ∗ 3 2*3 23的矩阵拆成3个向量进行计算,得到的是 3 ∗ 3 3*3 33的矩阵。
在这里插入图片描述
n n n m m m列的矩阵乘以 m m m n n n列的矩阵,得到 n n n n n n列的矩阵。
例题:
某特征数据: [ 1 2 3 ] \begin{bmatrix} 1\\ 2\\3\end{bmatrix} 123 ,线性关系为: h ( x ) = 2 x + 1 h(x)=2x+1 h(x)=2x+1 h ( x ) = 3 x + 2 h(x)=3x+2 h(x)=3x+2,如何使用线性代数的知识表示 h ( x ) h(x) h(x) x x x之间的关系?
在这里插入图片描述
有多个 h ( x ) h(x) h(x)表现形式,把第一个线方程式中的1对应 θ 0 θ_0 θ0,2对应 θ 1 θ_1 θ1,第二个方程式中的2对应 θ 0 ′ θ_0' θ0,3对应 θ 1 ′ θ_1' θ1,多个方程式依次往后摆放。

单位矩阵

在自然数中,1乘以任何数等于任何数乘以1,等于任何数本身。单位矩阵对角线元素为1,其他元素全部为0,行列相同,也为方阵。
I = [ 1 0 0 0 1 0 0 0 1 ] I=\begin{bmatrix} 1&0&0\\ 0&1&0\\0&0&1\end{bmatrix} I= 100010001 A ∗ I = I ∗ A = A A*I=I*A=A AI=IA=A
m ∗ m m*m mm单位矩阵乘以 m ∗ n m*n mn的矩阵,都为 m ∗ n m*n mn的矩阵,矩阵与单位矩阵相乘满足交换律,其他矩阵的计算并不满足交换律。

转置矩阵

把矩阵的行与列进行交换。
在这里插入图片描述
A i j = A j i T A_{ij}=A_{ji}^T Aij=AjiT

逆矩阵

只有 m ∗ m m*m mm的方阵才有逆矩阵,行列式不为0,逆矩阵的特点: A ∗ A − 1 = A − 1 ∗ A = I A*A^{-1}=A^{-1}*A=I AA1=A1A=I,好比 3 ∗ 3 − 1 = 1 3*3^{-1}=1 331=1
在这里插入图片描述

多元线性回归

之前预测房价是通过一个特征(房子的大小)来预测的,而现实中影响房价的因素并不是只有房子的大小,还有很多其他特征在影响着房价,如北京的公寓价格要高于小城市的别墅等。这时考虑的特征不再只有1个,而是多个。当有多个特征来训练模型的时候,变量就会从 x 1 x_1 x1变为 x 1 . . . x n x_1...x_n x1...xn
下图中有多少条记录,也就是有多少个样本数据集,标签就是目标值(价格),特征为:bedrooms,bathrooms,sqft_living,sqft_lot,floots,得出线性关系为: h ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h(x)=θ_0+θ_1x_1+θ_2x_2+...+θ_nx_n h(x)=θ0+θ1x1+θ2x2+...+θnxn
在这里插入图片描述
在公式中可以看成 x 0 = 1 x_0=1 x0=1,构建特征向量 x x x,参数向量 θ θ θ。有 m m m个数据样本集,向量 x x x的长度为 n + 1 n+1 n+1
在这里插入图片描述
多元线性回归,多元就代表有多个参数,多个特征量或多个变量来预测 h ( x ) h(x) h(x),最终目的是求得一系列的 θ θ θ,使得代价函数最小。
公式: h ( x ) = θ T ∗ X = θ 0 x 0 + θ 1 x 1 + . . . + θ n x n h(x)=θ^T*X=θ_0x_0+θ_1x_1+...+θ_nx_n h(x)=θTX=θ0x0+θ1x1+...+θnxn
参数: θ 0 , θ 1 , . . . , θ n θ_0,θ_1,...,θ_n θ0,θ1,...,θn
代价函数: J ( θ 0 , θ 1 , . . . θ n ) = 1 2 m ∑ i = 1 m ( h ( x i ) − y i ) 2 J(θ_0,θ_1,...θ_n)= \frac{1}{2m}\displaystyle{\sum_{i=1}^{m}(h(x^i)-y^i)^2} J(θ0,θ1,...θn)=2m1i=1m(h(xi)yi)2
目标:求得 θ 0 , θ 1 , . . . , θ n θ_0,θ_1,...,θ_n θ0,θ1,...,θn,使得代价函数最小
梯度下降法:拟定一个迭代次数,不停的对 θ θ θ求偏导,来更改或者迭代 θ θ θ参数,直到代价函数最小。
θ 0 θ_0 θ0求偏导, θ 0 θ_0 θ0为截距,从 θ 1 θ_1 θ1开始,后面的才为对应 x 1 x_1 x1前面的系数。
在这里插入图片描述
θ 1 θ_1 θ1求偏导。
在这里插入图片描述
θ 2 θ_2 θ2求偏导。
在这里插入图片描述
在这里插入图片描述

梯度下降法实现多元线性回归

货运公司送货,想根据历史数据实现一套预测总运输时间的模型。
运输里程、运输次数都是特征,总运输时间是标签(目标值),通过运输里程、运输次数来预测总运输时间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到点分布在平面的上下,上下都有损失,总体来说在中间的位置,通过一个平面来拟合了两个特征的数据,可以得到预测的结果。

sklearn实现多元线性回归

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代价函数最小的时候,求得的平面图。sklearn并不是梯度下降法封装的,用的是标准化方程。

多项式回归

假设房子的特征有两个:房子的宽度、长度,预测房价的方程: h ( x ) = θ 0 + θ 1 ∗ 宽 + θ 2 ∗ 长 h(x)=θ_0+θ_1*宽+θ_2*长 h(x)=θ0+θ1+θ2,利用房子的面积公式可以把两个特征转化为一个,得到的公式为: h ( x ) = θ 0 + θ 1 ∗ 面积 h(x)=θ_0+θ_1*面积 h(x)=θ0+θ1面积
有可视化的图形如下所示:
在这里插入图片描述
如果只有线性回归的话,拟合出一条向上的直线,所对应的方程: h ( x ) = θ 0 + θ 1 x h(x)=θ_0+θ_1x h(x)=θ0+θ1x。这条线对数据来说,并不是一条很好的拟合线,mse(损失)比较大。
如果用曲线进行拟合的话,得到的方程: h ( x ) = θ 0 + θ 1 x + θ 2 x 2 h(x)=θ_0+θ_1x+θ_2x^2 h(x)=θ0+θ1x+θ2x2,可以通过幂次来估计函数大致的走向,图形由幂次的高低决定,若曲线为抛物线,房价随着面积的增大而增大,到一定程度后,会随着房子面积的增大而减小,对于同一个地区并不会出现这种情况。
如果说要房价随着曲线由逐渐上升的趋势,就要引入高幂次,对应的方程: h ( x ) = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 h(x)=θ_0+θ_1x+θ_2x^2+θ_3x^3 h(x)=θ0+θ1x+θ2x2+θ3x3
涉及到了一元三次方程,可以通过替换的方法将高次幂变为低次幂。
,
假设: x 1 = ( s i z e ) ; x 2 = ( s i z e ) 2 ; x 3 = ( s i z e ) 3 x_1=(size);x_2=(size)^2;x_3=(size)^3 x1=(size);x2=(size)2;x3=(size)3,转化为只有x一个特征,

h ( x ) = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 = θ 0 + θ 1 ( s i z e ) + θ 2 ( s i z e ) 2 + θ 3 ( s i z e ) 3 = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 h(x)=θ_0+θ_1x+θ_2x^2+θ_3x^3=θ_0+θ_1(size)+θ_2(size)^2+θ_3(size)^3=θ_0+θ_1x_1+θ_2x_2+θ_3x_3 h(x)=θ0+θ1x+θ2x2+θ3x3=θ0+θ1(size)+θ2(size)2+θ3(size)3=θ0+θ1x1+θ2x2+θ3x3
将高幂次转化为多元线性回归的问题。

多项式回归案例

不同级别职位对应的薪水如下,建立级别薪资预测系统,通过传入新的level,来预测Salary。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拟合的效果并不是很好,用多项式回归进行处理。
在这里插入图片描述
在这里插入图片描述
可以通过调整degree来改变拟合的程度。

标准方程法

梯度下降法是为了得到最小的代价函数 J ( θ ) J(θ) J(θ),求导 θ 0 , θ 1 , . . . , θ n θ_0,θ_1,...,θ_n θ0,θ1,...,θn,需要迭代很多次,才能收敛到全局的最小值。

标准方程法也可以求到全局的最小值,不再需要运用迭代算法,可以一次求得θ的最优值。 J ( θ ) = a θ 2 + b θ + c J(θ)=aθ^2+bθ+c J(θ)=aθ2+bθ+c,绘制的图形如下图所示:
在这里插入图片描述
选取合适的 θ θ θ找到方程的最小值,求最低点的 θ θ θ可以通过解方程、最低点的斜率是水平的为0,相当于在这个点求导,斜率为0,可以的得到, 2 a θ + b = 0 2aθ+b=0 2aθ+b=0 θ = − b 2 a θ=-\frac{b}{2a} θ=2ab
但是 θ θ θ通常为向量,所以代价函数为: J ( θ 0 , θ 1 , . . . , θ n ) = 1 2 m ∑ i = 1 m ( h ( x i ) − y i ) 2 J(θ_0,θ_1,...,θ_n)= \frac{1}{2m}{\displaystyle{\sum_{i=1}^{m}(h(x^i)-y^i)^2}} J(θ0,θ1,...,θn)=2m1i=1m(h(xi)yi)2
如果需要用标准方程法去求解,就需要对每个 θ θ θ求偏导,并令结果为0。求解对应的 θ θ θ值。

标准方程法案例

之前用梯度下降法求解的时候,需要用两层for循环,造成代码的冗余。
J ( θ 0 , θ 1 , . . . , θ n ) = 1 2 m ∑ i = 1 m ( h ( x i ) − y i ) 2 J(θ_0,θ_1,...,θ_n)= \frac{1}{2m}{\displaystyle{\sum_{i=1}^{m}(h(x^i)-y^i)^2}} J(θ0,θ1,...,θn)=2m1i=1m(h(xi)yi)2
该数据一共有4个训练样本,price为标签对应 y y y,特征有5个,为bedrooms,bathrooms,sqft_living,sqft_lot,floors,分布对应 x 1 − − x 5 x_1--x_5 x1x5,有多个特征数据,需要构建矩阵,添加上 x 0 x_0 x0,并使得其值全为1。
在这里插入图片描述
构成的矩阵为: X = [ 1 3 1.00 1185 5650 1.0 1 3 2.25 5270 7242 2.0 1 2 1.00 770 10000 1.0 1 4 3.00 1960 5000 1.0 ] X=\begin{bmatrix} 1&3&1.00&1185&5650&1.0\\ 1&3&2.25&5270&7242&2.0\\1&2&1.00&770&10000&1.0\\1&4&3.00&1960&5000&1.0\end{bmatrix} X= 111133241.002.251.003.00118552707701960565072421000050001.02.01.01.0
矩阵 X X X就是对应的特征矩阵。 y y y是真实值,构建的标签是向量, y = [ 221900 538000 180000 604000 ] y=\begin{bmatrix} 221900\\ 538000\\180000\\604000\end{bmatrix} y= 221900538000180000604000
θ = [ θ 0 θ 1 θ 2 θ 3 θ 4 θ 5 ] θ=\begin{bmatrix} θ_0\\ θ_1\\θ_2\\θ_3\\θ_4\\θ_5\end{bmatrix} θ= θ0θ1θ2θ3θ4θ5
利用 X , y , θ X,y,θ X,y,θ构建代价函数,先构建矩阵 X θ Xθ ,其实也是 h ( x ) h(x) h(x)部分,误差值为真实值减去预测值, y − h ( x ) y-h(x) yh(x),也即是 y − X θ y-Xθ y
在这里插入图片描述
求得的 e r r o r error error为单个的误差值,要得到误差的平方的求和,就转换为刚得到的误差向量乘以误差向量的转置。
如下图所示, e r r o r 0 = ( y − X θ ) error_0=(y-Xθ) error0=(y) e r r o r 0 ∗ e r r o r 0 = ( y − X θ ) 2 error_0*error_0=(y-Xθ)^2 error0error0=(y)2,误差向量与误差向量转置的乘积就为 ( y − X θ ) 2 (y-Xθ)^2 (y)2
在这里插入图片描述
求得最低值,也即是该点的斜率为0。求导过程如下,
逆矩阵乘以该矩阵 结果为单位矩阵。实现了标准方程法求 θ θ θ的方式。
在这里插入图片描述

标准方程法与梯度下降法的对比

标准方程法优点:求 θ θ θ值时,不需要选择学习率;不需要迭代,是两个向量之间直接做的运算替代了之前通过循环去控制每个样本数据的计算。缺点:需要计算逆矩阵,并不是所有的矩阵都有逆矩阵(方阵,行列不为0);当特征比较多的时候(n比较多),构建的是 ( n + 1 ) ∗ ( m + 1 ) (n+1)*(m+1) (n+1)(m+1)的矩阵,计算的时候,运算维度很高,所以特征变量非常多的时候,不太适合用标准方程法去求解。
梯度下降法优点:不需要计算逆矩阵,在特征量比较多的适合也适用。缺点:需要选择学习率;需要进行迭代。
数据量比较大(n的值是万以上级别)的适合用梯度下降法,特征向量比较小的时候用标准方程法。

numpy实现标准方程法求解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线性回归案例

有如下数据:“kc_house_data.csv”,我们需要对其进行模型的训练。

一元线性回归分析

查看数据的信息,样本21613条,21列,'id’房子的序号,'date’为数据采集的时间,对房价没有影响。'price’为标签,其余的均为特征。用一元线性回归的话,就取一个特征,如取住房面积"sqft_living"。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多元线性回归分析

特征有多个,标签只有1个"price",有多个特征在影响价格。
在这里插入图片描述
选出跟价格影响最大的一些特征去训练模型,可视化的形式显示出来。房间个数、楼层数、浴室个数跟房价的关系,房间个数不一定是连续的,绘制箱型图。
在这里插入图片描述
在这里插入图片描述
对得到的图形进行分析,当bedrooms 为11,33时,没有房价的分布,说明这两个是不需要的。房价在6以上的都可以去除掉,价格跟一些特征不是完全呈现线性关系,还需要考虑特征与特征之间的关系。
在这里插入图片描述
在这里插入图片描述
子图1跟子图2关系不大,子图3跟子图4存在关系,当房屋面积增大的时候,停车面积、房间个数、浴室个数都在增加,说明房屋面积跟停车面积、房间个数、浴室个数的相关性比较大;房屋面积跟楼层、房间个数没有多大的关系。用热力图绘制两两图形之间的关系。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当颜色非常淡的时候如-0.4,呈现负相关;当颜色非常绿的时候如0.6,呈现正相关,相关性比较紧密,自己与自己的相关性为1。住房面积"sqft_living"与price、bathrooms、grade、sqft_living15的关系比较紧密。如果只看正相关性强的,在特征选择上完全规避了一些不好的特征,模型训练出来就会过拟合。
选择特征的时候,注意:一是特征与标签之间的关系,一般要选择正相关的关系;二是要留一部分防止过拟合,三是剔除掉关系与关系之间特征性比较强的特征,如住房面积与15住房面积,不然会出现大量的计算。
特征与特征进行分析了后,进行多元线性回归模型的建立,特征不一样的时候,训练出来的结果也不一样。

多项式的处理

在这里插入图片描述
多项式训练出来的结果得分要强一些,预测出来的测试结果没有那么强,说明数据中有过拟合的现象。真实的结果没有训练出来的那么强。

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

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

相关文章

在虚拟机中安装anaconda和pytorch

首先我用的是VMware&#xff0c;ubuntu16.04. 首先建议安装anaconda,登录官网Free Download | Anaconda 下载完成后&#xff0c;来到安装文件目录处&#xff0c;打开终端&#xff0c; 然后在终端输入bash <anaconda文件名> 然后就一直enter和yes到底&#xff0c;直到安…

服务器中了Locked勒索病毒怎么解决,勒索病毒解密恢复方式与防护措施

服务器是企业重要数据存储和处理的关键设备&#xff0c;然而&#xff0c;众所周知&#xff0c;服务器系统并非完全免受网络攻击的。其中一种常见的威胁是勒索病毒&#xff0c;其中一种恶名昭彰的变种是Locked勒索病毒。Locked勒索病毒采用了对称AES与非对称RSA的加密形式&#…

曲线长度预测神经网络设计与实现

在本文中&#xff0c;我们使用深度神经网络 (DNN) 解决几何中的一个基本问题&#xff1a;曲线长度的计算。 我们从监督学习方法的示例中学习了几何属性。 由于最简单的几何对象是曲线&#xff0c;因此我们重点学习平面曲线的长度。 为此&#xff0c;重建了基本长度公理并建立了…

Microsoft发布用于 AutoML 算法和训练的 NNI v1.3

将传统的机器学习方法应用于现实世界的问题可能非常耗时。自动化机器学习 &#xff08;AutoML&#xff09; 旨在改变这种状况——通过对原始数据运行系统流程并选择从数据中提取最相关信息的模型&#xff0c;使构建和使用 ML 模型变得更加容易。 为了帮助用户以高效和自动的方…

【雕爷学编程】Arduino动手做(170)---LGT8F328P 开发板

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

【C++ 程序设计】第 1~9 章:常见知识点汇总

目录 一、C 语言简介 二、面向对象的基本概念 三、类和对象进阶 四、运算符重载 五、类的继承与派生 六、多态与虚函数 七、输入/输出流 八、文件操作 九、函数模板与类模板 一、C 语言简介 知识点名称内容C语言的发展简史★★1. C 语言是 C 语言的前身 &…

PyTorch深度学习实战(6)——神经网络性能优化技术

PyTorch深度学习实战&#xff08;6&#xff09;——神经网络性能优化技术 0. 前言1. 数据准备1.1 数据集分析1.2 数据集加载 2. 使用 PyTorch 训练神经网络2.1 神经网络训练流程2.2 PyTorch 神经网络训练 3. 缩放数据集4. 修改优化器5. 构建深层神经网络小结系列链接 0. 前言 …

C#之事件

目录 一、发布者和订阅者 &#xff08;一&#xff09;概述 &#xff08;二&#xff09;有关事件的重要事项 &#xff08;三&#xff09;有关事件的私有委托需要了解的重要事项 二、源代码组件概览 三、声明事件 事件是成员 四、订阅事件 五、触发事件 六、标准事件的…

【Zerotier】通过docker自建PLANET服务器

在如今全球互联的时代&#xff0c;我们对于互联网的依赖程度越来越高。然而&#xff0c;传统的网络连接方式在某些情况下可能会受到一些限制&#xff0c;例如局域网的范围限制、防火墙的阻断或者设备所处的多层NAT等。但是&#xff0c;现在有一个名为ZeroTier的工具出现了&…

【C语言进阶】文件操作

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C语言 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、什么是文件 1.1程序文件 1.2数据文件 1.3文件名 二、文件的打开和关闭 2…

银河麒麟服务器v10 sp1 nginx 部署项目

上一篇&#xff1a;银河麒麟服务器v10 sp1 nginx开机自动启动_csdn_aspnet的博客-CSDN博客 由于项目为前后端分离&#xff0c;前端项目使用nginx部署&#xff0c;VUE项目打包后上传至银河麒麟服务器&#xff1a; 8063 为前端项目文件目录&#xff0c;修改配置 &#xff0c;默认…

脑电信号处理与特征提取——三. 脑电实验设计的原理与实例(古若雷)

三、脑电实验设计的原理与实例 被试间设计的实验结果也有可能是人员不同造成的&#xff0c;所以建议被试内设计。

双端队列(deque)与优先队列(priority_queue)

文章目录 一.双端队列——deque1.deque的优点与缺点2.deque的原理 二.优先队列——priority_queue1.什么是优先队列&#xff1f;2.优先队列的基本使用3.什么是仿函数&#xff1f;4.优先队列的模拟实现 一.双端队列——deque 在上一章stack、queue的模拟实现中&#xff0c;我们…

Mysql 数据库开发及企业级应用

文章目录 1、Mysql 数据库开发及企业级应用1.1、为什么要使用数据库1.1.1、数据库概念&#xff08;Database&#xff09;1.1.2、为什么需要数据库 1.2、程序员为什么要学习数据库1.3、数据库的选择1.3.1、主流数据库简介1.3.2、使用 MySQL 的优势1.3.3、版本选择 1.4、Windows …

【VUE】解决图片视频加载缓慢/首屏加载白屏的问题

1 问题描述 在 Vue3 项目中&#xff0c;有时候会出现图片视频加载缓慢、首屏加载白屏的问题 2 原因分析 通常是由以下原因导致的&#xff1a; 图片或视频格式不当&#xff1a;如果图片或视频格式选择不当&#xff0c;比如选择了无损压缩格式&#xff0c;可能会导致文件大小过大…

unity 控制text根据字数自动扩展大小,并扩展UI背景

需求&#xff1a;文字内容位置保持不变&#xff0c;向下增加&#xff0c;背景框随之同步扩展。 1.UGUI 九宫格 拉伸 对背景框图片资源处理&#xff0c;避免图片拉伸。 (10条消息) unity UGUI 九宫格 拉伸_unity九宫格拉伸_野区捕龙为宠的博客-CSDN博客 2.背景框添加组件 3.…

php裁剪图片,并给图片加上水印

本次以裁剪四个图片为例&#xff0c;图片如下 代码如下 public function cutImg($imgUrl){try{// 读取原始图片$src_img imagecreatefromjpeg($imgUrl);// 获取原始图片的宽度和高度$src_width imagesx($src_img);$src_height imagesy($src_img);// 计算每个部分的宽度和高…

【数字信号处理】带通采样定理及其MATLAB仿真

目录 一、带通采样定理1.1 内容1.2 公式推导 二、MATLAB信号仿真2.1 信号仿真实验2.2 MATLAB代码 三、总结参考 一、带通采样定理 按照奈奎斯特采样定理(低通采样)&#xff0c;采样频率 f s f_{s} fs​ 要大于等于信号中最高频率 f m a x f_{max} fmax​ 的2倍&#xff0c;才…

C++OpenCV(2):图像处理基础概念与操作

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 &#x1f506; OpenCV项目地址及源代码&#xff1a;点击这里 文章目录 图形读取与显示加载图片显示图片打印图片信息保存图片 色彩模型转换RGB颜色模型HSV颜色模型HLS模型LAB模型 图像像素读写操作像素算数运…

macOS 源码编译 qpress

╰─➤ git clone https://github.com/PierreLvx/qpress.git ╰─➤ cd qpress ╰─➤ make g -O3 -o qpress -x c quicklz.c -x c qpress.cpp aio.cpp utilities.cpp -lpthread -Wall -Wextra -Werror ╰─➤ sudo make install …