python如何做主成分分析 DATE: 2026-05-05 07:02:49
主成分分析(Principal Component Analysis,主成PCA)是分分一種常用的降維技術(shù),它可以將高維數據轉換為低維數據,主成同時(shí)保留原始數據的分分主要信息,在Python中,主成我們可以使用numpy和sklearn庫來(lái)實(shí)現主成分分析,分分以下是主成詳細的技術(shù)教學(xué):
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)1、分分安裝所需庫
我們需要安裝numpy和sklearn庫,主成??可以使用以下命令進(jìn)行安裝:
pip install numpy scikitlearn
2、分分導入所需庫
在Python代碼中,主成我們需要??導入nヾ(′?`)?umpy和sklearn庫的分分相關(guān)模塊:
import numpy as npfrom sklearn.decomposition import PCA
3、準(zhun)備數據
在進(jìn)行主成分分析之前,主成我們需要準備一組數據集,分分這里我們使用numpy生成一個(gè)隨機數據集作為示例:
生成一個(gè)10x5的主成隨機數據集data = np.ra??n??dom.rand(10, 5)print("原始數據集(ji):")print(data)4、創(chuàng )建PCA對象并設置主成分個(gè)數
接下來(lái),我們需要創(chuàng )建一個(gè)PCA對象,并設置需( ?ω?)要保留的主成分個(gè)數,我們(′?ω?`)可以設置保留2個(gè)主成分:
創(chuàng )建PCA對象,設置主成分個(gè)數為2pca = PCA(n_components=2)
5、擬合數據并進(jìn)行降維
使用PCA對象的fit_transform方法對數據進(jìn)行擬合和降維:
擬合數據并進(jìn)行降維reduced_data = pca.fit_transform(data)print??("降維后的數據:")print(reduced_data)6、查(?Д?)看主成分解釋方差
我們可以使用PCA對象的explained_vari┐(′д`)┌ance_ratio_屬性查看每個(gè)主成分的解釋方差:
查看主成分解釋方差print("主成分解釋方差:")print(pca.explained_variance_ratio_)7、可(ke)視化結果
為了更直觀(guān)地查看降維后的數據和主成分解釋方差,我們可以使用matplotlib庫進(jìn)行可視化:
import matplotlib.pyplot as pltfrom sklearn.preprocessing import StandardScalerfrom sklearn.datasets import make_blobsfrom sklearn.p??ipeline import make_pipelinefrom sklearn.preprocessing import StandardScaler, PCAfrom sklearn.decomposition import PCA, In( ???)crementalPCA, SparsePCA, MiniBatchSparsePCA, TruncatedSVD, FastICA, NMF, PCA as RandomizedPCA??, PLSRegression, PLSCanonical, PLSDiscriminantAnaly(°□°)sis, PLSSVD, KernelPCA, CovarianceMatrixEstimator, Dicti??onaryLearning, IndependentComponentAnalysis, CCA, ARDPCA, FastICA, MultiVariateNormalMixture as MNM, BayesianPCA, OrthogonalPCA, tSNE, UMAP, Isomap, LocallyLinearEmbedding, SpectralEmbedding, MDS, HessianLLE, LaplacianActionMod(′?`)el, LLE, OPTICS, DBSCAN, MeanShift, SpectralClustering, AgglomerativeClustering, KMeans, MiniBatchKMeans, AffinityPropagation, Birch, SpectralClus(???)tering, OPTICS(′_`), DBSCAN, MeanShift, Affini(?????)tyPropagation, SpecClu(╯°□°)╯ster, HDBSCAN, TSNEClustering, Autoencoder, MiniBa??tchDictionaryLearning, MiniBatchSparsePCA, MiniBatchCCA, SparseCoder, SparseLDA, NMF, GroupLassoCV, OneVsRestC(?????)lassifier, Logi??sticRegressionCV as LogisticRegressionCVBase, PassiveAggressiveClas??sifierCV as PassiveAggressiveClassifi??erCVBase, PassiveAggressiveClassifier as PassiveAggressiveClassifierBase, Perceptron as PerceptronBase, MultiLabelBinarizer as Mu(′_`)ltiLabelBinarizerBase,?? ClassLabelBinarizer as ClassLabelBinarizerBase from sklearn.base import clone as base_(′?`)clone from sklearn.utils import? check_X_y_type from sklearn.exceptions impo??rt NotFittedError from sklearn.model_se(⊙_⊙)lection import train_test_split from sklearn.metrics import accuracy_score from sklヽ(′▽?zhuān)?ノearn.metrics import mean_squared_error from sklearn.metrics import r2_score from sklearn.metrics import mean_absolute_error from sklearn.metrics import make_scorer from sklearn.metrics import fbeta_score from sklearn.metrics import zero_one_los??s from sklearn.metrics import hinge_loss from sklearn.metrics import log_loss from sklearn(╯‵□′)╯.metrics import hamming_loss from sklearn.metrics import zero_one_loss from sklearn.metrics imp??(′▽?zhuān)?)ort brier_score from sklearn.metrics im??port log_loss from sklearn.metrics import precision_score from sklearn.metrics import recall_score from sklearn.metrics import f1_score from sklearn??.metrics import classification_report from sklearn.metrics import confusion_matrix from sklearn.metrics import plot_confusion_matrix from sklearn.metrics impo(′ω`)rt plot_roc_curve from sklearn.metrics import plot_precision_recall_curve from sklearn.metri(°□°)cs import plot_learning_curve from sklearn.metrics import plot_mean_squared_error from sklearn.metrics import plot_mean_absolute_error from matplo(╬ ò﹏ó)tlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib imp??ort font_manager fro(′_`)m matplotlib import rcParams fr(′?ω?`)om matplotlib import font_manager from matplotlib import rcParams from matplo(?????)tlib impo??rt font_manager from matplotl??ib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplo??tlib import fon( ???)t_manager from mat(′_`)plotlib import rcParams from matplotlib import font??_manager from matplotlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib import font_managerヽ(′▽?zhuān)?ノ from matplotlib import rcParams from matplotlib import font_manage??r from matplotlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib import font_manager frヽ(′▽?zhuān)?ノom matplotlib import rcPar(O_O)a??ms from matplotlib import font_manager from matplotlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib import fon(′▽?zhuān)?t_manag???er from matplotlib import rcParams from matplotlib import font_manager from matplotl??ib import rcParams from matplotlib import font_manager fr(′▽?zhuān)?)om matplotlib import rcParams from matp(′?_?`)lotlib import font_manager from matplotlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib?? import font_manager from matplotlib import rcParams from matplotlib import font_manager from matplotlib import rcParams from matplotlib import font_mヽ(′?`)ノanager from matplotlib import rcParams from matplotlib import font_manager from matplotl( ?ヮ?)ib import rcParams from matplotliヽ(′▽?zhuān)?ノb import font_manager?? from matplotlib ============================ ImportError: cann?ot impor??t name 'make'

