如何查看SymbolicTransformer生成的新特征的公式
时间: 2024-06-11 11:05:23 浏览: 10
SymbolicTransformer生成的新特征的公式可以通过以下步骤查看:
1. 首先,需要将生成的新特征转换为Pandas DataFrame格式。
```python
import pandas as pd
import numpy as np
from sklearn.datasets import make_regression
from sklearn.compose import TransformedTargetRegressor
from sklearn.pipeline import make_pipeline
from gplearn.genetic import SymbolicTransformer
# 生成数据集
X, y = make_regression(n_samples=100, n_features=4, noise=0.1)
# 定义SymbolicTransformer对象
gp = SymbolicTransformer(generations=10, population_size=1000, tournament_size=20,
function_set=('add', 'sub', 'mul', 'div', 'sqrt', 'log', 'abs'),
metric='mean absolute error', random_state=42, verbose=1)
# 拟合数据
gp.fit(X, y)
# 将生成的新特征转换为Pandas DataFrame格式
new_features = pd.DataFrame(gp.transform(X))
```
2. 然后,可以通过访问SymbolicTransformer对象的`hall_of_fame_`属性来获取最佳个体的公式。
```python
# 获取最佳个体的公式
best_individual = gp.hall_of_fame_[0]
# 打印最佳个体的公式
print(best_individual)
```
3. 最后,可以通过将最佳个体的公式与新特征的列名进行匹配,以查看每个新特征的公式。
```python
# 获取新特征的列名
new_feature_names = ['X' + str(i) for i in range(new_features.shape[1])]
# 将最佳个体的公式与新特征的列名进行匹配
for i in range(len(new_feature_names)):
best_individual = best_individual.replace('X' + str(i), new_feature_names[i])
print(new_feature_names[i], ':', best_individual[i])
```