как решить ValueError: не удалось преобразовать строку в float: ‘RL’

#python #machine-learning #jupyter-notebook

#python #машинное обучение #jupyter-ноутбук

Вопрос:

Когда я пытаюсь подогнать модель

 from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression
model = RandomForestRegressor(n_jobs=-1)
model.fit(train_features, y)
 

Я получаю

 ValueError: could not convert string to float: 'RL'
 

Комментарии:

1. привет, это может быть проблема с данными, пожалуйста, предоставьте дополнительную информацию

2. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Traceback) в вопрос (не комментарий) в виде текста (не скриншота). Есть и другая полезная информация.

3. машинное обучение работает с числами — и, похоже, у вас есть строка RL в ваших данных — и вы также должны преобразовать ее в число.

Ответ №1:

Это потому, что у вас есть атрибут со str значением, RandomForestRegressor который принимает в качестве входных данных только числовые значения.

Вы можете решить эту проблему, используя следующее из sklearn:

  1. LabelEncoder
  2. OneHotEncoder Один Хотенкодер
  3. Бинаризатор

Комментарии:

1. когда я помещаю этот код: для label, content в train_features.items(): if pd.api.types.is_string_dtype(content): print(label) я ничего не получил, это означает, что нет строкового значения, верно?