文章

《天池龙珠 - 机器学习训练营》03.机器学习算法: 基于LightGBM的分类预测 学习笔记

一、学习知识点概要

LightGBM的背景、优缺点、代码实现、数据处理、算法实战、算法参数调整、特定问题的参数调整、底层原理。

二、学习内容

主要是学习LightGBM算法的使用,同时也掺杂着一些数据的处理,数据可视化、参数调整等内容。

三、学习问题与解答

在学习中遇到了一个坑,希望看到这篇博客的同学能够避开。 【问题描述】: 在天池实验室中运行训练代码后,训练速度极慢,1万条数据,竟然运行了高达半小时,我一度以为是这个算法不适合处理少量数据,只适合处理大量的数据(当然这很不符合常理)。 【解决方案】: 我把notbook下载到bending,通过本机的环境运行,结果秒出。然后我又把notebook上传到谷歌的colab,再次运行,还是秒出结果,这让我意识到,阿里天池的DSW出现了bug。所以,看到这,劝你别在天池上运行LightGBM模型。

Google Colab: Google Colab 阿里天池DSW: 阿里天池DSW

四、学习思考与总结

由于在本科阶段学习的决策树算法中没有LightGBM算法,所以,本节的学习算是全新的学习。 首先,从LightGBM的介绍和优缺点中,让我对LightGBM很感兴趣。 接着,通过教程的详细数据分析,我意识到机器学习并不是训练、测试就能够完成的,前期的数据处理也非常重要,要熟悉所用算法的特点,处理自己的数据集,比如空值问题、正负标签数量相差过大问题、属性之间的值有无相关性、数据有无过分偏离整体数据等问题,这些问题看起来不起眼,实际训练之后,对模型的影响很大。

同时我首次接触到了小提琴图 (Violin Plot),了解到它能很好的展示多组数据的分布状态以及概率密度。还通过热力图等数据图像知道将冗余数据剔除,并创建新的特征。

虽然模型没学习过,但是模型的使用都是大同小异,常规的训练、测试就不过多赘述。

之前学习过程中,从来不知道可以通过代码调出合适的参数,在本节的学习中,了解到了可以通过贪心算法网格调参贝叶斯调参等方法进行选择合适的模型参数。

最后学习了LightGBM模型的一些重要参数,基本参数就不过多赘述,和大多数模型都类似。 这里重点学习到了可以针对训练速度的参数进行调整针对准确率的参数调整针对过拟合的参数调整。 然后学习了LightGBM算法的基本原理,通俗易懂。

~收获颇深~

本文由作者按照 CC BY 4.0 进行授权