У меня есть 2 (обучающие и тестовые) очень большие разреженные матрицы, которые я хочу использовать для прогнозирования.
Для экспериментов, которые я хочу провести, я хочу взять только часть моих данных.
Я сделал скрипт, который создал файл с первыми k строками моего файла LibSVM поезда.
Проблемы с тестированием:
1) Учитывая, что это контролируемое обучение, мне нужно иметь одинаковые классы
2) Если я не беру все строки из обучения, иногда количество атрибутов может быть меньше для обучения, чем тестирования.
Есть ли какие-либо предложения о том, как адаптировать мой набор данных для тестирования к совместимости с моим учебным?
Это код функции, которая создает мой файл поезда.
def k_train_data(k):
with open("../Data/LSHTC/LSHTC1/train_corrected.txt", 'r') as file1:
with open("../Data/LSHTC/LSHTC1/train_"+str(k)+".txt", 'a+') as file2:
s = ""
for i in range(k):
line = file1.readline()
s += line
if i % 100 == 0:
file2.write(s)
s = ""
file2.write(s)
А вот код для чтения файлов:
X_train, y_train = load_svmlight_file("../Data/LSHTC/LSHTC1/train_500.txt")
X_test, y_test = load_svmlight_file("../Data/LSHTC/LSHTC1/test_corrected.txt", n_features=shape(X_train)[1])
для этого размера я получаю следующую форму:
поезд: (500, 1199727)
тест: (34800, 1199855)
(я знаю, что образец поезда слишком мал, но это всего лишь эксперимент)