Нужно сделать супербыстрое исполнение следующего алгоритма:
В исходном файле matrix.txt лежит матрица данных, первый столбец это выход Y (матрица Nx1), остальные стобцы это входы X (матрица NxM).
В программу передаются аргументы - массив номеров столбцов factors (K элементов).
Для каждой строки i вычисляем предсказание Ypred следующим образом:
- для каждой строки j, такой что i!=j считаем квадрат расстояния от строки i следующим образом:
--сумма по K квадратов разности X[i,k]-X[j,k], где k - номер столбца указанный в массиве factors
- ранжируем строки j по квадрату расстоянию от строки i
- для ближайшей половины списка усредняем Y и прибавляем к Ypred
- для дальней половины списка усредняем Y и отнимаем от Ypred
Считаем корреляцию Y и Ypred, записываем ее в файл result.txt
Тестовый файл с данными тут: http://www.russian-trader.ru/matrix.txt
В исходном файле matrix.txt лежит матрица данных, первый столбец это выход Y (матрица Nx1), остальные стобцы это входы X (матрица NxM).
В программу передаются аргументы - массив номеров столбцов factors (K элементов).
Для каждой строки i вычисляем предсказание Ypred следующим образом:
- для каждой строки j, такой что i!=j считаем квадрат расстояния от строки i следующим образом:
--сумма по K квадратов разности X[i,k]-X[j,k], где k - номер столбца указанный в массиве factors
- ранжируем строки j по квадрату расстоянию от строки i
- для ближайшей половины списка усредняем Y и прибавляем к Ypred
- для дальней половины списка усредняем Y и отнимаем от Ypred
Считаем корреляцию Y и Ypred, записываем ее в файл result.txt
Тестовый файл с данными тут: http://www.russian-trader.ru/matrix.txt