-
1.导入numpy,pandas,matplotlib等必要的库。
2.加载数据集:这里使用Scikit-learn自带的digits手写数字数据集。该数据集包含1797个样本,每个样本由8x8像素组成,表示一个手写数字,然后可以加载并划分数据。
3.在经过特征标准化处理后,再对特征变量进行标准化处理。
4.执行PCA降维操作:接下来,我们执行PCA操作,并将原始数据从64维降至2维。
5.可视化低维度表示结果:最后,我们可以对新的低维度表示进行可视化:这会生成一个散点图,其中每个点表示一个样本,颜色表示其所属的类别。
6.训练分类器:如果需要使用PCA降维后的数据进行分类器训练,则可以选择一个分类器模型,并使用X_train_pca和y_train来训练模型。
7.最后,我们可以在测试集上评估模型性能:以上就是利用PCA来简化数据的实验过程。通过该实验,我们可以更好地理解PCA在数据降维中的作用和应用。 -
import numpy as np
import pandas as pd
from sklearn.decomposition import PCA
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
df = pd.read_csv(url, header=None)
X = df.iloc[:, :-1].values # 特征变量矩阵
y = df.iloc[:, -1].values # 目标变量矩阵
from sklearn.preprocessing import StandardScalerimport numpy as np
import pandas as pd
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
pca = PCA(n_components=2)
X_train_pca = pca.fit_transform(X_train_scaled)
X_test_pca = pca.transform(X_test_scaled)
plt.scatter(X_train_pca[:, 0], X_train_pca[:, 1], c=y_train, cmap='viridis')
plt.colorbar()
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.show()
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(random_state=42)
clf.fit(X_train_pca, y_train)
print(clf.score(X_test_pca, y_test))
11-23
4245
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-30
642
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)