加载数据

data <- read.csv("C:/Users/LENOVO/Desktop/train.csv")

加载所需的包

library(fastICA) library(ggplot2)

提取独立成分

variables <- data[, -1] # 排除第一列 ica_result <- fastICA(variables, n.comp = 10) # 提取10个独立成分 ica_data <- data.frame(ica_result$S) ica_data$Label <- as.factor(data[, 1]) # 第一列为标签列

绘制ICA散点图

plot <- ggplot() for (i in 1:10) { plot <- plot + geom_point(data = ica_data, aes(x = ica_data[, i], y = ica_data[, i + 1], color = Label)) } plot

进行PCA降维

variables <- data[, -1] # 排除第一列 variables <- variables[, apply(variables, 2, function(x) !all(x == x[1]))] if (ncol(variables) == 0) { stop("数据中存在常数列或全零列,请检查数据。") } pca_result <- prcomp(variables, center = TRUE, scale. = TRUE) n_components <- 10 pca_components <- pca_result$x[, 1:n_components] pca_data <- data.frame(pca_components) pca_data$Label <- data[, 1] # 第一列为标签列

绘制PCA散点图

plot <- ggplot() for (i in 1:9) { plot <- plot + geom_point(data = pca_data, aes(x = pca_data[, i], y = pca_data[, i + 1], color = Label)) } plo


原文地址: https://www.cveoy.top/t/topic/fmjc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录