Здравствуйте, я смотрю видео на Udemy.Мы пытаемся применить случайный лесной классификатор.Прежде чем мы сделаем это, мы преобразуем один из столбцов во фрейме данных в строку.Столбец «Кабина» представляет такие значения, как «4C», но чтобы уменьшить количество уникальных значений, мы хотим просто использовать первое число для отображения на новый столбец «Cabin_mapped».
data['Cabin_mapped'] = data['Cabin'].astype(str).str[0]
# this transforms the letters into numbers
cabin_dict = {k:i for i, k in enumerate(
data['Cabin_mapped'].unique(),0)}
data.loc[:,'Cabin_mapped'] = data.loc[:,'Cabin_mapped'].map(cabin_dict)
data[['Cabin_mapped', 'Cabin']].head()
Эта часть ниже просто разбивает данные на обучающие и тестовые наборы.Параметры не имеют большого значения для выяснения проблемы.
X_train_less_cat, X_test_less_cat, y_train, y_test = \
train_test_split(data[use_cols].fillna(0), data.Survived,
test_size = 0.3, random_state=0)
Я получаю здесь ошибку после подгонки, говоря, что не могу преобразовать строку в число с плавающей точкой.rf = RandomForestClassifier (n_estimators = 200, random_state = 39) rf.fit (X_train_less_cat, y_train)
Похоже, мне нужно преобразовать один из входных данных обратно в float, чтобы использовать алгоритмы случайных лесов.Это несмотря на то, что в учебном видео ошибка не отображается.Если бы кто-нибудь мог мне помочь, это было бы здорово.