我提取了两个不同文本(标题和描述)的单词嵌入,并希望在这两个嵌入上训练一个XGBoost
模型。嵌入在每个维度上都是200
,如下所示:
现在我能够在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
函数中使用这两个功能
过去,对于多个输入,我做过以下工作:
它正在创建一个包含这两个数据集的数组。 一旦创建了新数组,我通常还需要使用MinMaxScaler来缩放数据
根据您得到的错误,类型似乎有问题。尝试此操作,它会将您的功能转换为数字,并且应该可以工作:
相关问题 更多 >
编程相关推荐