天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类
本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:训练营

一 原理简介:

它是一款基于GBDT(梯度提升决策树)算法的分布式梯度提升框架,为了满足缩短模型计算时间的需求,LightGBM的设计思路主要集中在减小数据对内存与计算性能的使用,以及减少多机器并行计算时的通讯代价。

LightGBM可以看作是XGBoost的升级豪华版,在获得与XGBoost近似精度的同时,又提供了更快的训练速度与更少的内存消耗。
LightGBM的主要优点

  1. 简单易用。提供了主流的Python\C++\R语言接口,用户可以轻松使用LightGBM建模并获得相当不错的效果。
  2. 高效可扩展。在处理大规模数据集时高效迅速、高准确度,对内存等硬件资源要求不高。
  3. 鲁棒性强。相较于深度学习模型不需要精细调参便能取得近似的效果。 LightGBM直接支持缺失值与类别特征,无需对数据额外进行特殊处理

LightGBM的主要缺点

  1. 相对于深度学习模型无法对时空位置建模,不能很好地捕获图像、语音、文本等高维数据。
  2. 在拥有海量训练数据,并能找到合适的深度学习模型时,深度学习的精度可以遥遥领先LightGBM。

二 目标

  1. 了解 LightGBM 的参数与相关知识
  2. 掌握 LightGBM 的Python调用并将其运用到英雄联盟游戏胜负预测数据集上

三 实战:(天气数据集预测)

Step1: 库函数导入
基础的函数库包括:

  1. numpy (Python进行科学计算的基础软件包),
  2. pandas(pandas是一种快速,强大,灵活且易于使用的开源数据分析和处理工具),
  3. matplotlib和seaborn绘图。推荐教程

Step2: 数据读取/载入

  1.  !wget https://tianchi-media.oss-cn-beijing.aliyuncs.com/DSW/8LightGBM/high_diamond_ranked_10min.csv##下载需要用到的数据集
    
  2. df = pd.read_csv('./high_diamond_ranked_10min.csv')## 利用Pandas自带的read_csv函数  --读取并---转化为DataFrame格式
    
  3.  y = df.blueWins
    

Step3: 数据信息简单查看

  1.  df.info()      ## 利用.info()查--看数据的整体信息
    
  2. df.head()## 进行简单的---数据查看,利用 .head() 头部; .tail()尾部
    
  3.  x.describe()## 对于特征进行一些统计描述
    

Step4: 可视化描述
小提琴图—sns.violinplot

相关性热力图----sns.heatmap
散点图------sns.swarmplot
根据特征相关性等进行特征删除、构造。
Step5: 利用 LightGBM 进行训练与预测

  1. 数据集划分 构造模型

    1. from lightgbm.sklearn import LGBMClassifier## 导入---LightGBM模型
      
    2. clf = LGBMClassifier()## 定义--- LightGBM 模型
      
    3. clf.fit(x_train, y_train)  # 在训练集上---训练LightGBM模型
      
  2. 在训练集和测试集上分布利用训练好的模型进行预测

  3. 利用----accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果

  4. 查看------混淆矩阵 (预测值和真实值的各类情况统计矩阵)

  5. 利用-------热力图对于结果进行可视化

Step6: 利用 LightGBM 进行特征选择

LightGBM的特征选择属于特征选择中的嵌入式方法,在LightGBM中可以用属性feature_importances_去查看特征的重要度。

  1. sns.barplot(y=data_features_part.columns, x=clf.feature_importances_)
    

初次之外,我们还可以使用LightGBM中的下列重要属性来评估特征的重要性。
2. gain:当利用特征做划分的时候的评价基尼指数
3. split:是以特征用到的次数来评价

Step7: 通过调整参数获得更好的效果
LightGBM中包括但不限于下列对模型影响较大的参数:

  1. learning_rate: 有时也叫作eta,系统默认值为0.3。每一步迭代的步长,很重要。太大了运行准确率不高,太小了运行速度慢。
  2. num_leaves:系统默认为32。这个参数控制每棵树中最大叶子节点数量。
  3. feature_fraction:系统默认值为1。我们一般设置成0.8左右。用来控制每棵随机采样的列数的占比(每一列是一个特征)。
  4. max_depth:系统默认值为6,我们常用3-10之间的数字。这个值为树的最大深度。这个值是用来控制过拟合的。max_depth越大,模型学习的更加具体。

调节模型参数的方法有贪心算法、网格调参、贝叶斯调参等。
得到优化的参数后重新进行训练、预测、准确度计算。

