В настоящее время я работаю над созданием классификатора с использованием c5.0.У меня есть набор данных из 8000 записей, и каждая запись имеет свой идентификационный номер (1-8000).При тестировании производительности классификатора мне пришлось сделать 5 комплектов из 10:90 (данные обучения: данные теста).Конечно, любые обучающие случаи не могут появиться снова в тестовых случаях, и дубликаты не могут появляться ни в одном из наборов.
Чтобы решить проблему случайного выбора примеров для обучающих данных и убедиться, что их нельзя выбрать длятестовые данные, которые я разработал, ужасно медленный метод;
заполните файл номерами от 1 до 8000 в отдельных строках.
выберите случайным образомномер строки (в диапазоне от 1 до 8000) и использование содержимого строки в качестве номера идентификатора обучающего примера.
записать все невыбранные номера в новый файл
уменьшить диапазон генератора случайных чисел на 1
повторить
Тогда все не выбранные числаиспользуется в качестве тестовых данных.Это работает, но это медленно.Чтобы ускорить процесс, я мог бы использовать List :: Util 'shuffle', чтобы просто 'случайно' перемешать и массив этих чисел.Но насколько случайным является случайное перемешивание?Очень важно поддерживать такой же уровень точности.Извините за эссе, но кто-нибудь знает, как на самом деле работает «shuffle».Любая помощь была бы великолепна