主成分分析法求综合评价python代码
时间: 2023-05-03 21:00:24 浏览: 100
主成分分析法是一种常用的数据降维技术。在Python中,可以使用sklearn库中的PCA类进行主成分分析。以下是一个简单的示例代码:
```
from sklearn.decomposition import PCA
import numpy as np
# 构造数据集
X = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]
])
# 创建PCA对象
pca = PCA()
# 训练模型
pca.fit(X)
# 打印主成分方差占比和累计方差占比
print(pca.explained_variance_ratio_)
print(pca.explained_variance_ratio_.cumsum())
# 转换数据集
X_pca = pca.transform(X)
# 打印转换后的数据
print(X_pca)
```
该代码中,我们首先使用numpy库创建了一个4行3列的数据集X,然后创建了一个PCA对象pca,并训练了模型。接着,我们通过explained_variance_ratio_属性打印了主成分方差占比和累计方差占比,并使用transform方法将原始数据集X转换为主成分表示的结果X_pca。最后,我们打印了X_pca的值。
相关问题
主成分分析法应用实例及python代码
主成分分析(PCA)是一种常用的数据分析方法,用于降低数据维度、发现数据之间的关系和提取主要特征等。下面以一个实例来说明PCA的应用过程,并给出Python代码。
实例:对鸢尾花数据进行PCA分析
我们使用经典的鸢尾花数据集来进行PCA分析。该数据集包含了3个不同品种的鸢尾花,每个品种50个样本,每个样本有4个特征值:萼片长度、萼片宽度、花瓣长度和花瓣宽度。我们将使用PCA方法,将这4个特征值降到2个维度,并可视化数据集。
1. 导入数据集和模块
首先,我们需要导入鸢尾花数据集和相关模块。可以使用scikit-learn库中的load_iris函数来读取数据集,使用matplotlib库来可视化数据集,使用sklearn.decomposition中的PCA类来进行PCA分析。
```python
# 导入数据集和模块
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
# 读取鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
```
2. 进行PCA分析
接下来,我们将使用PCA类进行PCA分析。我们将降维到2个维度,这意味着我们将把4个特征值压缩成2个新特征值。我们还将使用fit_transform函数来拟合数据并进行降维操作。
```python
# 进行PCA分析
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
```
3. 可视化数据集
最后,我们将使用matplotlib库来可视化数据集。我们将使用散点图来显示鸢尾花数据集的分布情况,并使用不同颜色和形状来表示不同品种的鸢尾花。我们还将使用PCA分析生成的新特征值来绘制新的坐标轴。
```python
# 可视化数据集
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.xlabel('PCA1')
plt.ylabel('PCA2')
plt.title('Iris Dataset')
plt.show()
```
完整代码如下:
```python
# 导入数据集和模块
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
# 读取鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 进行PCA分析
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 可视化数据集
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.xlabel('PCA1')
plt.ylabel('PCA2')
plt.title('Iris Dataset')
plt.show()
```
运行以上代码,可得到如下的可视化结果:
![Iris Dataset PCA](https://cdn.jsdelivr.net/gh/feather321/image-hosting/images/Iris%20Dataset%20PCA.png)
从图中可以看出,使用PCA方法将鸢尾花数据集降到2个维度后,数据集的品种之间的分布情况更加明显,不同品种的鸢尾花更加容易区分。这证明了PCA方法在降低数据维度、发现数据之间的关系和提取主要特征等方面的有效性。
主成分分析法python代码
好的,以下是主成分分析法的 Python 代码:
```python
import numpy as np
from sklearn.decomposition import PCA
# 创建一个数据集,有 4 个变量,10 个样本
X = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24], [25, 26, 27, 28], [29, 30, 31, 32], [33, 34, 35, 36], [37, 38, 39, 40]])
# 创建 PCA 模型,n_components=2 表示要降维到 2 维
pca = PCA(n_components=2)
# 使用 PCA 模型拟合数据
pca.fit(X)
# 得到降维后的数据
X_new = pca.transform(X)
# 打印降维后的数据,即主成分分析后的结果
print(X_new)
```
运行代码后会得到一个 10x2 的矩阵,其中每行代表一个样本在新的两个主成分上的投影结果。