Python 使用Dask数据帧计算类权重
我得到了一个Dask数据帧,其中一列是实际的标签。其余的列是要素。然而,我不确定如何设置“X”和“y”来未来训练sklearn模型并计算_class_权重,因为数据集非常不平衡。 为此,我已尝试:Python 使用Dask数据帧计算类权重,python,pandas,scikit-learn,dask,Python,Pandas,Scikit Learn,Dask,我得到了一个Dask数据帧,其中一列是实际的标签。其余的列是要素。然而,我不确定如何设置“X”和“y”来未来训练sklearn模型并计算_class_权重,因为数据集非常不平衡。 为此,我已尝试: fn = 'train_text_encoded_08V.parquet' df_dd = dd.read_parquet(fn) X = df_dd[df_dd.columns[1:]] y = df_dd['actual_label'].values class_weights = clas
fn = 'train_text_encoded_08V.parquet'
df_dd = dd.read_parquet(fn)
X = df_dd[df_dd.columns[1:]]
y = df_dd['actual_label'].values
class_weights = class_weight.compute_class_weight('balanced',
np.unique(y),
y)
class_weight_dict = dict(enumerate(class_weights))
我得到了以下错误:
ValueError:'数组块大小未知:%s',nan
我相信这是因为:
print(y)
out[]: dask.array<values, shape=(nan,), dtype=int64, chunksize=(nan,)>
我认为我没有以正确的方式加载X和y。。我该怎么做呢?Dask不会进行这种类型的计算,除非您明确说明。试一试
X = df_dd[df_dd.columns[1:]].compute()
y = df_dd['actual_label'].compute()