Как на Kaggle решить проблему с Your notebook tried to allocate more memory than is available. Ih has restarted
Пробую обучать модель на Kaggle. Для генерации признаков использую следующий код
import itertools
def itr_combinations_new_features(data):
tmp_df = data.copy()
old_columns = [item for item in tmp_df.columns.tolist() if item != 'rating']
tmp_df_sum_2 = [(pd.Series(tmp_df.loc[:,list(i)].sum(axis=1),\
name='_sum2_'.join(tmp_df.loc[:,list(i)].columns))) for i in list(itertools.combinations(old_columns,2))]
tmp_df_sum_3 = [(pd.Series(tmp_df.loc[:,list(i)].sum(axis=1),\
name='_sum3_'.join(tmp_df.loc[:,list(i)].columns))) for i in list(itertools.combinations(old_columns,3))]
tmp_df_multiplication = [(pd.Series(tmp_df.loc[:,i[0]]*tmp_df.loc[:,i[1]],\
name='_mult_'.join(tmp_df.loc[:,list(i)].columns))) for i in list(itertools.combinations(old_columns,2))]
df_sum_2 = pd.DataFrame(tmp_df_sum_2).T
df_sum_3 = pd.DataFrame(tmp_df_sum_3).T
df_multiplication = pd.DataFrame(tmp_df_multiplication).T
data = pd.concat([data, df_sum_2, df_sum_3, df_multiplication], axis=1, sort=False)
return data
В тренировочного датасета размер около 800 тыс строк и 7 признаков (колонок). Запускаю процесс и он сразу нагружает CPU Kaggle из-за чего вываливается "Your notebook tried to allocate more memory than is available. Ih has restarted."
Признаков немного в датасете, поэтому приходится генерировать их автоматически.
Как решить проблему?
Может код не оптимален? Или можно как-то ограничить нагрузку на CPU?