数据挖掘实验(二):主成分分析PCA R语言

1.思路

数据挖掘实验(二):主成分分析PCA R语言_第1张图片

2.代码

PCA <- function(data,k){
  #中心化处理
  standardize = data.frame()
  for(i in 1:nrow(data)){
    for(j in 1:ncol(data)){
      standardize[i,j]  = data[i,j]-mean(data[,j])
    }
  }
 
   #协方差矩阵

  cov_data = data.frame()
  cov_data =cov(standardize)

   #求特征值、特征向量
    eig = eigen(cov_data)
    e = as.matrix(eig$vectors)       #特征向量矩阵
    EigenVectors=as.matrix(e[,1:k])       #提取前k个
    
    standardize = as.matrix(standardize)  
 
    result = standardize%*%EigenVectors
 return(result)
}

#测试  


data<-data.frame(X1<-c(2.5,0.5,2.2,1.9,3.1,2.3,2,1,1.5,1.1),
                 X2<-c(2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9))

PCA(data,1)

数据挖掘实验(二):主成分分析PCA R语言_第2张图片

data2 = data.frame(x1 = c(2,4,-5,6,8),
                   x2 = c(5,4,7,15,3.5),
                   x3 = c(1.2,3.5,5,14,2))

PCA(data2,1)

数据挖掘实验(二):主成分分析PCA R语言_第3张图片

PCA(data2,2)

数据挖掘实验(二):主成分分析PCA R语言_第4张图片

你可能感兴趣的:(数据挖掘,编程语言,数据挖掘,r语言)