Чтение формата svmLigh с помощью h2o

Используя пакет h2o R (v 3.24.0.5) для некоторого глубокого обучения, мне нужно импортировать в него большую разреженную матрицу [2M * 10k]. Я пытался использовать fwrite, но получил слишком большую ошибку cholmod, поэтому выбрал svmlight. Исходная матрица выглядит так:

    Count    Dist    
1   nan     10.1266
2   859.124 10.8198
3   nan     10.1266

Для этого я взял пакет sparsio, запись идет нормально, но при чтении файла с помощью h2o.importFile я заметил что-то не так: я получаю индексы столбцов перед каждым числом, как вы можете видеть ниже:

library(sparsio)
write_svmlight(HiC_mat.All, file="Rdata/mat_kmer-NA.txt")


HIC_df = h2o.importFile("Rdata/mat_kmer-NA.txt")

HIC_df[1:3,1:3]
  C1        C2        C3
1  0     0:nan 1:10.1266
2  0 0:859.124 1:10.8198
3  0     0:nan 1:10.1266

Любая идея о том, как я могу избавиться от них?

Данные должны выглядеть так:

  C1        C2        C3
1  0       nan     10.1266
2  0    859.124    10.8198
3  0       nan     10.1266

person Exenter    schedule 08.07.2019    source источник
comment
Можете ли вы обновить свой вопрос, указав версию H2O-3, которую вы используете, а также то, как, по вашему мнению, будет выглядеть ваш набор данных, если он был правильно импортирован? Вы также можете указать parser_type как SVMLight. Благодарность!   -  person Lauren    schedule 09.07.2019
comment
@Lauren закончила редактирование. Функция importFile не имеет аргумента parse_type, при попытке uploadFile я получаю сообщение об ошибке «NewChunk имеет тип Numeric, но Vec имеет тип String». Попытка синтаксического анализа после его импорта   -  person Exenter    schedule 09.07.2019
comment
То же самое с синтаксическим анализом после его импорта, так что я предполагаю, что проблема связана с записью данных с помощью sparsio?   -  person Exenter    schedule 09.07.2019


Ответы (1)


Хорошо, похоже, проблема действительно в написании файла svm, который я использовал:

write_svmlight(x, y = numeric(nrow(x)), file = filename, zero_based = FALSE) 

и это работает на данный момент

person Exenter    schedule 09.07.2019