Кодирование признаков
Необходимо реализовать Kfold схему с пятью фолдами. Разбить данные на 5 фолдов и проитерироваться по ним: по 4 обучающих фолда для подсчета средних значений таргета по item_id и этими значениями необходимо заполнить валидационный фолд на каждой итерации.
df = pd.DataFrame({'item_id': [19, 27, 28, 29, 32],
'target': [0.0, 0.0, 6.0, 3.0, 1.0],
'item_target_enc': [0.0222, 0.056834, 0.141176, 0.037383, 1.319042]})
# You will need to compute correlation like that
corr = np.corrcoef(all_data['target'].values, encoded_feature)[0][1]
print(corr)
Ожидаемы ответ: 0.4165
Как это можно реализовать с помощью функции map?
Спасибо!
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример из документации:
>>> import numpy as np
>>> from sklearn.model_selection import KFold
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([1, 2, 3, 4])
>>> kf = KFold(n_splits=2)
>>> kf.get_n_splits(X)
2
>>> print(kf)
KFold(n_splits=2, random_state=None, shuffle=False)
>>> for train_index, test_index in kf.split(X):
... print("TRAIN:", train_index, "TEST:", test_index)
... X_train, X_test = X[train_index], X[test_index]
... y_train, y_test = y[train_index], y[test_index]
TRAIN: [2 3] TEST: [0 1]
TRAIN: [0 1] TEST: [2 3]