《天池龙珠 - 机器学习训练营》03.机器学习算法: 基于LightGBM的分类预测 学习笔记
一、学习知识点概要
LightGBM的背景、优缺点、代码实现、数据处理、算法实战、算法参数调整、特定问题的参数调整、底层原理。
二、学习内容
主要是学习LightGBM算法的使用,同时也掺杂着一些数据的处理,数据可视化、参数调整等内容。
三、学习问题与解答
在学习中遇到了一个坑,希望看到这篇博客的同学能够避开。 【问题描述】: 在天池实验室中运行训练代码后,训练速度极慢,1万条数据,竟然运行了高达半小时,我一度以为是这个算法不适合处理少量数据,只适合处理大量的数据(当然这很不符合常理)。 【解决方案】: 我把notbook下载到bending,通过本机的环境运行,结果秒出。然后我又把notebook上传到谷歌的colab,再次运行,还是秒出结果,这让我意识到,阿里天池的DSW出现了bug。所以,看到这,劝你别在天池上运行LightGBM模型。
四、学习思考与总结
由于在本科阶段学习的决策树算法中没有LightGBM算法,所以,本节的学习算是全新的学习。 首先,从LightGBM的介绍和优缺点中,让我对LightGBM很感兴趣。 接着,通过教程的详细数据分析,我意识到机器学习并不是训练、测试就能够完成的,前期的数据处理也非常重要,要熟悉所用算法的特点,处理自己的数据集,比如空值问题、正负标签数量相差过大问题、属性之间的值有无相关性、数据有无过分偏离整体数据等问题,这些问题看起来不起眼,实际训练之后,对模型的影响很大。
同时我首次接触到了小提琴图 (Violin Plot)
,了解到它能很好的展示多组数据的分布状态以及概率密度。还通过热力图等数据图像知道将冗余数据剔除,并创建新的特征。
虽然模型没学习过,但是模型的使用都是大同小异,常规的训练、测试就不过多赘述。
之前学习过程中,从来不知道可以通过代码调出合适的参数,在本节的学习中,了解到了可以通过贪心算法
、网格调参
、贝叶斯调参
等方法进行选择合适的模型参数。
最后学习了LightGBM模型的一些重要参数,基本参数就不过多赘述,和大多数模型都类似。 这里重点学习到了可以针对训练速度的参数进行调整
、针对准确率的参数调整
、针对过拟合的参数调整
。 然后学习了LightGBM算法的基本原理,通俗易懂。
~收获颇深~