Python-библиотека GP_ELITE восстановила третий закон Кеплера всего по 8 точкам данных

Разработчик опубликовал на GitHub библиотеку GP_ELITE, инструмент символьной регрессии на генетическом программировании, который ищет не «чёрный ящик», а читаемую математическую формулу, связывающую переменные с целевой величиной. Библиотека написана на чистом Python и NumPy, без Julia, компиляции или GPU: достаточно pip install gp-elite. Она рассчитана на небольшие экспериментальные наборы данных (до 10 переменных, 100, 5000 точек), законы деградации материалов, калибровку датчиков, инженерные зависимости, кривые доза-эффект, физические законы.
В демонстрационном примере библиотеке дали только расстояния и периоды обращения восьми планет, и за несколько секунд она самостоятельно вывела третий закон Кеплера (T = a^1,5). На другом примере GP_ELITE точно восстановила закон Кулона q1·q2/(4πεr²) с точностью 1−R² ≈ 8×10⁻³² благодаря встроенной подгонке констант методом Левенберга-Марквардта, которая, по заявлению автора, работает в 6, 14 раз быстрее конкурирующих подходов на задачах с большим числом констант.
Из других возможностей: мультизапуск с объединением архивов кандидатов для повышения надёжности; вывод фронта Парето (весь спектр компромиссов между сложностью формулы и точностью); режим прогноза/экстраполяции с проверкой поведения формулы за пределами обучающих данных; устойчивый режим (robust=True) на основе функции потерь Хьюбера и итеративного взвешенного метода наименьших квадратов, он восстанавливает верный закон, даже если 10, 20% данных зашумлены выбросами, тогда как обычный метод наименьших квадратов в этом случае даёт неверный результат. На реальных данных (168 циклов заряда аккумулятора) библиотека вывела закон деградации ёмкости (SOH) с R² = 0,996 на данных, не участвовавших в обучении.
Автор приводит собственные бенчмарки: на замороженном наборе из 15 физических уравнений Фейнмана GP_ELITE точно восстановила формулу в 10 случаях из 15 (67%) с машинной точностью и в 14 из 15 (93%), с точностью до 0,001; при сопоставлении на тех же данных с библиотекой gplearn (при щедром бюджете для конкурента) GP_ELITE выигрывает точное совпадение в 67% случаев против 40% у gplearn. На реальной задаче прогноза деградации батарей NASA медианный R² при экстраполяции на новые данные составил +0,52 против +0,34 у линейной регрессии, без единой модели с расходящимся прогнозом.
Автор описывает нишу проекта так: инженер в лаборатории, студент или техник указывает на CSV-файл, и получает проверенный физический закон, не становясь при этом разработчиком. Слабые места, которые автор признаёт сам: хаотические последовательности (например, длина цепочки Коллатца с её случайной компонентой), задачи с более чем 15, 20 переменными (пространство поиска взрывается) и крупные датасеты, где точность важнее интерпретируемости, там побеждают ансамблевые модели. Лицензия, MIT, обсуждение на Hacker News собрало 19 баллов и 9 комментариев.
Ключевые факты
- GP_ELITE, открытая Python/NumPy-библиотека символьной регрессии: ищет читаемую формулу вместо чёрного ящика, ставится через pip install без GPU и компиляции
- По данным всего 8 планет (расстояние и период обращения) библиотека самостоятельно вывела третий закон Кеплера (T = a^1,5) за секунды
- Точно восстанавливает физические константы: закон Кулона воспроизведён с точностью 1−R² ≈ 8×10⁻³² благодаря встроенной подгонке методом Левенберга-Марквардта
- На бенчмарке из 15 уравнений Фейнмана, 10/15 точных совпадений (67%) против 40% у библиотеки gplearn на тех же данных
- Есть устойчивый режим против выбросов (Huber-loss + IRLS) и режим экстраполяции; на реальных данных NASA по деградации батарей обошла линейную регрессию по качеству прогноза
Почему это важно
Большинство современных инструментов машинного обучения выдают предсказание, но не объяснение: почему модель предсказывает именно так, остаётся скрытым внутри весов. Символьная регрессия решает другую задачу, она ищет компактную математическую формулу, которую можно прочитать, понять и проверить руками, как обычный физический закон. GP_ELITE показывает это на предельно наглядном примере: дав программе только расстояния и периоды обращения восьми планет, без единой подсказки о физике, она самостоятельно вывела формулу, которая математически эквивалентна третьему закону Кеплера. Это демонстрация того, что при небольшом объёме чистых данных такие инструменты в принципе способны переоткрывать реальные физические закономерности, а не просто подгонять кривую под точки.
Кому это важно
Инструмент нацелен на инженеров, исследователей и студентов, которые работают с небольшими экспериментальными выборками и хотят получить не предсказание, а понятную формулу зависимости: деградация материалов и аккумуляторов, калибровка датчиков, инженерные корреляции, кривые доза-эффект в биологии и медицине, учебные физические задачи. Автор прямо формулирует аудиторию, лабораторный инженер, студент или техник без опыта разработки, который указывает на CSV-файл с данными и получает готовую проверенную формулу.
Как это применить
Библиотека ставится командой pip install gp-elite (зависимости, numpy, pandas, scikit-learn) либо собирается из исходников с GitHub. Работать можно как через Python-API (функция symbolic_regression принимает матрицу признаков, целевую переменную, имена признаков, набор допустимых операторов, «физический», тригонометрический, полный или полиномиальный, число поколений и профиль скорости), так и через интерактивное консольное меню: режим 6 берёт произвольный CSV-файл, сам определяет столбцы, откладывает контрольную выборку и печатает найденный закон вместе с отчётом о его обобщающей способности. Для зашумлённых данных с выбросами достаточно передать флаг robust=True.
Можно ли доверять
Автор подкрепляет заявления собственными бенчмарками с фиксированным сидом: на наборе из 15 классических физических уравнений (Feynman benchmark) GP_ELITE точно восстановила формулу в 10 случаях из 15 (67%) с машинной точностью и почти во всех остальных, с точностью до 0,001; при прямом сравнении с библиотекой gplearn на идентичных данных и разбиениях GP_ELITE опережает её по доле точных совпадений (67% против 40%). На реальных данных NASA по деградации батарей библиотека показала лучший медианный R² при экстраполяции, чем линейная регрессия, и ни одной модели с расходящимся прогнозом. Тем не менее это цифры от самого автора проекта, независимой проверки или рецензирования пока не было, а обсуждение на Hacker News (19 баллов, 9 комментариев) собрало умеренный, а не массовый интерес.
Риски и подводные камни
Автор сам перечисляет границы применимости: инструмент плохо справляется с хаотическими последовательностями со случайной компонентой (пример, длина цепочки Коллатца), теряет эффективность при более чем 15, 20 переменных из-за взрывного роста пространства поиска и уступает ансамблевым моделям там, где на первом месте сырая точность предсказания, а не читаемость формулы. Проект, небольшой опенсорсный релиз одного разработчика без истории публикаций и рецензируемых результатов, поэтому заявленные бенчмарки стоит воспринимать как самозаявленные до появления независимых воспроизведений.