如何在Python中定义分类模型的二进制输出



我正在用机器学习预测糖尿病前期。

我有x个功能,我的输出是糖尿病前期(是或否(

糖尿病前期(LBXGH(的定义范围为5.7-6.4,因此该范围应为1。有关此功能的其余值必须为0。

到目前为止,我已经尝试了许多组合,每个人都报告了错误。

这就是我现在的处境:

df[df['LBXGH'] >= 5.7 | [df['LBXGH'] <= 6.4 ]] = 1
df[df['LBXGH'] < 5.7 | [df['LBXGH'] > 6.4]] = 0
TypeError: unsupported operand type(s) for |: 'float' and 'list')

目标是用0或1替换所有关于约束的值,这样我就可以进一步进行特征选择过程。

假设这是设置:

df[df['LBXGH'] >= 5.7 | [df['LBXGH'] <= 6.4 ]] = 1
df[df['LBXGH'] < 5.7 | [df['LBXGH'] > 6.4]] = 0

看起来问题可能是你没有正确地构建逻辑和任务。当你用括号括起来并创建一个值时会发生什么?

df.loc[(df['LBXGH'] >= 5.7) & (df['LBXGH'] <= 6.4 ), 'PDB'] = 1
df.loc[(df['LBXGH'] < 5.7) | (df['LBXGH'] > 6.4), 'PDB'] = 0

如果"LBXGH"在您描述的范围内,代码将创建一列"PDB"并赋值1,否则赋值0。这应该排除任何缺少值的条目。

在第一个输入中将OR(|(更改为AND(&(有些无关紧要,因为它将被第二个输入校正,但从技术上讲,您只需要大于或等于5.7 AND小于或等于6.4 的值

最新更新