import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

data = pd.read_csv(r"C:\Users\28747\Desktop\pca\iris.csv")
print(data)
data = (np.array(data))
pca_data = data
(r, c) = np.shape(data)
new_data = data
meanval = np.mean(data, axis=0)  # 计算原始数据中每一列的均值,axis=0按列取均值
for i in range(0, r):
    for j in range(0, c):
        new_data[i][j] -= meanval[j]
data = np.cov(data, rowvar=False)  # 计算协方差矩阵,rowvar=0每一列为一个特征。
vals, vecs = np.linalg.eig(data)  # 特征值:vals,特征向量:vecs
index = np.argsort(vals)  # 将特征值按从大到小排序,index保留的是对应原featValue中的下标
index = np.flipud(index)
new_dimension = int(input("new dimension:"))
n_featVec = vecs[index, 0:new_dimension]  # 注意上面矩阵的列向量才是特征向量
lowData = np.dot(new_data, n_featVec)
print(lowData)
print("##################################################")
from sklearn import decomposition

pca = decomposition.PCA()
pca.fit(pca_data)
pca.n_components = new_dimension
X_reduced = pca.fit_transform(pca_data)
print(X_reduced)
if new_dimension == 2:
    plt.scatter(lowData[:, 0], lowData[:, 1],label="my pca")
    plt.title("compare")
    plt.xlabel("first component")
    plt.ylabel("second component")
    plt.scatter(X_reduced[:, 0], X_reduced[:, 1],label="sklearn's pca")
    plt.xlabel("first component")
    plt.ylabel("second component")
    plt.legend(loc="lower left")
    plt.show()
150    4  setosa  versicolor  virginica
0    5.1  3.5     1.4         0.2          0
1    4.9  3.0     1.4         0.2          0
2    4.7  3.2     1.3         0.2          0
3    4.6  3.1     1.5         0.2          0
4    5.0  3.6     1.4         0.2          0
..   ...  ...     ...         ...        ...
145  6.7  3.0     5.2         2.3          2
146  6.3  2.5     5.0         1.9          2
147  6.5  3.0     5.2         2.0          2
148  6.2  3.4     5.4         2.3          2
149  5.9  3.0     5.1         1.8          2

