preliminary EDA around neurobiber
This commit is contained in:
		
							parent
							
								
									43fb346318
								
							
						
					
					
						commit
						90e69975d2
					
				
							
								
								
									
										80
									
								
								p2/quest/neurobiber_EDA.R
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								p2/quest/neurobiber_EDA.R
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,80 @@ | ||||
| library(tidyverse) | ||||
| 
 | ||||
| neurobiber_csv <-"~/p2/quest/071525_neurobiber_labels.csv" | ||||
| neurobiber_df <- read.csv(neurobiber_csv , header = TRUE)  | ||||
| 
 | ||||
| neurobiber_df$features_vec  <- lapply(neurobiber_df$neurobiber_preds, function(x) { | ||||
|   x <- gsub("\\[|\\]", "", x) | ||||
|   x <- trimws(x) | ||||
|   as.numeric(unlist(strsplit(x, "\\s+"))) | ||||
| }) | ||||
| 
 | ||||
| X <- do.call(rbind, neurobiber_df$features_vec ) | ||||
| 
 | ||||
| set.seed(808) | ||||
| 
 | ||||
| library(dplyr) | ||||
| library(purrr) | ||||
| table(neurobiber_df$source) | ||||
| 
 | ||||
| #neurobiber_df <- neurobiber_df %>% | ||||
| #  group_by(source) %>% | ||||
| #  mutate(cluster = { | ||||
| #    X_sub <- do.call(rbind, features_vec) | ||||
| #    as.factor(kmeans(X_sub, centers = 50)$cluster) | ||||
| #  }) %>% | ||||
| #  ungroup() | ||||
| kmeans_result <- kmeans(X, centers = 10) | ||||
| neurobiber_df$cluster <- as.factor(kmeans_result$cluster) | ||||
| table(neurobiber_df$cluster) | ||||
| 
 | ||||
| pca <- prcomp(X, center = TRUE, scale. = TRUE) | ||||
| neurobiber_df$PC1 <- pca$x[,1] | ||||
| neurobiber_df$PC2 <- pca$x[,2] | ||||
| 
 | ||||
| 
 | ||||
| ggplot(neurobiber_df, aes(x = PC1, y = PC2, color = cluster)) + | ||||
|   geom_point(size = 2, alpha = 0.7) + | ||||
|   theme_minimal() + | ||||
|   labs(title = "Within case comment clusters (kmeans) by cross-case PCA", | ||||
|        x = "Principal Component 1", | ||||
|        y = "Principal Component 2") + | ||||
|   facet_wrap(~ source) | ||||
| 
 | ||||
| ggplot(neurobiber_df, aes(x = phase, y=cluster, fill=AuthorWMFAffil)) + | ||||
|   geom_violin(trim = FALSE, position = position_dodge(width = 0.8), alpha = 0.6) + | ||||
|   theme_minimal() + | ||||
|   labs(title = "Across-case comment clusters by feature deployment phase", | ||||
|        x = "Feature deployment phase", | ||||
|        y = "Neurobiber feature vector cluster (kmeans)") + | ||||
|   facet_wrap(~ source) | ||||
| 
 | ||||
| cluster_means <- aggregate(X, by = list(Cluster = neurobiber_df$cluster), FUN = mean) | ||||
| rownames(cluster_means) <- paste0("Cluster_", cluster_means$Cluster) | ||||
| cluster_means <- cluster_means[,-1] # Remove cluster label column | ||||
| 
 | ||||
| BIBER_FEATURES <- c( | ||||
|   "BIN_QUAN","BIN_QUPR","BIN_AMP","BIN_PASS","BIN_XX0","BIN_JJ", | ||||
|   "BIN_BEMA","BIN_CAUS","BIN_CONC","BIN_COND","BIN_CONJ","BIN_CONT", | ||||
|   "BIN_DPAR","BIN_DWNT","BIN_EX","BIN_FPP1","BIN_GER","BIN_RB", | ||||
|   "BIN_PIN","BIN_INPR","BIN_TO","BIN_NEMD","BIN_OSUB","BIN_PASTP", | ||||
|   "BIN_VBD","BIN_PHC","BIN_PIRE","BIN_PLACE","BIN_POMD","BIN_PRMD", | ||||
|   "BIN_WZPRES","BIN_VPRT","BIN_PRIV","BIN_PIT","BIN_PUBV","BIN_SPP2", | ||||
|   "BIN_SMP","BIN_SERE","BIN_STPR","BIN_SUAV","BIN_SYNE","BIN_TPP3", | ||||
|   "BIN_TIME","BIN_NOMZ","BIN_BYPA","BIN_PRED","BIN_TOBJ","BIN_TSUB", | ||||
|   "BIN_THVC","BIN_NN","BIN_DEMP","BIN_DEMO","BIN_WHQU","BIN_EMPH", | ||||
|   "BIN_HDG","BIN_WZPAST","BIN_THAC","BIN_PEAS","BIN_ANDC","BIN_PRESP", | ||||
|   "BIN_PROD","BIN_SPAU","BIN_SPIN","BIN_THATD","BIN_WHOBJ","BIN_WHSUB", | ||||
|   "BIN_WHCL","BIN_ART","BIN_AUXB","BIN_CAP","BIN_SCONJ","BIN_CCONJ", | ||||
|   "BIN_DET","BIN_EMOJ","BIN_EMOT","BIN_EXCL","BIN_HASH","BIN_INF", | ||||
|   "BIN_UH","BIN_NUM","BIN_LAUGH","BIN_PRP","BIN_PREP","BIN_NNP", | ||||
|   "BIN_QUES","BIN_QUOT","BIN_AT","BIN_SBJP","BIN_URL","BIN_WH", | ||||
|   "BIN_INDA","BIN_ACCU","BIN_PGAS","BIN_CMADJ","BIN_SPADJ","BIN_X" | ||||
| ) | ||||
| colnames(cluster_means) <- BIBER_FEATURES | ||||
| library(pheatmap) | ||||
| pheatmap(cluster_means,  | ||||
|          cluster_rows = FALSE,    # Now features are clustered (rows) | ||||
|          cluster_cols = TRUE,   # Clusters (columns) are not clustered | ||||
|          scale = "row")         # Standardize features | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user