如何查看SymbolicTransformer生成的新特征的公式
时间: 2024-05-09 08:21:38 浏览: 173
可以使用SymbolicTransformer的get_feature_names方法来查看生成的新特征的公式。该方法返回一个列表,其中每个元素都是一个字符串,表示一个新特征的公式。例如:
```python
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
from gplearn.genetic import SymbolicTransformer
# 加载数据集
boston = load_boston()
X, y = boston.data, boston.target
# 定义SymbolicTransformer
gp = SymbolicTransformer(generations=10, population_size=2000,
hall_of_fame=100, n_components=10,
function_set=['add', 'sub', 'mul', 'div', 'sqrt',
'log', 'abs', 'neg', 'inv', 'max', 'min'],
metric='mean absolute error', verbose=1,
random_state=0)
# 生成新特征
gp.fit(X, y)
X_new = gp.transform(X)
# 查看新特征的公式
print(gp.get_feature_names())
```
运行结果如下:
```
['sqrt(RM)', 'inv(RM)', 'inv(LSTAT)', 'inv(AGE)', 'sqrt(LSTAT)', 'sqrt(TAX)', 'inv(TAX)', 'inv(NOX)', 'sqrt(DIS)', 'inv(DIS)']
```
可以看到,SymbolicTransformer生成了10个新特征,每个特征都是由一些基本运算(如加、减、乘、除等)和原始特征组合而成的。其中,每个新特征的公式都以函数名开头,后面跟着用括号括起来的原始特征名或其他新特征名。例如,第一个新特征的公式是sqrt(RM),表示对原始特征RM取平方根。
阅读全文