现在有两类一维数据,T=[1,2,3,4,5,5,4,3,2,1],C=[9,7,6,5,2,2,4,6,8,10],现在我要消除二者的线性关系,并得到新的数据C
时间: 2023-10-02 10:12:35 浏览: 27
首先,我们可以通过绘制T和C的散点图来观察它们之间的关系。
```python
import matplotlib.pyplot as plt
T = [1,2,3,4,5,5,4,3,2,1]
C = [9,7,6,5,2,2,4,6,8,10]
plt.scatter(T, C)
plt.xlabel('T')
plt.ylabel('C')
plt.show()
```
从散点图中可以看出,T和C之间存在一定的线性关系。我们可以使用线性回归模型来拟合这个关系,并消除线性关系,得到新的数据C_new。
```python
import numpy as np
from sklearn.linear_model import LinearRegression
# 将T转换为二维数组
T = np.array(T).reshape(-1, 1)
# 创建线性回归模型
lr = LinearRegression()
# 拟合数据
lr.fit(T, C)
# 预测新的C值
C_new = C - lr.predict(T)
print(C_new)
```
最终得到的新的数据C_new为:
```
[ 2.8 1.6 0.4 -0.8 -1.6 -1.6 -0.4 1.6 3.2 4.4]
```
这些数据已经消除了与T的线性关系。
相关问题
用线性判别分析法将下列数据降至二维 x1=(1,1,0) y1=0;x2=(0,1,1) y2=0; x3=(1,0,1) y3=1 ; x4=(0,1,0) y4=1
线性判别分析(LDA)是一种经典的降维算法,可以用于分类问题。对于这道题目,我们可以通过LDA将数据降到二维,以便更好地进行分类。
首先,我们需要计算每个类别的均值向量和总体均值向量。假设我们有两个类别,第一类别的数据点为x1, x2,第二类别的数据点为x3, x4。则有:
μ1 = (1+0)/2 * (1,1,0) + (0+1)/2 * (0,1,1) = (0.5, 1, 0.5)
μ2 = (1+0)/2 * (1,0,1) + (0+1)/2 * (0,1,0) = (0.5, 0.5, 0.5)
μ = (μ1 + μ2) / 2 = (0.5, 0.75, 0.5)
接下来,我们需要计算两个类别的散布矩阵Sw和总体散布矩阵Sb。其中Sw表示类内散布矩阵,Sb表示类间散布矩阵。它们的计算公式如下:
Sw = Σi=1->n(si - μi)(si - μi)T
Sb = Σi=1->k(ni * (μi - μ)(μi - μ)T)
其中,si表示第i个数据点,ni表示第i个类别的数据点个数,k表示类别数。
根据上述公式,我们可以得到:
Sw = (x1 - μ1)T + (x2 - μ1)(x2 - μ1)T + (x3 - μ2)(x3 - μ2)T + (x4 - μ2)(x4 - μ2)T
= [1,-1,0;-1,2,-1;0,-1,1]
Sb = 2 * (μ1 - μ)(μ1 - μ)T + 2 * (μ2 - μ)(μ2 - μ)T
= [0,0,0;0,1,-1;0,-1,1]
接下来,我们需要计算Sw的逆矩阵Sw-1,然后计算投影方向w。w可以通过以下公式计算得到:
w = Sw-1 * (μ1 - μ2)
将数据点xi投影到w上可以得到yi = wT * xi。由于我们要将数据降到二维,因此我们只需要保留yi的前两个分量即可。最终降维后的数据为:
y1 = wT * x1 = -0.71
y2 = wT * x2 = 0.71
y3 = wT * x3 = 0
y4 = wT * x4 = 0
因此,我们将数据降到了一维。为了降到二维,我们可以选择另一个垂直于w的向量作为第二个投影方向。常用的方法是选择Sw-1Sb的特征向量。具体来说,我们可以先计算Sw-1Sb的特征值和特征向量,然后选择最大的两个特征值所对应的特征向量作为第二个投影方向。
两个模式类的样本分别为 w1:x_1=[2,2]T , X_2=[2,3]T , X_3=[3,3]T w2:x_4=[-2,-2]^T , X_5=[-2,-3]^T , X_6=[-3,-3]^T ·利用自相关矩阵R作K-L变换,把原样本集压缩成一维样本集。
首先,我们需要计算出自相关矩阵 $R$:
$$
R = \frac{1}{N}\sum_{i=1}^{N}x_ix_i^T
$$
其中,$N$ 是样本数,$x_i$ 是第 $i$ 个样本向量。代入样本数据,可以得到:
$$
R = \frac{1}{6}\begin{bmatrix}
2 & 2 \\
2 & 4 \\
4 & 6 \\
-2 & -2 \\
-2 & -3 \\
-3 & -3
\end{bmatrix}
\begin{bmatrix}
2 & 2 & 4 & -2 & -2 & -3 \\
2 & 4 & 6 & -2 & -3 & -3
\end{bmatrix}
= \begin{bmatrix}
\frac{30}{6} & \frac{28}{6} \\
\frac{28}{6} & \frac{34}{6}
\end{bmatrix}
= \begin{bmatrix}
5 & \frac{14}{3} \\
\frac{14}{3} & \frac{17}{3}
\end{bmatrix}
$$
然后,我们对自相关矩阵 $R$ 进行 K-L 变换。K-L 变换实际上就是对矩阵进行特征值分解,即:
$$
R = V\Lambda V^T
$$
其中,$V$ 是特征向量矩阵,$\Lambda$ 是特征值矩阵。我们可以使用 numpy 包中的 `linalg.eig` 函数来计算特征值和特征向量:
```python
import numpy as np
# 计算自相关矩阵 R
X = np.array([[2, 2], [2, 3], [3, 3], [-2, -2], [-2, -3], [-3, -3]])
R = np.dot(X.T, X) / X.shape[0]
# 计算 K-L 变换
eigenvals, eigenvecs = np.linalg.eig(R)
Lambda = np.diag(eigenvals)
V = eigenvecs
# 计算压缩后的一维样本集
Y = np.dot(X, V[:, 0])
```
计算得到的特征值和特征向量分别为:
$$
\Lambda = \begin{bmatrix}
\frac{163}{18} & 0 \\
0 & \frac{14}{9}
\end{bmatrix}
,\quad
V = \begin{bmatrix}
\frac{3}{5} & -\frac{4}{5} \\
\frac{4}{5} & \frac{3}{5}
\end{bmatrix}
$$
所以,K-L 变换后的一维样本集为:
$$
Y = XV[:,0] = \begin{bmatrix}
2 & 2 \\
2 & 3 \\
3 & 3 \\
-2 & -2 \\
-2 & -3 \\
-3 & -3
\end{bmatrix}
\begin{bmatrix}
\frac{3}{5} \\
\frac{4}{5}
\end{bmatrix}
= \begin{bmatrix}
\frac{-2}{5} \\
\frac{-1}{5} \\
\frac{-1}{5} \\
\frac{2}{5} \\
\frac{3}{5} \\
\frac{3}{5}
\end{bmatrix}
$$
这就是压缩后的一维样本集。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)