目录
最近看模式识别课程的时候卡在了一个地方,见下图:

协方差矩阵倒还知道,自相关矩阵?怎么推导的?它有什么意义?上网查了资料,要么晦涩难懂,要么一堆废话,这里我想尽量用最简洁的语言讲清楚它们。
场景:机器学习
样本(n个样本,N个维度(特征)):
X
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
x
i
=
{
w
i
,
1
,
w
i
,
2
,
.
.
.
,
w
i
,
N
}
T
i
∈
[
1
,
n
]
w
j
=
{
w
1
,
j
,
w
2
,
j
,
.
.
.
,
w
n
,
j
}
j
∈
[
1
,
N
]
X=\left \{ x_1,x_2,...,x_n \right \} \\ x_i=\left \{ w_{i,1},w_{i,2},...,w_{i,N} \right \} ^T \\ i\in \left [ 1,n \right ] \\ w_j=\left \{ w_{1,j},w_{2,j},...,w_{n,j} \right \}\\ j\in \left [ 1,N \right ] \\
X={x1,x2,...,xn}xi={wi,1,wi,2,...,wi,N}Ti∈[1,n]wj={w1,j,w2,j,...,wn,j}j∈[1,N]
这里的i和j与下面的i和j无关!!!
具体样例(3个样本,4个维度(特征)):
X
=
{
x
1
,
x
2
,
x
3
}
x
1
=
{
1
,
2
,
3
,
4
}
T
x
2
=
{
3
,
2
,
1
,
4
}
T
x
3
=
{
2
,
2
,
3
,
4
}
T
X=\left \{ x_1,x_2,x_3 \right \} \\ x_1=\left \{ 1,2,3,4 \right \} ^T\\ x_2=\left \{ 3,2,1,4 \right \} ^T\\ x_3=\left \{ 2,2,3,4 \right \} ^T
X={x1,x2,x3}x1={1,2,3,4}Tx2={3,2,1,4}Tx3={2,2,3,4}T
方差(后面会频繁用到方差):

