from sklearn.decomposition import pcafrom sklearn.cluster import kmeans
import pandas as pd
import numpy as np
#pca.txt是乙個沒有表頭的多維資料,一共有7列,利用pandas讀取
df = pd.read_table('d:/pca.txt')
#將df轉換成矩陣
datamat = np.array(df)
#呼叫sklearn中的pca,其中主成分有5列
pca_sk = pca(n_components=5)
#利用pca進行降維,資料存在newmat中
newmat = pca_sk.fit_transform(datamat)
#利用kmeans進行聚類,分為3類
kmeans = kmeans(n_clusters=3,random_state=0).fit(newmat)
#labels為分類的標籤
labels = kmeans.labels_
#把標籤加入到矩陣中用dataframe生成新的df,index為類別的編號,這裡是0,1,2
datadf = pd.dataframe(newmat,index=labels,columns=['x1','x2','x3','x4','x5'])
#資料儲存在excel檔案中
datadf.to_excel('d:/pca_cluster.xls')
print(pca_sk.explained_variance_ratio_)
PCA降維演算法
文章由兩部分構成,第一部分主要講解pca演算法的步驟,第二部分講解pca演算法的原理。那麼首先進入第一部分 pca演算法的步驟 樣本矩陣x的構成 假設待觀察變數有m個,其實相當於乙個資料在m維各維度上的座標,我們的目標是在保證比較資料之間相似性不失真的前提下,將描述資料的維度盡量減小至l維 l樣本矩...
PCA降維原理
在之前的介紹中,一幅影象只能表示乙個物件。那麼對於w x h的灰度影象,只能表示為w x h位的向量,那麼乙個有100 100的影象就需要10000維的向量空間。對於一幅人臉而言,是否所有維的資料都是有用的呢?在矩陣論當中我們知道,矩陣可以近似的表示為乙個特徵值與特徵向量的乘積。根據這個原理,如果我...
資料降維 PCA
模型原型 class sklearn.decomposition.pca n components none,copy true,whiten false 引數 copy 如果為false,則直接使用原始資料來訓練,結果會覆蓋原始資料所在的陣列 whiten 如果為true,則會將特徵向量除以n s...