В этой ссылке scikit-learn проект: http://scikit-learn.org/stable/auto_examples/linear_model/plot_polynomial_interpolation.html показано, как применять полиномиальную интерполяцию для аппроксимации определенной функции, например.scikit learn: полиномиальная интерполяция более высоких измерений
Этот пример предназначен для двумерных точек. Однако:
Каким образом он может быть расширен до 3D-точек?
Или это даже возможно с помощью scikit-learn? В документации еще не нашлось подсказок.
Заранее благодарю за любую информацию и с наилучшими пожеланиями.
Dan
Edit 1:
Спасибо Робин за ваши ответы! Также указывая на быстрый рост сложности, был ценный намек!
я наткнулся на одну проблему до сих пор, что связано с 2D-массив X в model.fit(X,z)
2D-массив выглядит следующим образом:
[[ 0.1010101 0.35353535]
[ 0.4040404 0.65656566]
[ 0.80808081 1.11111111]
[ 1.21212121 1.31313131]]
в то время как функция г это те из параболоида:
(((x**2)/(4**2) + ((y**2)/(8**2))) * 2)
Запуск model.fit(X,z)
возвращает следующее сообщение об ошибке:
ValueError: Found arrays with inconsistent numbers of samples: [10 20]
От чего возникает несогласованность?
Да, просто попробуйте сделать 'model = make_pipeline (PolynomialFeatures (degree), Ridge())' then 'model.fit (X, y)' с X, имеющим более двух столбцов (и «степень» - степень вы хотите, чтобы ваша интерполяция была). Хотя визуализация может стать более сложной, прогнозирование целевых значений должно работать очень хорошо. Сообщите нам, есть ли какие-либо конкретные проблемы. –
Чтобы добавить некоторую справочную информацию: [Полиномиальные функции] (http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html # sklearn.preprocessing.PolynomialFeatures) шаг предварительной обработки просто создает все возможные комбинации ваших функций, что означает, что даже для входа 2d и степени 2 пространство объектов уже 6 мерное ('1, a, b, a * b , a * a, b * b'). С большим количеством функций это число просто растет еще быстрее. –
@RobinSpiess есть что-нибудь, о чем нужно заботиться, создавая массив X с более чем двумя столбцами? Как видно из моего отредактированного сообщения, появляется сообщение об ошибке, которое показывает странные размеры [10, 20]. Заранее благодарю за любые подсказки! – Daniyal