如何查看SymbolicTransformer生成的新特征的公式
时间: 2024-05-08 22:16:26 浏览: 10
SymbolicTransformer生成的新特征的公式可以通过查看其属性"function_set_"中的函数列表以及变量名称来推断。具体步骤如下:
1. 导入SymbolicTransformer模块和需要的数据集
```python
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from gplearn.genetic import SymbolicTransformer
boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42)
```
2. 使用SymbolicTransformer生成新特征
```python
function_set = ['add', 'sub', 'mul', 'div', 'sqrt', 'log', 'abs', 'neg', 'inv', 'max', 'min']
gp = SymbolicTransformer(generations=10, population_size=1000, hall_of_fame=10, function_set=function_set,
metric='rmse', random_state=42, n_jobs=-1, verbose=1)
gp.fit(X_train, y_train)
X_train_trans = gp.transform(X_train)
```
3. 查看新特征的公式
```python
for i, expr in enumerate(gp._program):
print('Feature {}: {}'.format(i, expr))
```
其中,`gp._program`保存了生成的新特征的表达式,每个表达式对应一个新的特征。可以通过打印`gp._program`来查看所有新特征的表达式。
另外,也可以通过查看`gp._best_programs`属性来获取最佳表现的新特征及其表达式。例如:
```python
print('Best Program: {}'.format(gp._best_programs[0]))
```
这将打印出最佳表现的新特征及其表达式。