Ошибка: объект типа 'float' не имеет len () - PullRequest
0 голосов
/ 13 апреля 2020

Вот ошибка:

TypeError: object of type 'float' has no len().  

Код:

from scipy.stats import randint as sp_randint
from sklearn.model_selection import RandomizedSearchCV
param_dist = {"max_depth":sp_randint(2,5),
              "learning_rate":random.uniform(0,0.2),
              "n_estimators":sp_randint(200,350),
              "min_child_weight":sp_randint(2, 8),
              "gamma":random.uniform(0,4),
              "subsample":random.uniform(0.7,0.3),
              "colsample_bytree":random.uniform(0.7,0.3),
              "reg_alpha":random.uniform(100,300),
              "reg_lambda":random.uniform(100,300)}

model_rs_xgb = RandomizedSearchCV(xgb.XGBClassifier(n_jobs=-1,random_state=25), param_distributions=param_dist,
                                   n_iter=30,scoring='neg_log_loss',cv=5,n_jobs=-1)
model_rs_xgb.fit(X_train,y_train)
pickle.dump(model_rs_xgb,open('model_rs_xgb.p','wb'))

1 Ответ

0 голосов
/ 13 апреля 2020

Я думаю, это проблема с вашим тренировочным набором.

Пожалуйста, проверьте ваш тренировочный набор, если есть какое-либо значение None или любое число с плавающей запятой.

для нулевого удаления из всего Dataframe используйте

     df = df.dropna(inplace=True)

для проверки любого целого числа или Значение с плавающей точкой в ​​вашем Dataframe (обучающем наборе) используется:

   df['traing_body'].str.len()

Модель хочет получить строку, но она получает значение с плавающей запятой.

...