pca降维python代码可视化
时间: 2023-08-30 13:05:24 浏览: 115
以下是一个简单的PCA降维的Python代码和可视化:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
# 加载iris数据集
iris = load_iris()
X = iris.data
y = iris.target
# 进行PCA降维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 可视化降维后的数据
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.show()
```
在这个例子中,我们加载了Iris数据集,进行了PCA降维,并将降维后的数据用散点图可视化。降维后的数据只有两个主成分,因此我们可以在二维平面上可视化它们。 在这个例子中,我们还将数据点按其真实标签(花的种类)进行了着色。
相关问题
pca降维python案例
PCA(Principal Component Analysis,主成分分析)是一种常用的数据预处理技术,用于降低高维数据的维度并保持关键信息。在Python中,我们可以使用scikit-learn库来进行PCA操作。下面是一个简单的PCA降维案例:
```python
# 导入所需库
import numpy as np
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# 创建一个模拟的高维数据集(假设我们有100个样本,每个样本有100个特征)
X = np.random.rand(100, 100)
# 实例化PCA对象,设置n_components参数为需要保留的主要成分数量,比如前95%
pca = PCA(n_components=0.95)
# 进行降维
X_pca = pca.fit_transform(X)
# 打印降维后的特征数量
print("Original dimensions:", X.shape)
print("Reduced dimensions:", X_pca.shape)
# 可视化原数据和降维后的数据分布
plt.scatter(X_pca[:, 0], X_pca[:, 1]) # 第一和第二主成分作为x和y轴
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.title('PCA Visualization')
plt.show()
对乳腺癌数据集进行PCA降维,并可视化的代码
首先需要导入数据集和需要的库:
```python
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# 读取数据集
data = pd.read_csv('breast_cancer.csv')
# 去除无用列
data.drop(['id', 'Unnamed: 32'], axis=1, inplace=True)
# 将M和B转换成数字
data.diagnosis = data.diagnosis.map({'M':1, 'B':0})
# 分离标签和特征
X = data.iloc[:, 1:].values
y = data.iloc[:, 0].values
```
接着进行特征缩放,将数据集进行标准化:
```python
scaler = StandardScaler()
X = scaler.fit_transform(X)
```
然后进行PCA降维:
```python
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
```
最后进行可视化:
```python
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.show()
```
完整代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# 读取数据集
data = pd.read_csv('breast_cancer.csv')
# 去除无用列
data.drop(['id', 'Unnamed: 32'], axis=1, inplace=True)
# 将M和B转换成数字
data.diagnosis = data.diagnosis.map({'M':1, 'B':0})
# 分离标签和特征
X = data.iloc[:, 1:].values
y = data.iloc[:, 0].values
# 特征缩放
scaler = StandardScaler()
X = scaler.fit_transform(X)
# PCA降维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 可视化
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.show()
```
这样就可以得到一个二维的可视化结果,表示乳腺癌数据集的降维情况。
阅读全文