Я пытаюсь запустить этот код, но я получаю сообщение об ошибке
TypeError: unhashable тип: 'set'
def exhaustive(model,train_X,train_y,valid_X,valid_y):
low_err=600000**2
for x in range(len(train_X.columns),0,-1):
n=x
#print("number of features "+str(n))
ss=findsubsets(train_X.columns,n)
print("_"*50)
print(str(len(ss))+" model(s) using "+ str(n)+ " features")
for z in range(0,len(ss)):
model = model
reg = model.fit(train_X[ss[z]], train_y)
pred_train = reg.predict(train_X[ss[z]])
err_train= mean_squared_error(train_y, pred_train)
pred_valid = reg.predict(valid_X[ss[z]])
err_valid = mean_squared_error(valid_y, pred_valid)
mae_valid = mean_absolute_error(valid_y,pred_valid)
if err_valid < low_err:
low_err=err_valid
low_err_features=list(ss[z])
print("_"*50)
print(low_err_features)
print("RMSE train: "+str(err_train ** .5))
print("MSE validation: "+str(low_err))
print("RMSE validation: "+str(low_err ** .5))
print("MAE validation: "+str(mae_valid))
abs(valid_y-pred_valid).hist()
plt.show()
print("_"*50)
exhaustive(model=LinearRegression(normalize=False,n_jobs=-1), train_X=train_X, train_y=train_y, valid_X=valid_X, valid_y=valid_y)