M5-competition第一名代码解析学习-1-1. recursive_store_TRAIN.py

这段代码展示了如何使用Python进行数据加载、预处理和并行处理,以及用LightGBM训练模型。它涉及了目录设置、数据读取、特征工程、并行计算函数df_parallelize_run、以及模型参数设置。代码中还包含了训练模型、保存模型和内存管理的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/env python
# coding: utf-8

# ## Please input your directory for the top level folder
# folder name : SUBMISSION MODEL

# In[ ]:


dir_ = '/home/artemis/M5/A1-Yeon/' # input only here


# #### setting other directory

# In[ ]:


raw_data_dir = dir_+'2. data/'
processed_data_dir = dir_+'2. data/processed/'
log_dir = dir_+'4. logs/'
model_dir = dir_+'5. models/'


# In[ ]:


####################################################################################
########################### 1-1. recursive model by store ##########################
####################################################################################


# In[ ]:


ver, KKK = 'priv', 0
STORES_IDS = ['CA_1','CA_2','CA_3','CA_4','TX_1','TX_2','TX_3','WI_1','WI_2','WI_3']


# In[ ]:


import numpy as np
import pandas as pd
import os, sys, gc, time, warnings, pickle, psutil, random

from multiprocessing import Pool

warnings.filterwarnings('ignore')


# In[ ]:


########################### Helpers
#################################################################################
## Seeder
def seed_everything(seed=0):
    random.seed(seed)
    np.random.seed(seed)

    
## Multiprocess Runs
def df_parallelize_run(func, t_split):
    num_cores = np.min([N_CORES,len(t_split)])
    pool = Pool(num_cores)
    df = pd.concat(pool.map(func, t_split), axis=1)
    pool.close()
    pool.join()
    return df

该代码定义了一个函数 df_parallelize_run,它可以并行地运行一个给定函数 func,该函数接受一个输入参数 t_split,该参数会被拆分成多个子列表,每个子列表都会被传递给 func 进行计算。

该函数使用 np.min([N_CORES,len(t_split)]) 计算可用处理器数量与 t_split 子列表数量之间的最小值,以确保并行运行时不会超过处理器数量。

然后使用 Pool() 函数创建进程池,并将 num_cores 作为参数传递给 Pool() 函数来创建多个并行运行的进程。接着使用 pool.map() 函数并行地应用 func 函数,将 t_split 子列表分配给各个进程并运行。最后使用 pd.concat() 函数连接所有进程返回的结果,生成一个 Pandas DataFrame,并使用 pool.close() 和 pool.join() 函数关闭并销毁进程池。

最终函数返回并行计算后的 Pandas DataFrame
# In[ ]:


########################### Helper to load data by store ID
#################################################################################
# Read data
def get_data_by_store(store):
    
    # Read and contact basic feature
    df <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hailey的算法学习笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值