Python 使用EvolutionaryFS时,只有整数、切片(`:`)、省略号(`…`)、numpy.newaxis(`None`)以及整数或布尔数组是有效的索引
我用遗传算法来选择特征 所以我使用了EvolutionaryFS库Python 使用EvolutionaryFS时,只有整数、切片(`:`)、省略号(`…`)、numpy.newaxis(`None`)以及整数或布尔数组是有效的索引,python,pandas,dataframe,numpy,Python,Pandas,Dataframe,Numpy,我用遗传算法来选择特征 所以我使用了EvolutionaryFS库 import pandas as pd import numpy as np import tensorflow as tf from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import Dense, Dropout, BatchNormalization, Activation from ten
import pandas as pd
import numpy as np
import tensorflow as tf
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Dropout, BatchNormalization, Activation
from tensorflow.python.keras.utils import np_utils
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, StandardScaler
from EvolutionaryFS import GeneticAlgorithmFS
seed = 0
np.random.seed(seed)
df = pd.read_csv("/content/drive/MyDrive/RT_predict/Urine_DnS/Dataset/0607/0607Dragon_0607edit.csv")
dataset = df.values
X = dataset[:,0:-1]
Y = dataset[:,-1]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=seed)
input_dim = X.shape[1]
def build_model(n1_neurons=1000, n2_neurons=500):
model = keras.models.Sequential()
model.add(keras.layers.InputLayer(input_shape=input_dim))
model.add(keras.layers.Dense(n1_neurons, activation="relu"))
model.add(keras.layers.Dense(n2_neurons, activation="relu"))
model.add(keras.layers.Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mae', 'mse'])
return model
data_dict={0:{'x_train':X_train,'y_train':Y_train,'x_test':X_test,'y_test':Y_test}}
columns_list=list(df.columns)
model_object=build_model
evoObj=GeneticAlgorithmFS(model=model_object,data_dict=data_dict,cost_function='mean_squared_error',average='',cost_function_improvement='decrease',columns_list=columns_list,generations=100,population=50,prob_crossover=0.9,prob_mutation=0.1,run_time=60000)
best_columns=evoObj.GetBestFeatures()
print(best_columns)
我得到了这样的错误:
IndexError Traceback (most recent call
last) <ipython-input-20-33e6ab735f97> in <module>()
47 model_object=build_model
48 evoObj=GeneticAlgorithmFS(model=model_object,data_dict=data_dict,cost_function='mean_squared_error',average='',cost_function_improvement='decrease',columns_list=columns_list,generations=100,population=50,prob_crossover=0.9,prob_mutation=0.1,run_time=60000)
---> 49 best_columns=evoObj.GetBestFeatures()
50 print(best_columns)
2 frames /usr/local/lib/python3.7/dist-packages/EvolutionaryFS.py in
_getCost(self, population_array)
95 for i in self.data_dict.keys():
96
---> 97 x_train=self.data_dict[i]['x_train'][columns_list]
98 y_train=self.data_dict[i]['y_train']
99
IndexError: only integers, slices (`:`), ellipsis (`...`),
numpy.newaxis (`None`) and integer or boolean arrays are valid indices
索引器错误回溯(最近的调用)
最后)在()
47模型\对象=构建\模型
48 evoObj=遗传算法(模型=模型=对象,数据=数据,成本函数=均方误差,平均值='',成本函数改善=减少,列列表=列列表,世代=100,总体=50,概率交叉=0.9,概率变异=0.1,运行时间=60000)
--->49最佳_列=evoObj.GetBestFeatures()
50份打印(最佳列)
2帧/usr/local/lib/python3.7/dist-packages/EvolutionaryFS.py in
_getCost(自我,填充数组)
95表示i在self.data_dict.keys()中:
96
--->97 x_列=自身数据目录[i]['x_列'][列列表]
98 y_train=self.data_dict[i]['y_train']
99
索引器:仅整数、片(`:`)、省略号(`…`),
numpy.newaxis(`None`)和整数或布尔数组是有效的索引
我认为数据集有问题,但我无法解决此问题。对不起,我不知道您为什么留下此链接。您是否尝试过阅读此链接?你知道它是如何解释为什么你要发布完整的错误的吗?您是否理解您发布的错误消息是如何不完整的,请按照下面的示例进行操作?我如何发布完整的错误?复制并通过回溯中的所有行,将其追溯到您的问题中。