You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆解DataFrame字典型超参列并开展超参相关性分析?

超参列拆分与分类超参数值化方案

一、拆分hyperparam_name列为独立特征列

你的hyperparam_name列存储的是字典格式数据,直接用pandas的json_normalize就能快速拆分成独立列。如果列中是字符串格式的字典(比如打印出来带引号),需要先转成实际字典:

import pandas as pd
import ast

# 先处理字符串格式的字典(如果需要)
if isinstance(hyperparam_df['hyperparam_name'].iloc[0], str):
    hyperparam_df['hyperparam_name'] = hyperparam_df['hyperparam_name'].apply(ast.literal_eval)

# 拆分字典列为独立列
expanded_hyperparams = pd.json_normalize(hyperparam_df['hyperparam_name'])

# 合并原表的仓库、文件信息与拆分后的超参列
final_df = pd.concat([hyperparam_df[['repo_name', 'file_name']], expanded_hyperparams], axis=1)

这个方法会自动把所有字典的键作为列,不同文件缺失的超参会填充为NaN,完美适配不同文件超参不一致的场景。

二、分类超参转数值型

根据分类特征的类型,选择对应的转换方式:

1. 二分类特征(如布尔值、是/否)

直接转成整数类型即可:

# 示例:把log_metrics列的True/False转成1/0
final_df['log_metrics'] = final_df['log_metrics'].astype(int)

2. 无序多分类特征(如agent的'central'、'ppo')

用独热编码避免给类别强加顺序,同时避免多重共线性:

# 对agent列生成独热编码,prefix指定前缀,drop_first去掉冗余列
one_hot_agent = pd.get_dummies(final_df['agent'], prefix='agent', drop_first=True)
# 合并编码列并删除原列
final_df = pd.concat([final_df.drop('agent', axis=1), one_hot_agent], axis=1)

3. 有序多分类特征(如row的1、2、3,代表层级)

用标签编码分配有序数值,注意仅适用于有明确顺序的类别:

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
final_df['row'] = le.fit_transform(final_df['row'])

4. 字符串格式的数值

如果超参是字符串形式的数字,直接转成数值类型:

final_df['some_numeric_col'] = pd.to_numeric(final_df['some_numeric_col'], errors='coerce')

三、超参相关性分析

处理完特征后,就可以用常规方法分析相关性:

皮尔逊相关系数(适用于正态分布的数值型特征)

# 只选择数值型特征计算相关矩阵
corr_matrix = final_df.select_dtypes(include=['int64', 'float64']).corr()

# 用热力图可视化(可选)
import seaborn as sns
import matplotlib.pyplot as plt

sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.show()

斯皮尔曼秩相关(适用于有序分类或非正态分布的数值)

spearman_corr = final_df.select_dtypes(include=['int64', 'float64']).corr(method='spearman')

内容的提问来源于stack exchange,提问作者Brie MerryWeather

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:29:50