对乳腺癌数据集进行PCA降维,并可视化的代码
时间: 2024-05-01 09:19:02 浏览: 121
乳腺癌精准医疗大数据的可视化分析.pdf
5星 · 资源好评率100%
首先需要导入数据集和需要的库:
```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()
```
这样就可以得到一个二维的可视化结果,表示乳腺癌数据集的降维情况。
阅读全文