python - 交叉验证和文本分类

标签 python scikit-learn cross-validation

我有同样的问题,已在 here 中提出过:

我有一个关于在 sklearn 中的文本分类中使用交叉验证的问题。在交叉验证之前对所有数据进行向量化是有问题的,因为分类器会“看到”测试数据中出现的词汇。 Weka通过过滤分类器来解决这个问题。该函数的 sklearn 等价物是什么?我的意思是,对于每次折叠,特征集都会不同,因为训练数据不同。

但是,因为我在分类步骤和分类步骤之间对数据进行了大量处理,所以我无法使用管道......并且尝试自行实现交叉验证作为整个过程的外循环...关于这方面的任何指导,因为我对 python 和sickitlearn 都很陌生

最佳答案

我认为使用交叉验证迭代器作为外循环是一个好主意,也是一个起点,可以使您的步骤清晰易读:

from sklearn.cross_validation import KFold
X = np.array(["Science today", "Data science", "Titanic", "Batman"]) #raw text
y = np.array([1, 1, 2, 2]) #categories e.g., Science, Movies
kf = KFold(y.shape[0], n_folds=2)
for train_index, test_index in kf:
    x_train, y_train = X[train_index], y[train_index] 
    x_test, y_test = X[test_index], y[test_index]
    #Now continue with your pre-processing steps..

关于python - 交叉验证和文本分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38026842/

相关文章:

python - 通过在列表前面添加反斜杠来转义列表中的保留字符

python - Spyder 导入 basemap 时出现 PROJ_LIB 错误

scikit-learn - scikit-learn(sklearn) : TypeError: 'KFold' object is not iterable 中的 GridSearchCV

python - scikit-learn 中的 class_weight 参数是如何工作的?

python - scikit-learn 中每个数据拆分的交叉验证指标

r - 如何通过交叉验证生成混淆矩阵?

python - 网格搜索CV : How to specify test set?

python - 加快 pymongo 在此循环中的插入速度

python - 在 PS1 中显示 pipenv virtualenv

python - 关于python : Scaling,的岭回归问题及解释