用于从给定数据集中生成新数据行的gplearn库

问题描述 投票:2回答:1

我正在使用gplearn库(遗传编程)从给定的数据集中生成新规则。目前,我有11行数据和24列(功能),我将这些数据作为SymbolicRegressor方法的输入以获取新规则。但是,我只得到一条规则。通常,如果我给出11行数据作为输入,则不应该获得11条新规则。如果我做错了,正确的做法是什么?

import numpy as np
import pandas as pd
from sklearn import preprocessing
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import ExtraTreesRegressor
from gplearn.genetic import SymbolicRegressor

data = pd.read_csv("D:/Subjects/Thesis/snort_rules/ransomware_dataset.csv")

x_train = data.iloc[:,0:23]
y_train = data.iloc[:,:-1]

gp = SymbolicRegressor(population_size=11,
                           generations=2, stopping_criteria=0.01,
                           p_crossover=0.8, p_subtree_mutation=0.1,
                           p_hoist_mutation=0.05, p_point_mutation=0.05,
                           max_samples=0.9, verbose=1,
                           parsimony_coefficient=0.01, random_state=0)

gp.fit(x_train, y_train)
print(gp._program)

输出为:

X7 /(X15 *(-X16 * X20-X19 + X2))

python machine-learning genetic-programming gplearn
1个回答
0
投票

您有能力解决这个问题吗?我有一个同样的问题,它只能打印一代您可以分享您的研究成果吗?

© www.soinside.com 2019 - 2024. All rights reserved.