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

如何批量向sklearn diabetes数据集追加数千行合成数据?

批量追加合成数据到sklearn Diabetes数据集的方法

方法1:使用NumPy合并(原生兼容sklearn数据集格式)

sklearn Diabetes数据集的data和target本身就是NumPy数组,直接用np.concatenate即可实现批量合并,步骤简单高效:

import numpy as np
from sklearn.datasets import load_diabetes

# 加载原Diabetes数据集
diabetes = load_diabetes()
original_data = diabetes.data
original_target = diabetes.target

# 假设你已准备好合成数据:synth_data(3500行特征矩阵)、synth_target(3500行目标数组)
# 需保证synth_data列数与原数据一致(10列),synth_target为一维数组

# 批量合并特征矩阵
combined_data = np.concatenate([original_data, synth_data], axis=0)
# 批量合并目标数组
combined_target = np.concatenate([original_target, synth_target], axis=0)

# 可选:将合并后的数据放回原数据集对象
diabetes.data = combined_data
diabetes.target = combined_target
# 验证行数:原450行 + 3500行 = 3950行
print(diabetes.data.shape)  # 输出应为 (3950, 10)

方法2:使用Pandas合并(直观易检查)

如果习惯用DataFrame操作,可以先将数据转成DataFrame合并,再转回NumPy数组适配sklearn接口:

import pandas as pd
from sklearn.datasets import load_diabetes

# 加载原数据集并转为DataFrame
diabetes = load_diabetes()
original_df = pd.DataFrame(diabetes.data, columns=diabetes.feature_names)
original_df['target'] = diabetes.target

# 假设你已将合成数据转为DataFrame:synth_df(包含10个特征列+1个target列)
# 需保证synth_df的列名、数据类型与原DataFrame完全匹配

# 批量合并DataFrame
combined_df = pd.concat([original_df, synth_df], ignore_index=True)

# 转回NumPy数组(适配sklearn)
combined_data = combined_df.drop('target', axis=1).values
combined_target = combined_df['target'].values

# 可选:替换原数据集的数据
diabetes.data = combined_data
diabetes.target = combined_target
print(diabetes.data.shape)  # 输出 (3950, 10)

关键注意事项

  • 确保合成数据的特征列数、数据类型与原数据集完全一致(原数据为float64类型)
  • 合并后通过shape属性验证行数是否符合预期(450+3500=3950)
  • 若合成数据来自外部文件,读取时需避免引入额外索引或无关列

内容的提问来源于stack exchange,提问作者G. D'Seas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:45:39