我正在学习机器学习(ML),我决定将其用于垃圾邮件和非垃圾邮件分类.
问题是,对于我使用的示例数据,它是邮箱主题、重要性和发件人的形式,其中每个都是一个字符串.我想要做的是把它们变成像[1,0,0]
这样的向量,这样我就可以区分每个值.
我遇到的错误是不能用值替换向量,因为大小不匹配.
def vec(u_v):
y = len(u_v)
x = [0] * y
for j in range(y):
x[j] = 1
u_v[j] = tuple(x.copy())
x = [0] * y
return u_v
def arrange(df):
organized_df = df.copy()
for i in df.columns:
unique_values = df[i].unique()
replacement_values = vec(unique_values)
for j in range(len(unique_values)):
organized_df[i] = organized_df[i].replace({unique_values[j]: replacement_values[j]})
return organized_df
这是我用来组织数据帧的两个函数,这是我收到的错误
ValueError: operands could not be broadcast together with shapes (1000,) (6,)
我原以为会是这样的:
| Subject | Importance |
| -------- | -------- |
| [1,0,0] | [0,0,1] |
| [0,1,0] | [1,0,0] |