Julia相关矩阵DataFrame怎么提取高相关单元格值及对应列名?
Julia 获取高相关特征配对及对应值解决方案
你可以直接通过DataFrame的内置列名属性和你已拿到的索引做一一映射,全程不需要调整排序,不会出现行列错位问题,具体实现如下:
方法1:基于现有索引直接映射
你已经拿到了高相关值的坐标索引,直接关联原df的列名即可:
- 第一步:获取原数据集的特征名列表
feature_names = names(df) - 第二步:遍历索引生成结构化结果,自动去重自相关和重复配对
high_corr_pairs = [] for idx in idx_hcorr i, j = idx[1], idx[2] # 跳过自相关 + 仅保留i<j的配对避免同一配对重复出现 if i < j push!(high_corr_pairs, ( 特征1 = feature_names[i], 特征2 = feature_names[j], 相关系数 = round(corr_matrix_df[i,j], digits=4) )) end end # 转成DataFrame格式方便后续查看和处理 high_corr_result = DataFrame(high_corr_pairs)
方法2:直接生成带特征名的相关矩阵
可以一步生成带行、列特征名的相关矩阵,后续查询更方便:
using DataFrames, Statistics # 生成列名对应特征的相关矩阵DataFrame corr_df = DataFrame(cor(Matrix(df)), names(df)) # 给第一列插入行对应的特征名 insertcols!(corr_df, 1, :row_feature => names(df))
后续你可以直接按特征名查询任意两个特征的相关系数,不需要做索引映射。
内容的提问来源于stack exchange,提问作者F612
相关产品推荐
相关产品推荐

