提问人:hexolitemax 提问时间:9/25/2023 最后编辑:desertnauthexolitemax 更新时间:9/27/2023 访问量:27
BinningProcess:binning_transform_params参数中的错误,metric = bins
BinningProcess: error in binning_transform_params parameter with metric = bins
问:
我想使用 BinningProcess 来转换 sklearn 管道中的列。但是,我希望 BinningProcess 返回 bins 而不是目标变量的平均值,以获得有意义的 bin 名称。
为了说明我的问题,我从 sklearn 管道中生成了一个示例。我对 BinningProcess 文档的理解是我可以处理 binning 输出格式
1. 在带有选项度量
的 .transform
方法中。
df = pd.DataFrame({'continuous_feature': choices(range(0,30), k=95) + [np.NaN]*5,
'cat_feature': choices(['A', 'B', 'C'], k = 100),
'target' : [uniform(15,16) for x in range(0,100)]})
all_features = ["continuous_feature", "cat_feature"]
X = df.loc[:, all_features]
y = df.loc[:, 'target']
BinningProcess(all_features).fit_transform(X,y, metric = "bins")
这工作正常,我获得了所需的表格:
但是,由于我最终想在管道中使用 BinningProcess,因此我无法使用此 .transform 方法选项。
2. 或者在 BinningProcess 函数中使用选项 binning_transform_params
等效代码应为:
df = pd.DataFrame({'continuous_feature': choices(range(0,30), k=95) + [np.NaN]*5,
'cat_feature': choices(['A', 'B', 'C'], k = 100),
'target' : [uniform(15,16) for x in range(0,100)]})
all_features = ["continuous_feature", "cat_feature"]
X = df.loc[:, all_features]
y = df.loc[:, 'target']
BinningProcess(all_features,
binning_transform_params = {"continuous_feature": {"metric": "bins"},
"cat_feature": {"metric": "bins"}}).fit_transform(X,y)
不幸的是,这会产生一个错误
ValueError: could not convert string to float: '(-inf, 4.50)'
我能做些什么来防止这个错误?
另外,如果我使用“bins”以外的其他选项,例如“索引”,binning_transform_params效果很好:{"continuous_feature": {"metric": "indices"}, "cat_feature": {"metric": "indices"}}
答: 暂无答案
评论