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

如何将doc2vec模型infer_vector生成的数组与额外特征结合用于下游模型

Doc2Vec向量与额外特征拼接的实现方案

你提到的两种方式都可以实现特征拼接,具体可以根据你的使用场景选择:

  • 直接数组拼接(适合快速建模,无需额外存储)
    首先将X_train_doc从数组元组转为二维Numpy数组:
import numpy as np
# 转换后形状为(样本数量, 300),对应你设置的vector_size=300
doc2vec_features = np.array(X_train_doc)

再将你的额外特征(比如Income)整理为形状为(样本数量, 额外特征数)的数组,直接用水平拼接得到完整的训练特征:

# 假设extra_features是已整理好的额外特征数组
X_train_total = np.hstack([doc2vec_features, extra_features])

得到的X_train_total可以直接输入逻辑回归等模型使用,不需要额外转成DataFrame。

  • 拆分存入DataFrame列(适合需要做特征分析、后续二次加工的场景)
    如果你需要保留结构化的特征表方便后续处理,就可以按你示例的方式拆分为多列,参考代码如下:
import pandas as pd
# 生成doc2vec特征的列名
doc_feature_cols = [f"doc_feature{i+1}" for i in range(doc2vec_features.shape[1])]
# 假设你原有包含Income等特征的DataFrame为train_df
train_df[doc_feature_cols] = pd.DataFrame(doc2vec_features, index=train_df.index)

处理后就可以得到你示例中的表结构,后续提取全量特征时直接取对应列即可。

额外注意事项

  • 你当前训练Doc2Vec时设置的epochs=1过小,通常推荐设置为10~20轮,否则生成的向量表征质量会较差,直接影响下游模型效果。
  • 逻辑回归对特征尺度敏感,拼接完成后建议对全量特征做标准化处理,避免收入这类数值跨度大的特征权重过高。
  • 如果使用Scikit-learn的建模流程,也可以用ColumnTransformer分别处理不同类型的特征,无需提前手动拼接,能更好避免交叉验证时的数据泄露问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:15:08