You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解Sklearn LogisticRegression双向量特征输入的正确语法

解决Sklearn LogisticRegression同时输入查询与文档向量的问题

要同时将query vector和doc vector作为模型输入,核心是把两个向量拼接成单个一维特征向量,让输入特征矩阵符合(样本数, 总特征数)的格式,以下是两种可行的实现方式:

方法1:用Pandas Apply拼接向量

利用apply逐行拼接两个向量,再转换为模型可接受的格式:

import pandas as pd
from sklearn.linear_model import LogisticRegression

y = training_data["relevant"]
# 逐行拼接query和doc向量,生成新的特征列表
X = training_data.apply(lambda row: row["query vector"] + row["doc vector"], axis=1).tolist()

clf = LogisticRegression()
clf.fit(X, y)

方法2:用Numpy水平拼接数组

先将向量列转换为二维数组,再通过hstack合并:

import numpy as np
from sklearn.linear_model import LogisticRegression

y = training_data["relevant"]
# 将向量列转为二维numpy数组
query_features = np.array(training_data["query vector"].tolist())
doc_features = np.array(training_data["doc vector"].tolist())
# 水平拼接两个特征数组,得到最终输入矩阵
X = np.hstack([query_features, doc_features])

clf = LogisticRegression()
clf.fit(X, y)

报错原因说明

之前出现ValueError: setting an array element with a sequence是因为直接传入DataFrame时,数据是嵌套的列表结构,Sklearn无法识别这种格式。必须将每个样本的两个向量合并为一个一维特征,最终输入矩阵的形状应为(样本数量, 查询向量长度+文档向量长度),才能被模型正确处理。

内容的提问来源于stack exchange,提问作者LimeFire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 21:12:42