Код ниже взят из документации для Ruby Gem rroc. Мне отчаянно нужно рассчитать AUC для моего проекта AI. Однако я практически ничего не знаю о файловых операциях ввода-вывода Ruby, не имея возможности учиться. В документации говорится, что rroc ожидает массив размером 2 на 2, но первая строка кода ниже предполагает, что данные находятся в файле csv, и они будут отформатированы в my_data для roc для вычисления auc.
Я пробовал каждыйвозможная комбинация данных и массивов csv в качестве обоих файлов для первой строки для чтения или прямого ввода в строку, вычисляющую auc. В лучшем случае код работает без ошибок, но выдает бесполезный вывод 0. Я надеюсь, что, если бы я имел более полное представление о том, что делает эта строка, я мог бы либо решить проблему, либо отказаться от драгоценного камня с предыдущей версии этогодрагоценный камень, как показывали, был устаревшим, и этому 8 лет. Я взял данные из статьи, на которую ссылается автор драгоценных камней, и уверен, что это не проблема, но потом ...
Итак, чтобы уточнить вопрос: из этого утверждения мы можем сказать, какого родаданные должны быть в 'some_data.cvs'? И что будет с ним, чтобы сделать my_data?
require 'rroc'
my_data = open('some_data.csv').readlines.collect { |l| l.strip.split(",").map(&:to_f) }
auc = ROC.auc(my_data)
puts auc
Ниже я скопировал вывод для двух прогонов, первый со считанными данными массива, второй со значениями csv (каждый в отдельных файлах),Я добавил строку, чтобы прочитать входной файл, просто чтобы быть уверенным.
RoyiMac:ruby $ ruby PDaucT.rb
[[90, 1], [80, 1], [70,-1], [60,1], [55,1], [54,1], [53,-1], [52,-1], [51,1], [50,-1], [40,1], [39,-1], [38,1], [37,-1], [36,-1], [35,-1], [34,1], [33,-1], [30,1], [10,-1]]
0.0
RoyiMac:ruby $ ruby PDaucT.rb
90,1,80,1,70,-1,60,1,55,1,54,1,53,-1,52,-1,51,1,50,-1,40,1,39,-1,38,1,37,-1,36,-1,35,-1,34,1,33,-1,30,1,10,-1
0.0