How does one get polynomial features like in python but for MatLab?
14 views (last 30 days)
Is there code that gets the polynomial features of a vector like in:
e.g. for 1D 1,x,x^2 for degree 2. Ideally like the link I posted.
Ideally, is there no built in function in matlab that does this for me?
Sanjana Ramakrishnan on 19 Oct 2017
Edited: Walter Roberson on 11 Jan 2018
There is not a direct way of creating a polynomial matrix in MATLAB. Refer the below link for information on polynomial matrices:
However, you can create a vector of polynomial coefficients in MATLAB to represent a polynomial: https://www.mathworks.com/help/matlab/math/create-and-evaluate-polynomials.html
You can then append the vectors vertically to form a polynomial matrix
Steven Lord on 12 Jan 2018
For one variable, I think you want the vander function.
For multiple variables, use the x2fx function from Statistics and Machine Learning Toolbox. If you want terms with a degree greater than 2 (like x1.^2.*x2, with a degree of 2+1 = 3) you'd have to build the model input rather than using one of the predefined options like 'quadratic'. I believe there are some discussions on Answers and some files on the File Exchange for generating all combinations of N numbers that add up to a particular value that you could use to help you build the model input in that case.