Как на 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?


Ответы (0 шт):