我的数据集包含很多带有布尔值的列,我真的需要更改它们以便将它们插入算法吗?
我现在要使用 KNN,但稍后会测试其他算法,所以我正在尝试准备我的数据集
我的数据集包含很多带有布尔值的列,我真的需要更改它们以便将它们插入算法吗?
我现在要使用 KNN,但稍后会测试其他算法,所以我正在尝试准备我的数据集
在 Python 中,True并隐False式转换为整数:
True == 1 # True!
False == 0 # True!
尽管它们不是相同的对象 - 您可以使用True is 1返回来测试它False。
这意味着在纯 Python 中运行的算法无需转换即可工作。许多库/算法的某些部分在后台用 C/C++ 实现,在这种情况下,您可能会遇到问题。
您可以在 Pandas DataFrame 上尝试将模型作为布尔值。如果它崩溃,你知道你必须转换为整数/浮点数。
即使它没有崩溃,您也可以将值转换为整数或浮点数并运行它以进行比较。这是一个简短的例子:
In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'a':[0, 2, 3, 4, 5], 'b':[True, False, True, False, False]})
In [3]: df
Out[3]:
a b
0 0 True
1 2 False
2 3 True
3 4 False
4 5 False
将所有内容转换为布尔值
In [4]: df.astype(bool)
Out[4]:
a b
0 False True
1 True False
2 True True
3 True False
4 True False
In [5]: df.astype(float)
Out[5]:
a b
0 0.0 1.0
1 2.0 0.0
2 3.0 1.0
3 4.0 0.0
4 5.0 0.0