对于一个机器学习问题,我每个样本都有一个位置特征(美国的一个州),看起来像这样:整个特征向量看起来像这样:
array(['oklahoma', 'florida', 'idaho', ..., 'pennsylvania', 'alabama', 'washington'], dtype=object)
我无法直接将此输入到sklearn算法中,因此我必须将其转换为数值特征,但我不知道该如何做。将这些字符串特征转换成数值特征的最佳方法是什么?ASCII转换行得通吗?
编辑:我希望每个州都有自己独特的数值。
回答:
如果你只是想将每个城市名称转换为一个独特的数值,那么hash(text)
会很好用。
可能需要一个更复杂的哈希函数,因为这不能保证每次运行Python时都相同。事实上,在Python 3.3中,除非你特别设置,否则每次都会以不同的方式加盐。hashlib
模块包含了各种不同的哈希算法,可能更适合你的需求。