Python实现LightGBM分类模型(LGBMClassifier算法)项目实战

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: Python实现LightGBM分类模型(LGBMClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

image.png

image.png

1.项目背景

如今已是大数据时代,具备大数据思想至关重要,人工智能技术在各行各业的应用已是随处可见。GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT不仅在工业界应用广泛,通常被用于多分类、点击率预测、搜索排序等任务;在各种数据挖掘竞赛中也是致命武器,据统计很多比赛有一半以上的冠军方案都是基于GBDT。而LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。 

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下

编号 

变量名称

描述

0

mean_radius

 

1

mean_texture

 

2

mean_perimeter

 

3

mean_area

 

4

mean_smoothness

 

5

diagnosis

目标变量 0 Negative  1 Positive

数据详情如下(部分展示):

image.png

3.数据预处理

真实数据中可能包含了大量的缺失值和噪音数据或人工录入错误导致有异常点存在,非常不利于算法模型的训练。数据清洗的结果是对各种脏数据进行对应方式的处理,得到标准的、干净的、连续的数据,提供给数据统计、数据挖掘等使用。数据预处理通常包含数据清洗、归约、聚合、转换、抽样等方式,数据预处理质量决定了后续数据分析挖掘及建模工作的精度和泛化价值。以下简要介绍数据预处理工作中主要的预处理方法:

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据:

image.png

关键代码:

image.png

3.2查看数据集摘要

使用Pandas工具的info()方法查看数据集的摘要信息:

image.png

从上图可以看到,总共有569条数据,6个数据项,所有数据中没有缺失值。

关键代码:

image.png

4.探索性数据分析

4.1检查目标变量的分布

用Pandas工具的value_counts()方法进行统计,输出结果如下:

image.png

图形化展示如下:

image.png

从上面两个图中可以看到,分类为1的有347条/分类为0的有212条,数据偏差不大。另外,可以看到这是一个二分类的任务。

4.2 相关性分析

用Pandas工具的corr()方法 matplotlib seaborn进行相关性分析,结果如下:

image.png

通过上图可以看到,数据项之间正值是正相关/负值是负相关,数值越大 相关性越强。

5.特征工程

5.1 建立特征数据和标签数据

diagnosis为标签数据,除 diagnosis之外的为特征数据。关键代码如下:

image.png

5.2数据集拆分

训练集拆分,分为训练集和验证集,70%训练集和30%验证集。关键代码如下:

image.png

6.构建lightgbm分类模型

主要使用使用LGBMClassifier算法,用于目标分类。

6.1模型参数

 

编号

模型名称

参数

1

 

 

lightgbm分类模型

learning_rate=0.1

2

n_estimators=100

3

boosting_type='gbdt'

4

num_leaves=31

5

max_depth=-1

由于上述参数的值是默认值,所有在建模的代码中直接用的默认值。

关键代码如下:

image.png

7.模型评估

7.1评估指标及结果

评估指标主要包括准确率、查准率、查全率、F1分值等等。

模型名称

指标名称

指标值

测试集

lightgbm分类模型

准确率

0.9298

查准率

0.9286

查全率

0.9630

F1分值

0.9455

从上表可以看出,准确率为93%  F1分值为95%,lightgbm分类模型比较优秀,效果非常好。

关键代码如下:

image.png

7.2 查看是否过拟合

查看训练集和测试集的分数:

image.png

通过结果可以看到,训练集分数和测试集分数基本相当,所以没有出现过拟合现象。

关键代码:

image.png

7.3 混淆矩阵

lightgbm分类模型混淆矩阵:

image.png

image.png

从上图可以看到,实际值为1 预测为0的有4个;实际值为0  预测为1的有8个;这些是预测错误的,总共12个,在可以接受的范围内。

7.4 分类报告

lightgbm分类模型分类报告:

image.png

从上图可以看到,分类类型为0的F1分值为0.90;分类类型为1的F1分值为0.95;整个模型的准确率为0.93.

7.5 模型特征重要性

image.png

从上图可以看到特征变量对此模型的重要性依次为:mean_smoothnessmean_texturemean_perimetermean_radiusmean_area等等。

7.6 ROC曲线

image.png

从上图可以看出AUC值为0.98,模型非常棒。

8.结论与展望

综上所述,本文采用了lightgbm分类模型,最终证明了我们提出的模型效果良好。准确率达到了93%,可用于日常生活中进行建模预测,以提高价值。


# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/1xjJt7s_lqn1U78AHYJWRFA 
提取码:qzrl
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
9天前
|
机器学习/深度学习 数据采集 自然语言处理
使用Python实现深度学习模型:智能社交媒体内容分析
使用Python实现深度学习模型:智能社交媒体内容分析
135 70
|
9天前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
18 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
15天前
|
机器学习/深度学习 监控 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析、数学模型及Python代码
2024年中国研究生数学建模竞赛E题要求建立高速公路应急车道紧急启用模型,以缓解特定路段的拥堵问题。题目提供了四个视频观测点的数据,需分析交通流参数随时间的变化规律,建立拥堵预警模型,并验证模型有效性。此外,还需设计合理的应急车道启用规则和算法,优化视频监控点布局,以提升决策科学性和成本效益。涉及视频数据处理、非线性动态系统建模和机器学习等技术。适合交通工程、数学、计算机科学等多个专业学生参与。需利用Python等工具进行数据处理和建模。具体问题包括统计参数变化、建立拥堵模型、验证模型有效性、设计启用规则和优化监控点布局。
679 12
【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析、数学模型及Python代码
|
16天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
60 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
13天前
|
数据采集 机器学习/深度学习 算法
【BetterBench博士】2024年华为杯E题:高速公路应急车道紧急启用模型 Python代码实现
本文介绍了2024年“华为杯”中国研究生数学建模竞赛的选题分析,重点讨论了高速公路应急车道启用模型的问题。文章详细描述了如何使用YOLOv5和SORT算法进行车辆检测与跟踪,计算车流密度、流量及速度,并利用随机森林回归预测交通拥堵。此外,还提出了多情景动态分析和虚拟应急车道控制策略,以及优化数据采集点布置的方法。提供了完整的Python代码和B站视频教程链接,帮助读者深入理解并实践该模型。
84 6
【BetterBench博士】2024年华为杯E题:高速公路应急车道紧急启用模型 Python代码实现
|
10天前
|
机器学习/深度学习 数据采集 自然语言处理
使用Python实现深度学习模型:智能新闻生成与校对
使用Python实现深度学习模型:智能新闻生成与校对
32 10
|
8天前
|
机器学习/深度学习 数据采集 网络安全
使用Python实现深度学习模型:智能网络安全威胁检测
使用Python实现深度学习模型:智能网络安全威胁检测
33 5
|
7天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护
17 1
|
11天前
|
机器学习/深度学习 数据采集 自然语言处理
使用Python实现深度学习模型:智能广告创意生成
使用Python实现深度学习模型:智能广告创意生成
27 4
|
12天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能电影制作与剪辑
使用Python实现深度学习模型:智能电影制作与剪辑
28 5
下一篇
无影云桌面