Я пробовал символическую регрессию и задавался вопросом, как ее использовать, например, для аппроксимации строки треугольника Паскаля. Я делаю данные с помощью:
Это не дает модели, которая хоть сколько-нибудь будет точной. Я предполагаю, что основная причина заключается в том, что он не может выполнить x**x, который необходим для аппроксимации факториала.
Есть ли какой-либо способ разрешить символическую регрессию использовать бинарный оператор ** или иным образом соответствует строке треугольника Паскаля?
Я пробовал символическую регрессию и задавался вопросом, как ее использовать, например, для аппроксимации строки треугольника Паскаля. Я делаю данные с помощью: [code]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
y = pascals_triangle_row X = np.array(range(len(y))).reshape(-1, 1) [/code] Настройте модель: [code]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) ) [/code] И, наконец, соответствует модели: [code]model.fit(X, y) [/code] Это не дает модели, которая хоть сколько-нибудь будет точной. Я предполагаю, что основная причина заключается в том, что он не может выполнить x**x, который необходим для аппроксимации факториала. Есть ли какой-либо способ разрешить символическую регрессию использовать бинарный оператор ** или иным образом соответствует строке треугольника Паскаля?