R语言将 手写数据集 图片数据转为表格数据并主成分分析

下载地址 :

http://yann.lecun.com/exdb/mnist/

R语言将 手写数据集 图片数据转为表格数据并主成分分析_第1张图片

library("factoextra")

#image
load_image_file = function(file) {
  f = file(file, 'rb')
  readBin(f, 'integer', n = 1, size = 4, 
          endian = 'big')
  n    = readBin(f, 'integer', n = 1, size = 4,
                 endian = 'big')
  nrow = readBin(f, 'integer', n = 1, size = 4, 
                 endian = 'big')
  ncol = readBin(f, 'integer', n = 1, size = 4, 
                 endian = 'big')
  x = readBin(f, 'integer', n = n * nrow * ncol, size = 1, signed = FALSE)
  close(f)
  return(data.frame(matrix(x, ncol = nrow * ncol, byrow = TRUE)))
}

#label
load_label_file = function(file) {
  f = file(file, 'rb')
  readBin(f, 'integer', n = 1, size = 4, 
          endian = 'big')
  n = readBin(f, 'integer', n = 1, size = 4,
              endian = 'big')
  y = readBin(f, 'integer', n = n, size = 1, 
              signed = FALSE)
  close(f)
  return(y)
}

# 读数据
train = load_image_file("train-images.idx3-ubyte")
# 读标签
train$y = as.factor(load_label_file("train-labels.idx1-ubyte"))


write.csv(train,"train.csv",row.names = F)#output csv

R语言将 手写数据集 图片数据转为表格数据并主成分分析_第2张图片

#pca
pca <- prcomp(train[,-785])
summary(pca)


fviz_screeplot(pca, ncp=10)#主成分方差占比

R语言将 手写数据集 图片数据转为表格数据并主成分分析_第3张图片

jpeg("biplot1.jpg")#图像保存本地
print(fviz_pca_biplot(pca,  label ="var"))
dev.off()

R语言将 手写数据集 图片数据转为表格数据并主成分分析_第4张图片

jpeg("biplot.jpg")
biplot(pca)
dev.off()

R语言将 手写数据集 图片数据转为表格数据并主成分分析_第5张图片

jpeg("individual.jpg")
fviz_pca_ind(pca, label="none", habillage=train$y,
             addEllipses=TRUE, ellipse.level=0.95)
dev.off()

R语言将 手写数据集 图片数据转为表格数据并主成分分析_第6张图片

你可能感兴趣的:(r语言,开发语言)