【问题标题】:TF IDF weighed frequency scores in Test data, model trained using SVCTF IDF 加权测试数据中的频率分数,使用 SVC 训练的模型
【发布时间】:2019-06-26 15:28:49
【问题描述】:

我正在针对文本描述和对应的标签训练一个预测模型。我正在使用 SVC 训练具有 tf idf 加权词频的数据语料库。我想了解是否有我想要分类的一组新数据(测试,这里不使用火车测试拆分),是否应该使用 tf idf.如果是,应该单独对测试数据执行还是与训练数据一起执行?

【问题讨论】:

    标签: python machine-learning svm tf-idf


    【解决方案1】:

    通常,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)
    

    【讨论】:

    • 感谢及时回复,在测试数据上使用训练集的TfIdf分数有意义吗####训练数据的TfIdf分数#### tfidf = load(" tfidf Combined_80perc_v7_df5.pickle") #导入 TFIDF 模型 #################### #向量化数据框以将输入数据输入模型 test_features = tfidf.transform(df_check. text_combined).toarray()
    • 你能分享你的代码sn-p吗?这为我们提供了一个清晰的画面。
    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 2017-11-26
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2021-12-08
    相关资源
    最近更新 更多