Scikit learn 如何使用Sklearn线性回归与doc2vec输入

Scikit learn 如何使用Sklearn线性回归与doc2vec输入,scikit-learn,linear-regression,gensim,doc2vec,Scikit Learn,Linear Regression,Gensim,Doc2vec,我有25000个文本文档(推特和报纸文章),表示为使用doc2vec模型获得的向量。现在,我想用回归器(多元线性回归)来预测连续价值产出——在我的例子中是英国消费者信心指数。 我的代码永远运行。我做错了什么 我从Excel导入数据,并将其拆分为x_train和x_dev。数据由预处理文本和CCI连续值组成 # Import doc2vec model dbow = Doc2Vec.load('dbow_extended.d2v') dmm = Doc2Vec.load('dmm_extended

我有25000个文本文档(推特和报纸文章),表示为使用doc2vec模型获得的向量。现在,我想用回归器(多元线性回归)来预测连续价值产出——在我的例子中是英国消费者信心指数。 我的代码永远运行。我做错了什么

我从Excel导入数据,并将其拆分为x_train和x_dev。数据由预处理文本和CCI连续值组成

# Import doc2vec model
dbow = Doc2Vec.load('dbow_extended.d2v')
dmm = Doc2Vec.load('dmm_extended.d2v')
concat = ConcatenatedDoc2Vec([dbow, dmm]) # model uses vector_size 400

def get_vectors(model, input_docs):
    vectors = [model.infer_vector(doc.words) for doc in input_docs]
    return vectors

# Prepare X_train and y_train
train_text = x_train["preprocessed_text"].tolist()
train_tagged = [TaggedDocument(words=str(_d).split(), tags=[str(i)]) for i, _d in list(enumerate(train_text))]
X_train = get_vectors(concat, train_tagged)
y_train=x_train['CCI_UK']

# Fit regressor 
from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit(X_train, y_train)

# Predict and evaluate
prediction=reg.predict(X_dev)
print(classification_report(y_true=y_dev,y_pred=prediction),'\n')
由于装配从未完成,我怀疑是否使用了错误的输入。但是,不会显示错误消息,代码只会永远运行。我做错了什么


非常感谢你的帮助

变量X_train是一个列表或列表列表(因为函数get_vectors()返回一个列表),而sklearn线性回归的输入应该是一个二维数组

尝试使用以下方法将X_列转换为阵列:

X_train = np.array(X_train)

这应该有帮助

谢谢你的快速帮助,阿米特!!这是完美的解决方案!