[150 rows x 5 columns]
new dimension:2
[[ 2.86541481e+00  2.96294592e-01]
 [ 2.89204667e+00 -1.83785089e-01]
 [ 3.05498018e+00 -1.74826556e-01]
 [ 2.92022951e+00 -3.31581792e-01]
 [ 2.90685193e+00  2.95916920e-01]
 [ 2.48985229e+00  7.33821200e-01]
 [ 2.99073479e+00 -1.23337756e-01]
 [ 2.81072341e+00  1.49253233e-01]
 [ 3.05102452e+00 -5.96522880e-01]
 [ 2.85367989e+00 -1.18129504e-01]
 [ 2.70121731e+00  6.30088258e-01]
 [ 2.79746912e+00  1.83420106e-03]
 [ 2.95910703e+00 -2.45743109e-01]
 [ 3.36629732e+00 -5.60864364e-01]
 [ 2.83188903e+00  1.14006491e+00]
 [ 2.58993648e+00  1.30218121e+00]
 [ 2.81008938e+00  7.72676709e-01]
 [ 2.83175695e+00  2.89400035e-01]
 [ 2.41526804e+00  8.78798583e-01]
 [ 2.77580155e+00  4.85110874e-01]
 [ 2.51699488e+00  4.05235787e-01]
 [ 2.73410906e+00  4.09741412e-01]
 [ 3.36069900e+00  5.93621201e-02]
 [ 2.50819415e+00  1.09519480e-01]
 [ 2.55729130e+00 -2.73074303e-02]
 [ 2.69852563e+00 -1.34360266e-01]
 [ 2.66334841e+00  1.25750242e-01]
 [ 2.75195304e+00  3.55433292e-01]
 [ 2.82397769e+00  2.96672264e-01]
 [ 2.81480236e+00 -2.03968187e-01]
 [ 2.77336524e+00 -2.03590515e-01]
 [ 2.60979770e+00  4.10874428e-01]
 [ 2.83381866e+00  7.73177282e-01]
 [ 2.78804721e+00  1.05102924e+00]
 [ 2.82002202e+00 -1.25024061e-01]
 [ 3.03483197e+00  4.14450531e-02]
 [ 2.81186411e+00  5.81418778e-01]
 [ 2.97391229e+00  2.33958900e-01]
 [ 3.13911842e+00 -5.18334098e-01]
 [ 2.77732091e+00  2.18105810e-01]
 [ 2.94521872e+00  2.30261335e-01]
 [ 3.01581568e+00 -9.35700415e-01]
 [ 3.15518767e+00 -3.81384287e-01]
 [ 2.60406731e+00  1.80436033e-01]
 [ 2.42190660e+00  4.39360809e-01]
 [ 2.89179130e+00 -2.59532223e-01]
 [ 2.72940014e+00  4.82291554e-01]
 [ 3.00832340e+00 -2.53393010e-01]
 [ 2.73461980e+00  5.61235680e-01]
 [ 2.88274805e+00  9.04922043e-02]
 [-1.19659125e+00  7.88745875e-01]
 [-8.69715600e-01  3.88163609e-01]
 [-1.36499979e+00  6.25096081e-01]
 [-1.73792690e-01 -7.85425235e-01]
 [-1.01531587e+00  1.73402688e-01]
 [-6.00720918e-01 -3.53914939e-01]
 [-1.02205489e+00  3.61463626e-01]
 [ 6.96045401e-01 -1.04138498e+00]
 [-9.73368014e-01  3.24519284e-01]
 [ 4.95470589e-03 -7.15264025e-01]
 [ 4.70385858e-01 -1.26585978e+00]
 [-4.78594559e-01 -6.39074565e-02]
 [-2.47866201e-01 -4.88953584e-01]
 [-9.20072678e-01 -3.63520361e-02]
 [ 1.61249662e-01 -2.66867717e-01]
 [-8.64240572e-01  5.42854869e-01]
 [-6.18564897e-01 -2.99606819e-01]
 [-2.20947357e-01 -2.93998088e-01]
 [-8.83256867e-01 -4.34290599e-01]
 [-4.37509356e-02 -5.56119856e-01]
 [-1.04385454e+00 -5.92457893e-03]
 [-3.34034528e-01 -2.99352449e-02]
 [-1.21279258e+00 -1.98868814e-01]
 [-8.60791579e-01 -9.10378278e-02]
 [-6.66385205e-01  2.15955761e-01]
 [-8.38872704e-01  4.05527387e-01]
 [-1.24198404e+00  3.67427222e-01]
 [-1.45360442e+00  3.95413031e-01]
 [-7.60209499e-01 -9.26714160e-02]
 [ 2.84776151e-01 -3.73042308e-01]
 [ 6.16762064e-02 -6.83733462e-01]
 [ 1.75393342e-01 -6.67125028e-01]
 [-1.28144535e-01 -2.88359448e-01]
 [-1.29029225e+00 -2.94799046e-01]
 [-5.51759908e-01 -4.37311974e-01]
 [-7.53694234e-01  2.42808554e-01]
 [-1.13807625e+00  5.06818681e-01]
 [-7.61249738e-01 -2.73460126e-01]
 [-2.31012079e-01 -2.46962197e-01]
 [-1.57723439e-01 -6.48475424e-01]
 [-4.36268045e-01 -6.11961470e-01]
 [-8.31978779e-01  4.18367464e-02]
 [-2.16238434e-01 -3.66548230e-01]
 [ 6.54608281e-01 -1.04100731e+00]
 [-3.35175229e-01 -4.62100791e-01]
 [-3.10815984e-01 -1.80928940e-01]
 [-3.52508472e-01 -2.56298403e-01]
 [-5.99580217e-01  7.82506064e-02]
 [ 8.43794996e-01 -8.12957848e-01]
 [-2.80483824e-01 -3.15059431e-01]
 [-2.72315063e+00 -3.38981292e-02]
 [-1.68186528e+00 -6.60218212e-01]
 [-2.79978374e+00  3.48789877e-01]
 [-2.19944700e+00 -2.20680344e-01]
 [-2.55296736e+00 -6.15062662e-02]
 [-3.52721112e+00  6.25055623e-01]
 [-8.49640714e-01 -1.34476884e+00]
 [-3.09388686e+00  3.99848288e-01]
 [-2.52531403e+00 -2.38597411e-01]
 [-3.07972847e+00  7.81485905e-01]
 [-1.90916747e+00  1.57229798e-01]
 [-2.04239879e+00 -2.66530503e-01]
 [-2.37933916e+00  1.81087654e-01]
 [-1.61813062e+00 -8.63201280e-01]
 [-1.84211996e+00 -6.26216091e-01]
 [-2.13685711e+00  4.82657961e-02]
 [-2.17815809e+00 -4.78640736e-03]
 [-3.61005375e+00  1.22509901e+00]
 [-3.90024566e+00  3.77077834e-01]
 [-1.57415267e+00 -8.27595480e-01]
 [-2.62410667e+00  3.53673174e-01]
 [-1.48056498e+00 -7.16915264e-01]
 [-3.62308428e+00  5.54139069e-01]
 [-1.65510134e+00 -2.89633015e-01]
 [-2.48195134e+00  2.98232038e-01]
 [-2.79620267e+00  5.65562058e-01]
 [-1.53360494e+00 -2.80296810e-01]
 [-1.56419247e+00 -2.21913454e-01]
 [-2.34185771e+00 -2.40986343e-01]
 [-2.58483765e+00  4.61829115e-01]
 [-3.00886329e+00  4.12759157e-01]
 [-3.36936519e+00  1.40573491e+00]
 [-2.37551557e+00 -2.47880900e-01]
 [-1.70621167e+00 -2.19902194e-01]
 [-2.02211444e+00 -5.36231987e-01]
 [-3.22763297e+00  7.28688472e-01]
 [-2.36122105e+00  8.03268415e-02]
 [-2.13672097e+00 -5.16407917e-03]
 [-1.45073071e+00 -2.81052154e-01]
 [-2.32464775e+00  3.28129013e-01]
 [-2.51893490e+00  1.50312434e-01]
 [-2.15178566e+00  3.43481531e-01]
 [-1.68186528e+00 -6.60218212e-01]
 [-2.75082273e+00  2.65392842e-01]
 [-2.61658278e+00  2.70653811e-01]
 [-2.17307457e+00  1.27587594e-01]
 [-1.78488772e+00 -4.43191260e-01]
 [-2.00529599e+00  1.05661102e-02]
 [-2.13404214e+00  3.77965754e-02]
 [-1.65750603e+00 -3.79046362e-01]]
