Если у меня есть умеренное количество базовых функций и я получаю от них умеренный порядок полиномиальных функций, может возникнуть путаница, чтобы знать, какой столбец массива признаков preprocess_XX
соответствует преобразованию основных функций.Как я могу увидеть эффект sklearn.preprocessing.PolynomialFeatures?
Я использовал, чтобы сделать что-то вроде следующего, с более старой версией sklearn (может быть 0,14?):
import numpy as np
from sympy import Symbol
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(4)
x1 = Symbol('x1')
x2 = Symbol('x2')
x3 = Symbol('x3')
XX = np.random.rand(1000, 3) # replace with the actual data array
preprocess_symXX = poly.fit_transform([x1, x2, x3])
preprocess_XX = poly.fit_transform(XX)
print preprocess_symXX
Это было удивительным. Он выдавал бы результат, например, [1, x1, x2, x3, x1**2, ... ]
, который дал бы мне знать, какие функции полинома имеют мои столбцы preprocess_XX
.
Но теперь, когда я это делаю, он жалуется TypeError: can't convert expression to float
. Это исключение возникает из-за функции в sklearn.utils.validation
, называемой check_array()
, которая пытается отличить ввод от poly.fit_transform()
до dtype=float
.
У вас есть рекомендации о том, как увидеть, что полином основных функций соответствует какому столбец в выводе fit_transform()?
, теперь sympy
больше не похоже на работу с fit_transform
?