`# Convert string column to integer
def str_column_to_int(dataset, column):
class_values = [row[column] for row in dataset]
unique = set(class_values)
lookup = dict()
for i, value in enumerate(unique):
lookup[value] = i
for row in dataset:
row[column] = lookup[row[column]]
return lookup`
上面的代码是将字符串列转换为整数(或一个热编码)的最基本的机器学习片段。但是我很难理解代码esp。 class_values = [row[column] for row in dataset]
unique = set(class_values)
这两行做了什么使得它可以进行一次热编码?
答案 0 :(得分:1)
>>> dataset = [
... [1, 2],
... [1, 2],
... [1, 2]
... ]
>>> column = 1
>>> class_values = [row[column] for row in dataset]
>>> class_values
[2, 2, 2]
>>> unique = set(class_values)
>>> unique
{2}
答案 1 :(得分:0)
所以class_values = [row[column] for row in dataset]
就是所谓的列表理解。这是在python中创建列表的简便方法。这句话相当于说:
class_values = []
for row in dataset:
class_values.append(row[column])
这些在Python中非常常见,因此请务必阅读它们并与它们一起练习。它们使您的代码更清晰,节省时间。
可以在此处准备好设置:Sets
简而言之,它们是一个独特的分组。因此,如果您创建一组列表,则会获得一个包含列表中所有唯一值的对象