python - 最大化组内相关性,同时最小化组间相关性

标签 python r machine-learning data-science

我试图弄清楚是否有一种方法可以找到一种方法来对对象进行排序,从而最大化组内相关性并最小化组间相关性。

例如,假设有一个数据框 DF,包含 12 列 s1 到 s12,每列有 100 个观测值。假设每个都代表股票返回率。

我想找到一种方法将这些数据分为 3 组,每组 4 个变量,从而最大化组内相关性并最小化组间相关性。 假设 Pearson 方法效果良好,

df_cor <- cor(df)

这将给出一个 12x12 相关矩阵。

我的直觉是,通过使用这个相关矩阵,我应该编写一个代码来仅选择能够给出最大相关系数总和的唯一对,但我有点迷失了。

你们中的任何人都可以提供有关如何执行此操作的提示吗?

我的真实数据有 2000 列,每列有 3000 个观察值,我必须将它们分为 10 组。

我用 R 来做,但我也可以用 python 做。

感谢您的阅读!

最佳答案

不久前我写了一个函数 (func_correlation)它采用(预测变量的)矩阵或数据框,并返回高度相关的对,同时考虑到许多参数。希望这是您真正要问的。

示例数据,

lst_s = list()

set.seed(1) 
for (i in 1:12) {

  nam = paste0("s_", i)

  lst_s[[nam]] = runif(100)
}

s_matr = do.call(cbind, lst_s)

通过使用devtools::install_github('mlampros/FeatureSelection')您可以安装该包然后运行,

dat = FeatureSelection::func_correlation(s_matr, target = NULL, correlation_thresh = 0.05, use_obs = "everything", correlation_method = "pearson")

# here the *correlation_thresh* is low because I use random data, adjust it to your needs

它返回一个列表 (out_list) 和一个数据框 (out_df)。该列表显示了高于 correlation_thresh各个预测变量的相关性,

$out_list
$out_list[[1]]
           s_1
s_3 0.14450632
s_6 0.10891246
s_7 0.13232308
s_8 0.07818346
s_9 0.06381170

$out_list[[2]]
           s_2
s_10 0.1380704
s_11 0.1737746

.........

而数据框显示了高于 correlation_thresh 的所有预测变量对,

$out_df
   predictor1 predictor2       prob
1         s_3        s_1 0.14450632
2         s_6        s_1 0.10891246
3         s_7        s_1 0.13232308
4         s_8        s_1 0.07818346
5         s_9        s_1 0.06381170
6        s_10        s_2 0.13807039
7        s_11        s_2 0.17377459
8         s_4        s_3 0.10395950
9         s_6        s_3 0.21541706

...............

关于python - 最大化组内相关性,同时最小化组间相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46803764/

相关文章:

python - Pytorch 在每次训练后恢复训练

r - 在大 data.table 中操作字符串的最佳方法

r - R 中逻辑模型交互的优势比和 95% CI

python - python 切片符号可以在括号外使用吗?

python - 使用 python 将句子列表拆分为单词列表

r - 如何对LM摘要中的系数进行排序?

python - 使用 sklearn 和 pandas 改进线性回归的 POC

tensorflow - Keras/Tensorflow 中一组矩阵之间的成对距离

python - Python 中的回溯

python - gpg : keyserver receive failed: Cannot assign requested address 上的非零 [错误] 代码