Сложный вопрос. Требует досконального изучения. Для этого есть два пути, точнее я бы сказал один:
Сначала надо изучить те библиотеки, которые уже есть и что они делают и задокументировать их для себя.
Дальше изучить теоретическое машинное обучение и так же задокументировать и сравнить 2 своих списка задокументированого. И дальше использовать то,что есть, или разрабатывать то, чего ещё нет.