【问题标题】:Stratified KFold on sparse(csr) feature matrix稀疏(csr)特征矩阵上的分层 KFold
【发布时间】:2016-02-08 21:22:44
【问题描述】:

我有一个包含模型特征的大型稀疏矩阵(95000、12000)。我想在 python 中使用 Sklearn.cross_validation 模块进行分层 K 折交叉验证。但是,我还没有找到一种在 python 中索引稀疏矩阵的方法。

无论如何我可以在我的稀疏特征矩阵上执行 StratifiedKFold 吗?

【问题讨论】:

  • 很明显,您甚至没有尝试过。 Scikit-learn CV 在稀疏矩阵上工作得很好,因为 csr_matrices 是 scikit-learn 中的默认数据表示。
  • 它是否给您一个错误“无法索引整数”?

标签: python machine-learning scikit-learn sparse-matrix cross-validation


【解决方案1】:

试试这个:

# First make sure sparse matrix is to_csr
X_sparse = x.tocsr()
y= output
X_train = {}
Y_train = {}

skf = StratifiedKFold(5, shuffle=True, random_state=12345)
i=0
for train_index, test_index in skf.split(X,y):
    print("TRAIN:", train_index, "TEST:", test_index)
    X_train[i], X_test[i] = X[train_index], X[test_index]
    y_train[i], y_test[i] = y[train_index], y[test_index]
    i +=1

【讨论】:

    猜你喜欢
    • 2013-09-25
    • 1970-01-01
    • 2012-08-04
    • 2023-03-29
    • 2021-08-21
    • 2017-12-04
    • 2016-10-09
    • 2015-12-05
    • 2021-08-03
    相关资源
    最近更新 更多