Решил ее получив результат 0.64 по тестовой выборке и сейчас пытаюсь улучшить этот результат учитывая все больше и больше факторов. Сейчас пытаюсь заполнить пустые значения возраста и для этого учитываю данные из тренировочной выборки и тестовой так же деля ее по группам(мужчины/женщины).
data_train = pd.read_csv('data/train.csv') data_test = pd.read_csv('data/test.csv') # Делаем замену пола: 0 - женский, 1 - мужской data_train['Sex'] = np.where(data_train['Sex'] == 'female', 0, 1) data_test['Sex'] = np.where(data_test['Sex'] == 'female', 0, 1) # Объединяем два dataframe из двух выборок тестовой и тренировочной # для получения усредненных результатов data = pd.concat([data_train, data_test], axis=0).groupby('PassengerId').sum() # Получаем медиану возраста для двух групп пассажиров: мужчины, женщины median_age_male = data[data.Sex == 1]['Age'].median() median_age_female = data[data.Sex == 0]['Age'].median() data_age_new_man = data_train[data_train.Sex == 1][['PassengerId', 'Age']].copy() data_age_new_woman = data_train[data_train.Sex == 0][['PassengerId', 'Age']].copy() data_age_new_man['Age'].fillna(median_age_male, inplace=True) data_age_new_woman['Age'].fillna(median_age_female, inplace=True) data_age_new = pd.concat([data_age_new_man, data_age_new_woman], axis=0).groupby('PassengerId').sum() # Получаем тренировочную выборку с непустыми полями возраста data = pd.concat([data_train, data_age_new], axis=0).groupby('PassengerId').median()
Я реализовал вот таким вот огромным костылем. Подскажите более простой метод. Спасибо.