【发布时间】:2019-06-26 15:28:49
【问题描述】:
我正在针对文本描述和对应的标签训练一个预测模型。我正在使用 SVC 训练具有 tf idf 加权词频的数据语料库。我想了解是否有我想要分类的一组新数据(测试,这里不使用火车测试拆分),是否应该使用 tf idf.如果是,应该单独对测试数据执行还是与训练数据一起执行?
【问题讨论】:
标签: python machine-learning svm tf-idf
我正在针对文本描述和对应的标签训练一个预测模型。我正在使用 SVC 训练具有 tf idf 加权词频的数据语料库。我想了解是否有我想要分类的一组新数据(测试,这里不使用火车测试拆分),是否应该使用 tf idf.如果是,应该单独对测试数据执行还是与训练数据一起执行?
【问题讨论】:
标签: python machine-learning svm tf-idf
通常,TfIdf 矢量化器仅适用于训练数据,为了获得相同格式的测试数据,我们执行转换操作。这样做主要是为了避免数据泄漏。请参考TfidfVectorizer: should it be used on train only or train+test。
因此,首先使用 tf-idf 矢量化器拟合和转换您的训练数据,然后对于任何传入的数据集,您可以使用相同的 tf-idf 矢量化器对 tf-idf 矢量进行所需的转换。
你可以这样做,
x_train, x_test, y_train, y_test = train_test_split(
x, y, test_size=0.3, random_state=101
)
transformer = TfidfTransformer()
x_train_tf = transformer.fit_transform(x_train)
x_test_tf = transformer.transform(x_test)
【讨论】: