🔧 tool

相关软件(R代码)

```r # PCA示例 data(iris) pca_result <- prcomp(iris[, 1:4], center = TRUE, scale. = TRUE) # 查看方差贡献 summary(pca_result) plot(pca_result, type = "l", main = "PCA方差贡献") # 可视化前两个主成分 library(ggplot2) pca_dat...

📖 定义

# PCA示例
data(iris)
pca_result <- prcomp(iris[, 1:4], center = TRUE, scale. = TRUE)
# 查看方差贡献
summary(pca_result)
plot(pca_result, type = "l", main = "PCA方差贡献")
# 可视化前两个主成分
library(ggplot2)
pca_data <- data.frame(PC1 = pca_result$x[, 1], PC2 = pca_result$x[, 2], 
                       Species = iris$Species)
ggplot(pca_data, aes(x = PC1, y = PC2, color = Species)) +
  geom_point(size = 3) +
  labs(title = "PCA of Iris Dataset") +
  theme_minimal()
# K-means聚类
set.seed(123)
kmeans_result <- kmeans(iris[, 1:4], centers = 3, nstart = 25)
# 与真实标签比较
table(Predicted = kmeans_result$cluster, True = iris$Species)
# 可视化聚类结果(使用PCA降维)
cluster_data <- data.frame(PC1 = pca_result$x[, 1], PC2 = pca_result$x[, 2],
                           Cluster = factor(kmeans_result$cluster))
ggplot(cluster_data, aes(x = PC1, y = PC2, color = Cluster)) +
  geom_point(size = 3) +
  labs(title = "K-means Clustering (K=3)") +
  theme_minimal()
# 层次聚类
hc_result <- hclust(dist(iris[, 1:4]), method = "ward.D2")
plot(hc_result, main = "层次聚类树状图", xlab = "", sub = "")
rect.hclust(hc_result, k = 3, border = 2:4)
# t-SNE
# install.packages("Rtsne")
library(Rtsne)
set.seed(123)
tsne_result <- Rtsne(iris[, 1:4], dims = 2, perplexity = 30, verbose = TRUE)
tsne_data <- data.frame(Dim1 = tsne_result$Y[, 1], Dim2 = tsne_result$Y[, 2],
                        Species = iris$Species)
ggplot(tsne_data, aes(x = Dim1, y = Dim2, color = Species)) +
  geom_point(size = 3) +
  labs(title = "t-SNE of Iris Dataset") +
  theme_minimal()
# UMAP
# install.packages("umap")
library(umap)
umap_result <- umap(iris[, 1:4])
umap_data <- data.frame(Dim1 = umap_result$layout[, 1], Dim2 = umap_result$layout[, 2],
                        Species = iris$Species)
ggplot(umap_data, aes(x = Dim1, y = Dim2, color = Species)) +
  geom_point(size = 3) +
  labs(title = "UMAP of Iris Dataset") +
  theme_minimal()