首先定义由各样本向量均值构成的向量
M
X
M_X
MX ,则样本向量
X
X
X构成的协方差矩阵记为 :
M
X
=
E
(
X
)
=
{
m
1
,
m
2
,
.
.
.
,
m
N
}
T
C
X
,
X
=
E
{
(
X
−
M
X
)
(
X
−
M
X
)
T
}
=
[
c
1
,
1
.
.
.
c
1
,
N
.
.
.
.
.
.
.
.
.
c
N
,
1
.
.
.
c
N
,
N
]
M_X=E\left ( X \right )=\left \{ m_1,m_2,...,m_N \right \}^T \\ C_{X,X}=E\left\{ \left ( X-M_X \right )\left ( X-M_X \right ) ^T \right\} =\begin{bmatrix} c_{1,1} & ... & c_{1,N}\\ ... & ... & ...\\ c_{N,1} & ... &c_{N,N} \end{bmatrix}
MX=E(X)={m1,m2,...,mN}TCX,X=E{(X−MX)(X−MX)T}=⎣⎡c1,1...cN,1.........c1,N...cN,N⎦⎤
c
i
,
i
c_{i,i}
ci,i是
w
i
w_i
wi的方差:
c
i
,
i
=
E
{
(
w
i
−
M
X
,
i
)
(
w
i
−
M
X
,
i
)
T
}
=
E
{
∣
w
i
−
M
X
,
i
∣
2
}
c_{i,i}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_i-M_{X,i} \right ) ^T \right\} =E\left \{ \left | w_i-M_{X,i} \right |^2 \right \}
ci,i=E{(wi−MX,i)(wi−MX,i)T}=E{∣wi−MX,i∣2}
c
i
,
j
c_{i,j}
ci,j是
w
i
w_i
wi和
w
j
w_j
wj的协方差:
c
i
,
j
=
E
{
(
w
i
−
M
X
,
i
)
(
w
j
−
M
X
,
j
)
T
}
c_{i,j}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_j-M_{X,j}\right ) ^T \right\}
ci,j=E{(wi−MX,i)(wj−MX,j)T}
通过公式可以知道,自协方差矩阵也是Hermitian矩阵。自协方差矩阵也被称为方差矩阵,用符号
V
a
r
(
X
)
Var(X)
Var(X)表示。
注意,自协方差矩阵是N*N的方阵,理解协方差矩阵的关键就在于它的计算是不同维度之间的协方差,而不是不同样本之间。拿到一个样本矩阵,最先要明确的就是一行是一个样本还是一个维度。在这里一行是一个维度,一列是一个样本,这一点一定要记住!
X = { x 1 , x 2 , x 3 } x 1 = { 1 , 2 , 3 , 4 } T x 2 = { 3 , 2 , 1 , 4 } T x 3 = { 2 , 2 , 3 , 4 } T X = [ 1 3 2 2 2 2 3 1 3 4 4 4 ] X=\left \{ x_1,x_2,x_3 \right \} \\ x_1=\left \{ 1,2,3,4 \right \} ^T\\ x_2=\left \{ 3,2,1,4 \right \} ^T\\ x_3=\left \{ 2,2,3,4 \right \} ^T\\ X=\begin{bmatrix} 1 & 3 & 2 \\ 2 & 2 & 2 \\ 3 & 1 & 3 \\ 4 & 4 & 4 \\ \end{bmatrix} X={x1,x2,x3}x1={1,2,3,4}Tx2={3,2,1,4}Tx3={2,2,3,4}TX=⎣⎢⎢⎡123432142234⎦⎥⎥⎤
M
X
=
E
(
X
)
=
{
m
1
,
m
2
,
.
.
.
,
m
N
}
T
m
1
=
(
1
+
3
+
2
)
/
3
=
2
m
2
=
(
2
+
2
+
2
)
/
3
=
2
m
3
=
(
3
+
1
+
3
)
/
3
=
2.5
m
4
=
(
4
+
4
+
4
)
/
3
=
4
M
X
=
{
2
,
3
,
2.5
,
4
}
T
M_X=E\left ( X \right )=\left \{ m_1,m_2,...,m_N \right \} ^T \\ m_1=(1+3+2)/3=2\\ m_2=(2+2+2)/3=2\\ m_3=(3+1+3)/3=2.5\\ m_4=(4+4+4)/3=4\\ M_X=\left \{ 2,3,2.5,4 \right \} ^T
MX=E(X)={m1,m2,...,mN}Tm1=(1+3+2)/3=2m2=(2+2+2)/3=2m3=(3+1+3)/3=2.5m4=(4+4+4)/3=4MX={2,3,2.5,4}T
C
X
,
X
=
E
{
(
X
−
M
X
)
(
X
−
M
X
)
T
}
=
[
c
1
,
1
.
.
.
c
1
,
N
.
.
.
.
.
.
.
.
.
c
N
,
1
.
.
.
c
N
,
N
]
C_{X,X}=E\left\{ \left ( X-M_X \right )\left ( X-M_X \right ) ^T \right\} =\begin{bmatrix} c_{1,1} & ... & c_{1,N}\\ ... & ... & ...\\ c_{N,1} & ... &c_{N,N} \end{bmatrix}
CX,X=E{(X−MX)(X−MX)T}=⎣⎡c1,1...cN,1.........c1,N...cN,N⎦⎤
X
−
M
X
=
[
1
−
2
3
−
2
2
−
2
2
−
3
2
−
3
2
−
3
3
−
2.5
1
−
2.5
3
−
2.5
4
−
4
4
−
4
4
−
4
]
=
[
−
1
1
0
−
1
−
1
−
1
0.5
−
1.5
0.5
0
0
0
]
X-M_X =\begin{bmatrix} 1-2 & 3-2 & 2-2 \\ 2-3 & 2-3 & 2-3 \\ 3-2.5 & 1-2.5 & 3-2.5 \\ 4-4 & 4-4 & 4-4 \\ \end{bmatrix}= \begin{bmatrix} -1 & 1 & 0 \\ -1 & -1 & -1 \\ 0.5 & -1.5 & 0.5 \\ 0 & 0 & 0 \\ \end{bmatrix}
X−MX=⎣⎢⎢⎡1−22−33−2.54−43−22−31−2.54−42−22−33−2.54−4⎦⎥⎥⎤=⎣⎢⎢⎡−1−10.501−1−1.500−10.50⎦⎥⎥⎤
(
X
−
M
X
)
T
=
[
−
1
−
1
0.5
0
1
−
1
−
1.5
0
0
−
1
0.5
0
]
\left ( X-M_X \right ) ^T=\begin{bmatrix} -1 & -1 & 0.5 & 0\\ 1 & -1 & -1.5 & 0\\ 0 & -1 & 0.5 & 0\\ \end{bmatrix}
(X−MX)T=⎣⎡−110−1−1−10.5−1.50.5000⎦⎤
c
i
,
i
c_{i,i}
ci,i是
w
i
w_i
wi的方差:
c
i
,
i
=
E
{
(
w
i
−
M
X
,
i
)
(
w
i
−
M
X
,
i
)
T
}
=
E
{
∣
w
i
−
M
X
,
i
∣
2
}
w
1
−
M
X
,
1
=
[
1
−
2
3
−
2
2
−
2
]
T
=
[
−
1
1
0
]
T
(
x
1
−
M
X
,
1
)
(
x
1
−
M
X
,
1
)
T
=
(
−
1
)
∗
(
−
1
)
+
(
1
)
∗
(
1
)
+
0
∗
0
=
2
E
{
∣
w
1
−
M
X
,
1
∣
2
}
=
2
/
n
=
2
/
3
c_{i,i}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_i-M_{X,i} \right ) ^T \right\} =E\left \{ \left | w_i-M_{X,i} \right |^2 \right \} \\ w_1-M_{X,1} =\begin{bmatrix} 1-2 & 3-2 & 2-2 \\ \end{bmatrix}^T=\begin{bmatrix} -1 & 1 & 0 \\ \end{bmatrix}^T\\ \left ( x_1-M_{X,1} \right )\left ( x_1-M_{X,1} \right ) ^T=(-1)*(-1)+(1)*(1)+0*0=2\\ E\left \{ \left | w_1-M_{X,1}\right |^2 \right \} =2/n=2/3
ci,i=E{(wi−MX,i)(wi−MX,i)T}=E{∣wi−MX,i∣2}w1−MX,1=[1−23−22−2]T=[−110]T(x1−MX,1)(x1−MX,1)T=(−1)∗(−1)+(1)∗(1)+0∗0=2E{∣w1−MX,1∣2}=2/n=2/3
在matlab里面是除以样本数减1的差值,即n-1。
c
i
,
j
c_{i,j}
ci,j是
w
i
w_i
wi和
w
j
w_j
wj的协方差:
c
i
,
j
=
E
{
(
w
i
−
M
X
,
i
)
(
w
j
−
M
X
,
j
)
T
}
w
1
−
M
X
,
1
=
[
1
−
2
3
−
2
2
−
2
]
T
=
[
−
1
1
0
]
T
w
2
−
M
X
,
2
=
[
2
−
3
2
−
3
2
−
3
]
T
=
[
−
1
−
1
−
1
]
T
(
x
1
−
M
X
,
1
)
(
x
2
−
M
X
,
2
)
T
=
(
−
1
)
∗
(
−
1
)
+
(
1
)
∗
(
−
1
)
+
0
∗
(
−
1
)
=
0
E
{
(
w
i
−
M
X
,
i
)
(
w
j
−
M
X
,
j
)
T
}
=
0
/
n
=
0
c_{i,j}=E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_j-M_{X,j}\right ) ^T \right\} \\ w_1-M_{X,1} =\begin{bmatrix} 1-2 & 3-2 & 2-2 \\ \end{bmatrix}^T=\begin{bmatrix} -1 & 1 & 0 \\ \end{bmatrix}^T\\ w_2-M_{X,2} =\begin{bmatrix} 2-3 & 2-3 & 2-3 \\ \end{bmatrix}^T=\begin{bmatrix} -1 & -1 & -1 \\ \end{bmatrix}^T\\ \left ( x_1-M_{X,1} \right )\left ( x_2-M_{X,2} \right ) ^T=(-1)*(-1)+(1)*(-1)+0*(-1)=0\\ E\left\{ \left ( w_i-M_{X,i} \right )\left ( w_j-M_{X,j}\right ) ^T \right\}=0/n=0
ci,j=E{(wi−MX,i)(wj−MX,j)T}w1−MX,1=[1−23−22−2]T=[−110]Tw2−MX,2=[2−32−32−3]T=[−1−1−1]T(x1−MX,1)(x2−MX,2)T=(−1)∗(−1)+(1)∗(−1)+0∗(−1)=0E{(wi−MX,i)(wj−MX,j)T}=0/n=0
自相关矩阵定义为样本向量与自身的外积的数学期望,其实就是自协方差矩阵不减均值向量就好:
R
X
,
X
=
E
(
X
X
T
)
=
[
r
1
,
1
.
.
.
r
1
,
N
.
.
.
.
.
.
.
.
.
r
N
,
1
.
.
.
r
N
,
N
]
R_{X,X}=E\left ( XX^T \right ) =\begin{bmatrix} r_{1,1} & ... & r_{1,N}\\ ... & ... & ...\\ r_{N,1} & ... &r_{N,N} \end{bmatrix}
RX,X=E(XXT)=⎣⎡r1,1...rN,1.........r1,N...rN,N⎦⎤
r
i
,
i
r_{i,i}
ri,i是
w
i
w_i
wi的自相关系数:
r
i
,
i
=
E
{
w
i
w
i
T
}
=
E
{
∣
w
i
∣
2
}
r_{i,i}=E\left\{ w_i w_i ^T \right\}=E\left \{ \left | w_i \right |^2 \right \}
ri,i=E{wiwiT}=E{∣wi∣2}
r
i
,
j
r_{i,j}
ri,j是
w
i
w_i
wi和
w
j
w_j
wj的互相关系数:
r
i
,
j
=
E
{
w
i
w
j
T
}
r_{i,j}=E\left \{ w_iw_j^T \right \}
ri,j=E{wiwjT}
自相关矩阵是复共轭对称的,即为Hermitian矩阵。
这里就不举例了,计算方法都相似~
自相关矩阵与自协方差矩阵存在如下关系:
C
X
,
X
=
R
X
,
X
−
M
X
M
X
T
C_{X,X}=R_{X,X}-M_XM_X^T
CX,X=RX,X−MXMXT
考虑又一个数据集,样本数量无所谓,但是特征数一定要是N:
Y
=
{
y
1
,
y
2
,
.
.
.
,
y
n
}
T
Y=\left \{ y_1,y_2,...,y_n \right \}^T
Y={y1,y2,...,yn}T
通过自协方差矩阵的推广,可以得到样本向量
X
X
X与
Y
Y
Y的互协方差矩阵,定义为:
M
X
=
E
(
X
)
M
Y
=
E
(
Y
)
C
X
,
Y
=
E
{
(
X
−
M
X
)
(
Y
−
M
Y
)
T
}
=
[
c
w
x
1
,
w
y
1
.
.
.
c
w
x
1
,
w
y
N
.
.
.
.
.
.
.
.
.
c
w
x
N
,
w
y
1
.
.
.
c
w
x
N
,
w
y
N
]
M_X=E\left ( X \right ) \\ M_Y=E\left ( Y \right ) \\ C_{X,Y}=E\left\{ \left ( X-M_X \right )\left ( Y-M_Y \right ) ^T \right\} =\begin{bmatrix} c_{w_{x1},w_{y1}} & ... & c_{w_{x1},w_{yN}}\\ ... & ... & ...\\ c_{w_{xN},w_{y1}} & ... &c_{w_{xN},w_{yN}} \end{bmatrix}
MX=E(X)MY=E(Y)CX,Y=E{(X−MX)(Y−MY)T}=⎣⎡cwx1,wy1...cwxN,wy1.........cwx1,wyN...cwxN,wyN⎦⎤
互协方差表示两个向量对应元素减去各自期望,再相乘再做期望。
( X − M X ) , ( Y − M Y ) T \left ( X-M_X \right ),\left ( Y-M_Y \right ) ^T (X−MX),(Y−MY)T表示两个零期望的随机序列。
通过自相关矩阵的推广,可以得到样本向量
X
X
X与
Y
Y
Y的互相关矩阵,定义为:
R
X
,
Y
=
E
(
X
Y
T
)
=
[
r
w
x
1
,
w
y
1
.
.
.
r
w
x
1
,
w
y
N
.
.
.
.
.
.
.
.
.
r
w
x
N
,
w
y
1
.
.
.
r
w
x
N
,
w
y
N
]
R_{X,Y}=E\left ( XY^T \right ) =\begin{bmatrix} r_{w_{x1},w_{y1}} & ... & r_{w_{x1},w_{yN}}\\ ... & ... & ...\\ r_{w_{xN},w_{y1}} & ... &r_{w_{xN},w_{yN}} \end{bmatrix}
RX,Y=E(XYT)=⎣⎡rwx1,wy1...rwxN,wy1.........rwx1,wyN...rwxN,wyN⎦⎤
互相关表示两个向量对应元素相乘的期望。
互相关矩阵与互协方差矩阵存在如下关系:
C
X
,
Y
=
R
X
,
Y
−
M
X
M
Y
T
C_{X,Y}=R_{X,Y}-M_XM_Y^T
CX,Y=RX,Y−MXMYT
当样本向量
X
X
X与
Y
Y
Y的维数不同时,他们的互相关矩阵和互协方差矩阵为非方阵,当他们的维数相同时,他们的互相关矩阵与互协方差矩阵为方阵,但仍不为复共轭对称矩阵。
如果 X X X与 Y Y Y这两个序列的期望 E ( X ) E(X) E(X)与 E ( Y ) E(Y) E(Y)为0,那么互相关矩阵和互协方差矩阵是一样的。
协方差矩阵与互协方差矩阵由如下的性质:
(1)自协方差矩阵是复共轭转置对称的;
(2)线性组合向量
A
x
+
b
Ax+b
Ax+b的自协方差矩阵
C
A
x
+
b
=
C
A
x
=
A
C
x
A
T
C_{Ax+b}=C_{Ax}=AC_xA^T
CAx+b=CAx=ACxAT;
(3)互协方差矩阵不是复共轭转置对称的,但是满足
C
x
,
y
=
C
y
,
x
T
C_{x,y}=C_{y,x}^T
Cx,y=Cy,xT;
(4)
C
x
1
+
x
2
,
y
=
C
x
1
,
y
+
C
x
2
,
y
C_{x_1+x_2,y}=C_{x_1,y}+C_{x_2,y}
Cx1+x2,y=Cx1,y+Cx2,y;
(5)若随机向量
X
X
X与
Y
Y
Y具有相同的维数,则
C
x
+
y
=
C
x
+
C
x
,
y
+
C
y
,
x
+
C
y
C_{x+y}=C_x+C_{x,y}+C_{y,x}+C_y
Cx+y=Cx+Cx,y+Cy,x+Cy;
(6)
C
A
x
,
B
y
=
A
C
x
,
y
B
T
C_{Ax,By}=AC_{x,y}B^T
CAx,By=ACx,yBT;
自协方差矩阵和互协方差矩阵主要用于描述矩阵各行,列向量之间的相关程度,但由于其元素是自协方差矩阵,互协方差函数的绝对大小,有的时候在衡量相关度的时候并不准确,因而需要引入相关系数的概念,定义为:
ρ
x
y
⇒
d
e
f
c
x
,
y
σ
x
σ
y
\rho_{xy}\overset{def}{\Rightarrow}\frac{c_{x,y}}{\sigma_x\sigma_y}
ρxy⇒defσxσycx,y
其中, 是随机变量
X
X
X与
Y
Y
Y的互协方差,
σ
x
2
\sigma_x^2
σx2与
σ
y
2
\sigma_y^2
σy2则表示
X
X
X与
Y
Y
Y的方差。由Caucht-Schwartz不等式可以知道
0
≤
∣
ρ
x
y
∣
≤
1
0\le\left|\rho_{xy}\right|\le1
0≤∣ρxy∣≤1。相关系数
ρ
x
y
\rho_{xy}
ρxy给出了随机向量
X
X
X与
Y
Y
Y的相关程度,接近于0说明两个向量的相似度越小,越接近于1说明两个向量的相似度越大。
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que