1

У меня есть большая разреженная матрица (95000, 12000), содержащая функции моей модели. Я хочу сделать стратифицированную проверку скрещивания K с использованием модуля Sklearn.cross_validation в python. Тем не менее, я не нашел способ индексирования разреженной матрицы в python.Стратифицированный KFold на разреженной матрице характеристик (csr)

Есть ли способ выполнить StratifiedKFold на моей разреженной матрице свойств?

+0

ли он выдаст сообщение об ошибке "целое число, не могут быть проиндексированы? – CoderBC

ответ

1

Совершенно ясно, что вы даже не попробовали. Scikit-learn CV работает отлично на разреженных матрицах, так как csr_matrices - это представление данных по умолчанию в scikit-learn.

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 
Смежные вопросы