gpt4 book ai didi

python - Sklearn 将 Pandas Dataframe 和 CSR 矩阵拆分为测试和训练集

转载 作者:太空狗 更新时间:2023-10-30 02:58:29 25 4
gpt4 key购买 nike

我正在尝试使用 scikit-learn DecisionTree 和 Pandas Dataframe 对文本进行分类:首先,我构建了一个如下所示的数据框:

   cat1  cat2                             corpus           title
0 0 1 Test Test Test erster titel
1 1 0 Test Super Super zweiter titel
2 0 1 Test Test Test dritter titel
3 0 1 Test Super Test vierter titel
4 1 0 Super Test Super fuenfter titel
5 1 1 Super einfacher Test Super fuenfter titel
6 1 1 Super simple einfacher Test Super fuenfter titel

然后我生成一个 TF-IDF 矩阵:

_matrix = generate_tf_idf_matrix(training_df['corpus'].values)

它返回一个 csr-Matrix(CountVectorizer -> TfidfTransformer)

我想用我的分类器

    train_X = _matrix
train_Y = training_df[['cat1','cat2']]

多标签分类

我现在的问题是:

如何将我的数据框和我的 csr 矩阵拆分为测试集和训练集?如果我在创建矩阵之前拆分我的数据框,则 csr 矩阵具有另一个大小,因为我的文档具有不同的特征。

限制:我不想将我的矩阵转换为数组,这样我就可以轻松地拆分它。

最佳答案

scikit-learns 包已经包含一个非常强大的模块,用于 train-val-test 交叉验证功能。您可以快速查看整个模块 sklearn.cross_validation (此处为 API)。

一般train_test_split会做的工作:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

但是,如果您的类 y 非常不平衡,您可能会对 StratifiedShuffleSplit 感兴趣它将数据拆分为训练/测试数据集,但保留每个训练/测试集中每个类的百分比。

所以在你的情况下,首先创建你的 X = _matrixy = training_df[['cat1', 'cat2']] 然后使用 scikit -学习的功能以将其拆分为训练/测试数据集。

关于python - Sklearn 将 Pandas Dataframe 和 CSR 矩阵拆分为测试和训练集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33827619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com