您的位置:

详解LightGBM回归技术

一、LightGBM回归

LightGBM是一个用于梯度提升决策树的框架。它使用直方图算法来加速训练和应用程序。

LightGBM作为一款高性能机器学习框架,被广泛应用于分类、回归等任务中,并在许多任务中均表现出较为优异的效果。

其回归算法特点: 比较适合于对数据预测建模,能更好的发挥树模型在寻找最优补偿点上的优势,并通过Leaf Wise生长策略加速提高了模型训练的速度,可以同时处理连续型和离散型特征。

二、LightGBM算法

LightGBM主要包含以下几个方面:

2.1 分裂算法:基于直方图的决策树算法

运用单边采样技术,可以通过不断分裂,加速得到较为精简的决策树;在对于连续属性节点分裂时,可以将其离散化后扫描离散化后的每个切分点,从而挑选离散化后较优切分点。同样,在对于分类属性节点分裂时,也可以将其转化为二分类问题。

2.2 直方图算法:离散化处理数据

直方图算法将数据按照分位数进行离散化,然后以离散后的数据为基础去构建决策树,通过这种方式有效地降低了算法的复杂度。对于数据量较大的海量数据集,LightGBM能在较短的时间内构建出较为精准的模型,同时可以处理有噪声、不平衡数据等情况。

2.3 Leaf Wise生长策略:优化模型训练速度

Leaf Wise生长策略与传统的Depth Wise生长策略相比,是一种更为高效的生长策略,这种策略可以使得决策树在保证准确性的前提下,减少了非叶子节点数量。相应地,降低了存储空间和预测时间,加速了模型训练速度。

三、LightGBM回归模型

下面是一个简单的LightGBM回归模型的例子:

import lightgbm as lgb
import numpy as np
import pandas as pd
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split

# 加载数据
print('Loading data...')
df_train = pd.read_csv('train.csv')
df_test = pd.read_csv('test.csv')

# 处理标签
y_train = df_train['label']
df_train.drop(['label'], axis=1, inplace=True)
y_test = df_test['label']
df_test.drop(['label'], axis=1, inplace=True)

# 划分数据集
X_train, X_val, y_train, y_val = train_test_split(df_train.values, y_train.values, test_size=0.1, random_state=42)

# 构建LightGBM模型
print('Training/Fitting ...')
params = {
    'task': 'train',
    'boosting_type': 'gbdt',
    'objective': 'regression',
    'metric': {'mse'},
    'num_leaves': 31,
    'learning_rate': 0.05,
    'feature_fraction': 0.9,
    'bagging_fraction': 0.8,
    'bagging_freq': 5,
    'verbose': 0
}
lgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_val, y_val, reference=lgb_train)
gbm = lgb.train(params,
                lgb_train,
                num_boost_round=100,
                valid_sets=lgb_eval,
                early_stopping_rounds=5)

# 预测测试集并输出RMSE
print('Predicting ...')
y_pred = gbm.predict(df_test.values, num_iteration=gbm.best_iteration)
mse = mean_squared_error(y_test, y_pred)
print("MSE: %.4f" % mse)

四、LightGBM特征重要度

LightGBM用的是直方图,它不会用到所有的特征,而是根据特征的重要度选择部分特征。

其特征重要度选取特征主要是通过在决策树的生长过程中,对于划分的属性,计算其对于决策结果的贡献。计算后可以通过直方图统计得到,因此LightGBM的特征重要度是一个通过统计的平均重要度得到的,反应了特征对于模型的贡献程度。

# 输出特征重要度
print('Feature importances:', list(gbm.feature_importance()))

五、小结

本文阐述了LightGBM回归技术,介绍了LightGBM回归的特点和算法,同时简单介绍了LightGBM回归模型和特征重要度的计算方式。总之,LightGBM以快速、高效、准确著称,近年来在处理海量数据方面表现突出,预期将在未来得到广泛应用。

详解LightGBM回归技术

2023-05-19
python中lightgbm(Python 中)

2022-11-15
LightGBM参数详解

2023-05-21
java方法整理笔记(java总结)

2022-11-08
Python回归分析 Comprehensive Guide

一、回归分析简介 回归分析是一种被广泛应用的统计分析方法,用于分析一个因变量随着一个或多个自变量的变化而变化的关系。回归分析可以用来预测未来趋势或控制因素,也可以用来揭示变量之间的相关性或造成因素。

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
java学习笔记(java初学笔记)

2022-11-14
python基础学习整理笔记,Python课堂笔记

2022-11-21
重学java笔记,java笔记总结

2022-11-23
发篇java复习笔记(java课程笔记)

2022-11-09
java基础知识学习笔记一,Java基础笔记

2022-11-21
java包笔记,Java语言包

2022-11-18
腾讯技术部php笔试题(腾讯技术笔试题目)

2022-11-12
python技巧笔记(python自学笔记)

2022-11-12
java笔记,大学java笔记

2022-11-28
python学习日记day4(大学python笔记整理)

2022-11-13
在lightgbm中进行超参数调优的指南

2023-05-17
java笔记,尚硅谷java笔记

2022-12-01
5000元笔记本电脑

随着科技的不断发展,笔记本电脑已经成为了现代人生活中必不可少的工具。 随着科技的不断发展,笔记本电脑已经成为人们生活中必不可少的工具。在如今数字化时代的到来,人们对信息的需求也越来越高了,而笔记本作为

2023-12-08
数据库的笔记mysql,数据库管理系统笔记

2022-11-24