lgb train l1: 0 eval l1: 0 test l1: 0
前言:笔者在训练lgb模型时,发现训练集,测试集,验证集的loss全是0。
在查模型查环境都没问题后,详细查了数据,才发现了问题,原来是在读取parquet数据时,有一个库没有装好,导致不能读取出来。但是这个库又不报错,显示的是灰色,并且这是别人的源代码,别人能跑也使我忽略了它,在这里记录一下。
1.snappy包是灰色
在使用python读取parquet文件,并转化为dataframe时,使用的代码是
tmp_data = ParquetFile(path_prefix + curr_date + '/' + file).to_pandas()
在这里需要引入的包有
from fastparquet import ParquetFile
import pandas as pd
import snappy
但是其中snappy包显示是灰色,会让人误认为这个包没有被使用,如果你忽略了安装这个包,那么你不能从parquet文件中读出数据
2.安装snappy
我的pycharm不能直接安装snappy,需要在自己的conda环境中安装,如下命令
conda activate your-env-name
conda install -c conda-forge snappy
pip install python-snappy
这样就能正确读出数据并训练,安装snappy
3.总结
1.如果训练时loss一直为0,可能出问题的地方有模型参数,运行环境,训练数据等。
2.在使用别人的代码时,不要轻易删除和注释代码。