Подбор важности фич для k-nearest neighbors (ну или других гиперпараметров) спуском похожим на градиентный

Экспериментируя с простейшей задачкой машинного обучения я обнаружил, что интересно было бы подобрать в довольно широком диапазоне значения 18 гиперпараметров одновременно. В моём случае всё было на столько несложно, что задачку можно было бы взять и грубой компьютерной силой. Обучаясь чему-то мне бывает очень интересно изобрести какой-нибудь велосипед. Иногда получается ПОДРОБНЕЕ