python - Scikit-learn PolynomialFeatures 背后的公式是什么?
问题描述
每当我使用 Sklearn 的多项式特征并通过此代码转换“X”值使其成为多项式时,
在此之前我的 X 值是:-
[[ 1 11]
[ 2 12]
[ 3 13]
[ 4 14]
[ 5 15]
[ 6 16]
[ 7 17]
[ 8 18]
[ 9 19]
[10 20]]
注意:它有多个 X 值,这意味着它有多个自变量
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)
print(X_poly)
Sklearn 正在返回这个矩阵,除了具有所有平方值之外,该矩阵还具有更多列,
[[ 1. 1. 11. 1. 11. 121.]
[ 1. 2. 12. 4. 24. 144.]
[ 1. 3. 13. 9. 39. 169.]
[ 1. 4. 14. 16. 56. 196.]
[ 1. 5. 15. 25. 75. 225.]
[ 1. 6. 16. 36. 96. 256.]
[ 1. 7. 17. 49. 119. 289.]
[ 1. 8. 18. 64. 144. 324.]
[ 1. 9. 19. 81. 171. 361.]
[ 1. 10. 20. 100. 200. 400.]]
当我在网上搜索我的问题时,我已经看到了这个 Stackoverflow 答案https://stackoverflow.com/a/51906400/12188405 。
那么任何人都可以告诉我一个通用公式或一个python代码,它可以分别返回该矩阵到任何度数值吗?简而言之,我想制作一个 python 程序,它可以使用一个度数(可以是从 0 到无穷大的任何值)的参数,它会返回我提供的类似矩阵的 Sklearn。
解决方案
我建议您阅读此链接中的 Sklearn PolynomialFeatures 的源代码。
它有两种不同的选择:
仅交互=真
- 组合('ABCD', 2) AB AC AD BC BD CD
仅交互=假
- combination_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD
第一个使用itertools 包的combinations 方法,第二个使用combinations_with_replacement 来创建新功能。
推荐阅读
- android - (Kotlin) RecyclerView 的位置在尝试单击项目时返回 -1
- bash - 我可以从 azure cli 创建一个 Azure DevOps 变量组并传递一些值吗?
- jquery - 当类是变量时在 2 个 div 之间切换
- fortran - OpenMP 代码仅使用 4 个线程而不是指定的 72 个线程
- python - 如何模拟嵌套函数?
- ios - 滚动视图用户交互禁用 Swift 4
- javascript - 为什么 getElementsByTagName() 返回一个 html 集合,但 getElementsByTagName()[0] 返回未定义?
- dynamics-crm - Dynamics CRM 通过 Web API 处理大量数据
- karate - 空手道不匹配带有命名空间的 xml
- react-native - react-native 中的静态图片