利用python代码下载鸢尾花数据集并进行降维,将原来4维的数据降为2维,并展示降维后的样本点分布
时间: 2024-10-18 19:19:12 浏览: 38
基于jupyter notebook的python编程—–机器学习中的线性分类器及相应判定方法(鸢尾花数据集的分类可视化)
5星 · 资源好评率100%
在Python中,我们可以使用scikit-learn库来下载鸢尾花数据集,然后通过主成分分析(PCA)进行降维。以下是一个示例步骤:
首先,我们需要安装所需的库,如果没有,可以使用pip进行安装:
```bash
pip install pandas scikit-learn matplotlib
```
接着,导入所需模块并加载鸢尾花数据集:
```python
import pandas as pd
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
# 加载鸢尾花数据集
iris = load_iris()
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
```
接下来,我们将数据分为特征和目标变量,对数值型特征进行标准化处理:
```python
X = df.iloc[:, :-1] # 特征
y = df.iloc[:, -1] # 目标变量
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
```
然后,应用PCA进行降维:
```python
from sklearn.decomposition import PCA
pca = PCA(n_components=2) # 降维到2维
X_pca = pca.fit_transform(X_scaled)
```
最后,绘制降维后的样本点分布:
```python
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.title('Iris Dataset (PCA Reduced to 2D)')
plt.show()
```
阅读全文