python – Sklearn将Pandas Dataframe和CSR Matrix分成测试和训练集
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Sklearn将Pandas Dataframe和CSR Matrix分成测试和训练集,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1588字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试使用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:
_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-learn包已经包含了一个非常强大的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 = _matrix和y = training_df [[‘cat1′,’cat2’]],然后使用scikit-learn的功能将其拆分为训练/测试数据集.
内容总结
以上是互联网集市为您收集整理的python – Sklearn将Pandas Dataframe和CSR Matrix分成测试和训练集全部内容,希望文章能够帮你解决python – Sklearn将Pandas Dataframe和CSR Matrix分成测试和训练集所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。