Как использовать символическую регрессию для аппроксимации треугольника Паскаля?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать символическую регрессию для аппроксимации треугольника Паскаля?

Сообщение Anonymous »

Я пробовал символическую регрессию и задавался вопросом, как ее использовать, например, для аппроксимации строки треугольника Паскаля. Я делаю данные с помощью:

Код: Выделить всё

import math

def print_pascals_triangle_row(n):
row = []
for k in range(n + 1):
coefficient = math.comb(n, k)
row.append(coefficient)
return row

n = 20
pascals_triangle_row = print_pascals_triangle_row(n)
Это дает:

Код: Выделить всё

[1,
20,
190,
1140,
4845,
15504,
38760,
77520,
125970,
167960,
184756,
167960,
125970,
77520,
38760,
15504,
4845,
1140,
190,
20,
1]

y = pascals_triangle_row
X = np.array(range(len(y))).reshape(-1, 1)
Настройте модель:

Код: Выделить всё

from pysr import PySRRegressor
model = PySRRegressor(
maxsize=15,
niterations=5000,  # < Increase me for better results
binary_operators=["+", "*"],
unary_operators=[
"log",
"exp",
"inv",
"square",
"sqrt",
"sign",
# ^ Custom operator (julia syntax)
],
# ^ Define operator for SymPy as well
elementwise_loss="loss(prediction, target) = (prediction - target)^2",
# ^ Custom loss function (julia syntax)
)
И, наконец, соответствует модели:

Код: Выделить всё

model.fit(X, y)
Это не дает модели, которая хоть сколько-нибудь будет точной. Я предполагаю, что основная причина заключается в том, что он не может выполнить x**x, который необходим для аппроксимации факториала.
Есть ли какой-либо способ разрешить символическую регрессию использовать бинарный оператор ** или иным образом соответствует строке треугольника Паскаля?

Подробнее здесь: https://stackoverflow.com/questions/793 ... s-triangle
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»