Я пытаюсь воспроизвести фрагмент кода python в R. Этот код использует функцию fit_transform()
из пакета sklearn.preprocessing.PolynomialFeatures
, и я не понимаю, почему функция poly()
R не выводит то же самое Результаты. Кто-нибудь знает, как получить тот же номер кода python в R и почему poly()
не возвращает те же результаты, что и fit_transform()
?
Код R
poly(c(17:25),4, simple = TRUE)
R выход
1 2 3 4
[1,] -0.5163978 0.5318160 -4.449492e-01 0.3128931
[2,] -0.3872983 0.1329540 2.224746e-01 -0.4693397
[3,] -0.2581989 -0.1519474 4.131671e-01 -0.2458446
[4,] -0.1290994 -0.3228883 2.860388e-01 0.2011456
[5,] 0.0000000 -0.3798686 2.352347e-17 0.4022911
[6,] 0.1290994 -0.3228883 -2.860388e-01 0.2011456
[7,] 0.2581989 -0.1519474 -4.131671e-01 -0.2458446
[8,] 0.3872983 0.1329540 -2.224746e-01 -0.4693397
[9,] 0.5163978 0.5318160 4.449492e-01 0.3128931
Python Код
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree = 4)
foo = np.array([range(17,26)]).reshape(-1,1)
print(poly.fit_transform(foo))
Python Выход
[[1.00000e+00 1.70000e+01 2.89000e+02 4.91300e+03 8.35210e+04]
[1.00000e+00 1.80000e+01 3.24000e+02 5.83200e+03 1.04976e+05]
[1.00000e+00 1.90000e+01 3.61000e+02 6.85900e+03 1.30321e+05]
[1.00000e+00 2.00000e+01 4.00000e+02 8.00000e+03 1.60000e+05]
[1.00000e+00 2.10000e+01 4.41000e+02 9.26100e+03 1.94481e+05]
[1.00000e+00 2.20000e+01 4.84000e+02 1.06480e+04 2.34256e+05]
[1.00000e+00 2.30000e+01 5.29000e+02 1.21670e+04 2.79841e+05]
[1.00000e+00 2.40000e+01 5.76000e+02 1.38240e+04 3.31776e+05]
[1.00000e+00 2.50000e+01 6.25000e+02 1.56250e+04 3.90625e+05]]