如何在Pandas中连接两列单词嵌入

2024-06-07 14:25:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我提取了两个不同文本(标题和描述)的单词嵌入,并希望在这两个嵌入上训练一个XGBoost模型。嵌入在每个维度上都是200,如下所示:

enter image description here

现在我能够在1嵌入数据上训练模型,它的工作原理是这样的:

x=df['FastText']  #training features
y=df['Category'] # target variable

#Defining Model
model = XGBClassifier(objective='multi:softprob')

#Evaluation metrics
score=['accuracy','precision_macro','recall_macro','f1_macro']

#Model training with 5 Fold Cross Validation
scores = cross_validate(model,  np.vstack(x), y, cv=5, scoring=score)

现在我想使用这两种功能进行训练,但如果我通过两列df,则会出现错误,如下所示:

x=df[['FastText_Title','FastText']]

我尝试过的一个解决方案是添加两个嵌入,如x1+x2,但这会显著降低精度。如何在cross_validate函数中使用这两个功能


Tags: 模型文本功能标题dfmodeltraining单词
2条回答

过去,对于多个输入,我做过以下工作:

features = ['FastText_Title', 'FastText']
x = df[features]
y = df['Category']

它正在创建一个包含这两个数据集的数组。 一旦创建了新数组,我通常还需要使用MinMaxScaler来缩放数据

根据您得到的错误,类型似乎有问题。尝试此操作,它会将您的功能转换为数字,并且应该可以工作:

df['FastText'] = pd.to_numeric(df['FastText'])
df['FastText_Title'] = pd.to_numeric(df['FastText_Title'])

相关问题 更多 >

    热门问题