Скажу често - замечательная задумка и блестящая реализация.
Закрытие кода - правильное решение, если мы не хотим повторения судьбы semargl.me.
Кроме карт видятся и другие возможности подобного датасета
Очень надеюсь увидеть продолжение
PS У меня самого больше года пылится предиктор, нормально предсказывающий даже редкие субклады, но довести до ума и выпустить в мир никак руки не дойдут. Так что снимаю шляпу перед автором данного кода.
Спасибо за столь высокую оценку, Владимир
Буду стараться! А какие у Вас есть идеи по поводу альтернативных применений?
Круто! Значит предусмотрю возможность встраивания пользовательского модуля предсказания SNP
Я пытался создать единый прорицатель - ни на основе решающего леса, ни на основе градиентного бустинга ничего вразумительного у меня не вышло: для таких алгоритмов, с сохранением разумных сроков обучения, надо взвешенную и более-менее крупную выборку иметь, а не жалкие 1-3 образца на веточку - с методами на основе Байесовских вероятностей, как у Nevgen'а, я не знаком, так что в их сторону даже не глядел.
Выкрутился путем разделения выборки на "Подветвь 1, Подветвь N, Все остальные": из-за того, что "Все остальные" - это огромная выборка на фоне "Подветвей", то деревья правильно предсказывают "То" просто имея представление о том, как выглядит "Не то"
Но проблему внутренней/внешней гомоплазии метод не решает.
Подумывал, кстати, использовать пророк Nevgen для однократного предсказания ветви и сохранения значения в файл, но тут же отказался от этой мысли по 3 соображениям:
1) атаковать некоммерческий сайт 100к+ запросов невежливо, а ведь код изначально планировалось делать общедоступным, т.е. таким нападателем мог оказаться не я один. Вот если бы у них можно было купить токен на N запросов, то было бы вежливо: и хороших ребят поддержать, и самому получить клевые предсказания;
2) у них приятный API, но он обрабатывает 1 образец за 2 секунды, т.е. на 100к образцов ушло бы 100000*2/60/60/24=2.5 дня безостановочной долбежки;
3) ответ выдается в довольно упоротом формате "A->B->C", который надо еще правильно распотрошить и состыковать с древом FTDNA.