我有一个二元分类器,它采用200元素输入特征向量,如下所示
[ id, v1, v2, ...,v190, v200, class]
[ 7, 0, 0, ..., 0, 0, 0 ],
[ 8, 0, 1, ..., 0, 0, 1 ],
[ 9, 0, 0, ..., 0, 0, 1 ],
对于每个元素X,它可以在v1-v200中具有任何属性集
sql = 'SELECT x_id, x_attr FROM elements WHERE x_hash = %s'
cur.execute(sql, (x_hash,))
x1 = cur.fetchone()
x1 # x1 returns the id and a list of attributes
(123, [v2,v56,v200])
鉴于输出我想创建一个特征向量,如上面的那个,如果列表中的属性与set v1-v200中的any属性匹配,那么它将被设置为1.
[ id, v1, v2,...,v56,...,v190, v200, class ],
[ 123, 0, 1,...,1,..., 0, 1, ? ],
我怎么能在熊猫或蟒蛇中做到这一点?
答案 0 :(得分:2)
首先初始化一个pandas数据帧然后构建你的示例:
df = pd.DataFrame(None, columns=['v'+str(i) for i in range(1,201)])
sql = 'SELECT x_id, x_attr FROM elements WHERE x_hash = %s'
cur.execute(sql, (x_hash,))
x1_id, features = cur.fetchone()
df.loc[x1_id] = 0 # Initializes all values for the ID to zero.
df.loc[x1_id, features] = 1 # Sets relevant features to a value of one.
我没有上课,因为我不确定你是如何使用它的。