【发布时间】: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)