##################################################
[[-2.86541481e+00  2.96294592e-01]
 [-2.89204667e+00 -1.83785089e-01]
 [-3.05498018e+00 -1.74826556e-01]
 [-2.92022951e+00 -3.31581792e-01]
 [-2.90685193e+00  2.95916920e-01]
 [-2.48985229e+00  7.33821200e-01]
 [-2.99073479e+00 -1.23337756e-01]
 [-2.81072341e+00  1.49253233e-01]
 [-3.05102452e+00 -5.96522880e-01]
 [-2.85367989e+00 -1.18129504e-01]
 [-2.70121731e+00  6.30088258e-01]
 [-2.79746912e+00  1.83420106e-03]
 [-2.95910703e+00 -2.45743109e-01]
 [-3.36629732e+00 -5.60864364e-01]
 [-2.83188903e+00  1.14006491e+00]
 [-2.58993648e+00  1.30218121e+00]
 [-2.81008938e+00  7.72676709e-01]
 [-2.83175695e+00  2.89400035e-01]
 [-2.41526804e+00  8.78798583e-01]
 [-2.77580155e+00  4.85110874e-01]
 [-2.51699488e+00  4.05235787e-01]
 [-2.73410906e+00  4.09741412e-01]
 [-3.36069900e+00  5.93621201e-02]
 [-2.50819415e+00  1.09519480e-01]
 [-2.55729130e+00 -2.73074303e-02]
 [-2.69852563e+00 -1.34360266e-01]
 [-2.66334841e+00  1.25750242e-01]
 [-2.75195304e+00  3.55433292e-01]
 [-2.82397769e+00  2.96672264e-01]
 [-2.81480236e+00 -2.03968187e-01]
 [-2.77336524e+00 -2.03590515e-01]
 [-2.60979770e+00  4.10874428e-01]
 [-2.83381866e+00  7.73177282e-01]
 [-2.78804721e+00  1.05102924e+00]
 [-2.82002202e+00 -1.25024061e-01]
 [-3.03483197e+00  4.14450531e-02]
 [-2.81186411e+00  5.81418778e-01]
 [-2.97391229e+00  2.33958900e-01]
 [-3.13911842e+00 -5.18334098e-01]
 [-2.77732091e+00  2.18105810e-01]
 [-2.94521872e+00  2.30261335e-01]
 [-3.01581568e+00 -9.35700415e-01]
 [-3.15518767e+00 -3.81384287e-01]
 [-2.60406731e+00  1.80436033e-01]
 [-2.42190660e+00  4.39360809e-01]
 [-2.89179130e+00 -2.59532223e-01]
 [-2.72940014e+00  4.82291554e-01]
 [-3.00832340e+00 -2.53393010e-01]
 [-2.73461980e+00  5.61235680e-01]
 [-2.88274805e+00  9.04922043e-02]
 [ 1.19659125e+00  7.88745875e-01]
 [ 8.69715600e-01  3.88163609e-01]
 [ 1.36499979e+00  6.25096081e-01]
 [ 1.73792690e-01 -7.85425235e-01]
 [ 1.01531587e+00  1.73402688e-01]
 [ 6.00720918e-01 -3.53914939e-01]
 [ 1.02205489e+00  3.61463626e-01]
 [-6.96045401e-01 -1.04138498e+00]
 [ 9.73368014e-01  3.24519284e-01]
 [-4.95470589e-03 -7.15264025e-01]
 [-4.70385858e-01 -1.26585978e+00]
 [ 4.78594559e-01 -6.39074565e-02]
 [ 2.47866201e-01 -4.88953584e-01]
 [ 9.20072678e-01 -3.63520361e-02]
 [-1.61249662e-01 -2.66867717e-01]
 [ 8.64240572e-01  5.42854869e-01]
 [ 6.18564897e-01 -2.99606819e-01]
 [ 2.20947357e-01 -2.93998088e-01]
 [ 8.83256867e-01 -4.34290599e-01]
 [ 4.37509356e-02 -5.56119856e-01]
 [ 1.04385454e+00 -5.92457893e-03]
 [ 3.34034528e-01 -2.99352449e-02]
 [ 1.21279258e+00 -1.98868814e-01]
 [ 8.60791579e-01 -9.10378278e-02]
 [ 6.66385205e-01  2.15955761e-01]
 [ 8.38872704e-01  4.05527387e-01]
 [ 1.24198404e+00  3.67427222e-01]
 [ 1.45360442e+00  3.95413031e-01]
 [ 7.60209499e-01 -9.26714160e-02]
 [-2.84776151e-01 -3.73042308e-01]
 [-6.16762064e-02 -6.83733462e-01]
 [-1.75393342e-01 -6.67125028e-01]
 [ 1.28144535e-01 -2.88359448e-01]
 [ 1.29029225e+00 -2.94799046e-01]
 [ 5.51759908e-01 -4.37311974e-01]
 [ 7.53694234e-01  2.42808554e-01]
 [ 1.13807625e+00  5.06818681e-01]
 [ 7.61249738e-01 -2.73460126e-01]
 [ 2.31012079e-01 -2.46962197e-01]
 [ 1.57723439e-01 -6.48475424e-01]
 [ 4.36268045e-01 -6.11961470e-01]
 [ 8.31978779e-01  4.18367464e-02]
 [ 2.16238434e-01 -3.66548230e-01]
 [-6.54608281e-01 -1.04100731e+00]
 [ 3.35175229e-01 -4.62100791e-01]
 [ 3.10815984e-01 -1.80928940e-01]
 [ 3.52508472e-01 -2.56298403e-01]
 [ 5.99580217e-01  7.82506064e-02]
 [-8.43794996e-01 -8.12957848e-01]
 [ 2.80483824e-01 -3.15059431e-01]
 [ 2.72315063e+00 -3.38981292e-02]
 [ 1.68186528e+00 -6.60218212e-01]
 [ 2.79978374e+00  3.48789877e-01]
 [ 2.19944700e+00 -2.20680344e-01]
 [ 2.55296736e+00 -6.15062662e-02]
 [ 3.52721112e+00  6.25055623e-01]
 [ 8.49640714e-01 -1.34476884e+00]
 [ 3.09388686e+00  3.99848288e-01]
 [ 2.52531403e+00 -2.38597411e-01]
 [ 3.07972847e+00  7.81485905e-01]
 [ 1.90916747e+00  1.57229798e-01]
 [ 2.04239879e+00 -2.66530503e-01]
 [ 2.37933916e+00  1.81087654e-01]
 [ 1.61813062e+00 -8.63201280e-01]
 [ 1.84211996e+00 -6.26216091e-01]
 [ 2.13685711e+00  4.82657961e-02]
 [ 2.17815809e+00 -4.78640736e-03]
 [ 3.61005375e+00  1.22509901e+00]
 [ 3.90024566e+00  3.77077834e-01]
 [ 1.57415267e+00 -8.27595480e-01]
 [ 2.62410667e+00  3.53673174e-01]
 [ 1.48056498e+00 -7.16915264e-01]
 [ 3.62308428e+00  5.54139069e-01]
 [ 1.65510134e+00 -2.89633015e-01]
 [ 2.48195134e+00  2.98232038e-01]
 [ 2.79620267e+00  5.65562058e-01]
 [ 1.53360494e+00 -2.80296810e-01]
 [ 1.56419247e+00 -2.21913454e-01]
 [ 2.34185771e+00 -2.40986343e-01]
 [ 2.58483765e+00  4.61829115e-01]
 [ 3.00886329e+00  4.12759157e-01]
 [ 3.36936519e+00  1.40573491e+00]
 [ 2.37551557e+00 -2.47880900e-01]
 [ 1.70621167e+00 -2.19902194e-01]
 [ 2.02211444e+00 -5.36231987e-01]
 [ 3.22763297e+00  7.28688472e-01]
 [ 2.36122105e+00  8.03268415e-02]
 [ 2.13672097e+00 -5.16407917e-03]
 [ 1.45073071e+00 -2.81052154e-01]
 [ 2.32464775e+00  3.28129013e-01]
 [ 2.51893490e+00  1.50312434e-01]
 [ 2.15178566e+00  3.43481531e-01]
 [ 1.68186528e+00 -6.60218212e-01]
 [ 2.75082273e+00  2.65392842e-01]
 [ 2.61658278e+00  2.70653811e-01]
 [ 2.17307457e+00  1.27587594e-01]
 [ 1.78488772e+00 -4.43191260e-01]
 [ 2.00529599e+00  1.05661102e-02]
 [ 2.13404214e+00  3.77965754e-02]
 [ 1.65750603e+00 -3.79046362e-01]]

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