【问题标题】:How to correctly pre-proccess data from dask dataframe to feed into ML model如何正确预处理来自 dask 数据帧的数据以输入 ML 模型
【发布时间】:2022-08-06 20:55:40
【问题描述】:

我正在开发一个具有非常大的数据集NF-UQ-NIDS 的项目。我什至无法适应熊猫,所以我决定使用 dask,但我遇到了问题。

我可能做错了什么,但是当我尝试训练_test_split X 和 y 时,如果不将它们转换为 dask_array,我就无法做到这一点。 train_test_split 导致 y 的形状不正确,应该是 7,因为我使用了 7 个分类标签,但它导致它是形状 (x, 42),与 X 的形状相同。

这是一个可重现的示例,数据集在上面的链接中:

df = dd.read_hdf(root_folder+\"hdf/\"+hdf_name,hdf_name.split(\".\")[0])

def encode_numeric_zscore(df, name, mean=None, standard_deviation=None):
   if mean is None:
       mean = df[name].mean()

   if standard_deviation is None:
       standard_deviation = df[name].std()

   df[name] = (df[name] - mean) / standard_deviation

for column in df.columns:
if(column != \'attack_map\'): encode_numeric_zscore(df,column) 

X_columns = df.columns.drop(\'attack_map\')
X = df[X_columns].values
y = dd.get_dummies(df[\'attack_map\'].to_frame().categorize()).values

print(type(X))
print(type(y))

X = df.to_dask_array(lengths=True)
y = df.to_dask_array(lengths=True)

print(type(X))
print(type(y))

X.compute()
y.compute()

X_train, X_val, y_train, y_val = train_test_split(
X, y, test_size=0.2, shuffle=True, random_state=2) 
print(X_train.shape, y_train.shape)
print(X_val.shape, y_val.shape)

    标签: python dask


    【解决方案1】:

    如果您在训练测试拆分中遇到问题,请使用 dask-ml 中的一个,同时使用 dask 数据帧/系列/数组,而不是 sklearn 训练测试拆分。 链接:https://ml.dask.org/modules/generated/dask_ml.model_selection.train_test_split.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多