天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类相关推荐

  1. AI训练营Python-阿里天池龙珠计划task4学习笔记

    task4利用Pandas分析美国选民总统喜好 1.所有候选人信息 CAND_ID 候选人ID CAND_NAME 候选人姓名 CAND_PTY_AFFILIATION 候选人党派 CAND_ID 候 ...

  2. 【天池龙珠训练营-机器学习】机器学习算法(一): 基于逻辑回归的分类预测

    一.逻辑回归简介 逻辑回归(Logistic regression,简称LR),是一个分类模型. 原理简介: Logistic回归虽然名字里带"回归",但是它实际上是一种分类方法, ...

  3. 天池龙珠计划——机器学习训练营 Task1

    目录 机器学习算法(一): 基于逻辑回归的分类预测 前言 逻辑回归介绍 实战 基本参数 iris数据集实战 机器学习算法(一): 基于逻辑回归的分类预测 前言 笔记,主要记录阿里云天池龙珠训练营机器学 ...

  4. 龙珠训练营机器学习-LightGBM学习笔记

    本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:点我跳转 感谢各位的阅读 学习知识点概要 学习内容 1.LightGBM的介绍与应用 1.1 LightGBM的介绍 1.1.1 L ...

  5. 天池龙珠计划机器学习训练营机器学习基础知识学习笔记--Task03

    天池龙珠计划机器学习训练营–Task03重点记录 LightGBM的介绍 LightGBM的主要优点: 简单易用.提供了主流的Python\C++\R语言接口,用户可以轻松使用LightGBM建模并获 ...

  6. 重修-龙珠计划机器学习训练营task3-LightGBM学习笔记

    文章标题:龙珠计划机器学习训练营task3-LightGBM学习笔记 一.学习知识点概要 LightGBM是2017年由微软推出的可扩展机器学习系统,是微软旗下DMKT的一个开源项目,由2014年首届 ...

  7. 龙珠训练营机器学习算法(一)学习笔记

    本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:点我跳转 感谢各位的阅读 为什么突然学阿里 学习知识点概要 学习内容 1 逻辑回归的介绍和应用 1.1逻辑回归的介绍 1.2 逻辑回 ...

  8. 重修-龙珠计划机器学习训练营task1-part2学习笔记

    文章标题:龙珠计划机器学习训练营task1-part2学习笔记 一.学习知识点概要 利用鸢花数据(iris)进行逻辑回归方法的训练,该数据集一共包含5个变量,其中4个特征变量,1个目标分类变量.共有1 ...

  9. 龙珠训练营机器学习笔记task03

    龙珠训练营机器学习笔记task03 本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:https://tianchi.aliyun.com/notebook-ai/detail?sp ...

最新文章

  1. Git - 使用指南
  2. 写CSDN插入图片一直无法显示?
  3. If you study Math, Physics and Chemistry well, you will be the strongest of the world and the truth
  4. java一维数组排序
  5. ubuntu下命令行启动vmware某个虚拟机
  6. Python自学之乐-Python字典实现简单的三级菜单
  7. Java堆排序递归_大顶堆第二弹----堆排序(递归实现)
  8. [导入]用户控件包装器
  9. 数据结构(三):非线性逻辑结构-树
  10. 实验四:用一维数组输出等腰三角形的杨辉三角
  11. Garmin APP开发之布局
  12. 每个python文件就是一个模块、模块的名字就是_Python-模块和包
  13. 分享 | 3D目标检测方法总结
  14. 计算机网络怎么连接两台机器,两台电脑怎么连接局域网,小编教你两台电脑怎么连接局域网...
  15. BZOJ4167 : 永远的竹笋采摘
  16. Win11打不开安全中心怎么解决
  17. 神奇宝贝java_我的世界下载 1.25神奇宝贝整合包_单机游戏下载
  18. app自动化测试——app自动化控制、常见控件定位方法
  19. Hibernate: Duplicate entry for key错误排查
  20. 如何系统性学习IT技术

热门文章

  1. 如何编写一个足球点球大战的模拟程序(C语言)
  2. DB(一):数据库概述、SQL概述、Oracle数据类型
  3. 《Xilinx - UG471中文翻译》(2)ISERDESE2原语介绍
  4. python DFS深度优先搜索及N皇后问题求解
  5. 如果能回到过去,你会做什么?
  6. python实现计算四方和问题(四方定理的python实现)
  7. postman初级-2-引用变量
  8. html中怎么设置滚动条效果,css滚动条样式怎么设置
  9. Bootstrap系列之轮播图(Carousel)
  10. 0013Photoshop2019新功能(下)