Я пытаюсь предсказать метку из данных в DataFrame с помощью RandomForestRegressor.
Для этого я сначала удаляю бесполезные столбцы, чтобы регрессор не пытался их использовать, особенно идентификатор строки, а затем использовать функция get_dummy () для преобразования строковых значений в индикаторы, а затем разделения данных на обучающие и тестовые образцы.
# columns selection (let say there was also a column 'ID' so we drop this one)
features = features[['L', 'A', 'B']]
# string to indicators
features = pd.get_dummies(features)
# Saving labels
labels = np.array(features['L'])
# Remove the labels from the features
features = features.drop('L', axis = 1)
# Convert to numpy array
features = np.array(features)
# Divide into training and testing samples
train_features, test_features, train_labels, test_labels = train_test_split(features, labels, test_size = 0.33, random_state = 42)
# Instantiate model and fit
rf = RandomForestRegressor(n_estimators = 100, random_state = 42, max_depth = 8)
rf.fit(train_features, train_labels)
# predict
predictions = rf.predict(test_features)
Итак, на этом этапе у меня есть образец данных, выглядящий как
A B_b1 B_b2
1 0 1
2 1 0
И прогнозы выглядят как L 100 200
Как я могу после получения прогноза поместить его рядом с исходными данными, если ссылка с идентификатором потеряна? Я ожидаю чего-то вроде:
ID A B L
11 1 b2 100
12 2 b1 200
Я могу думать о сложных способах (в основном из-за преобразования из pd.dataframe в np.array), но что было бы наиболее прямым и читаемым (не самым эффективным ) путь? Спасибо!