python|LightGBM模型

本文详细介绍了如何在Python中使用LightGBM进行机器学习建模,包括数据预处理、模型训练、参数调优及模型评估等关键步骤。LightGBM作为一款高效的梯度提升框架,以其速度快、内存占用低和准确度高等特点深受数据科学家喜爱。
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 12 16:20:17 2020

@author: weiping
"""

import xgboost as xgb
import lightgbm as lgb  
from sklearn.model_selection  import train_test_split
from sklearn.metrics import *
from sklearn.datasets import load_iris

iris = load_iris()

data_x = iris.data 
data_y = iris.target

x_tr,x_te,y_tr,y_te = train_test_split(data_x,data_y,train_size = 0.7,random_state =22)
#XGBboost模型
xgb_model = xgb.XGBClassifier()
xgb_model.fit(x_tr,y_tr)
xgb_predict = xgb_model.predict(x_te)

print("xgb准确率:" ,str(xgb_model.score(x_te,y_te)))
#print("roc_auc_score:",str(roc_auc_score(y_te,xgb_predict))) 不支持多分类
print("precision_score:",str(precision_score(y_te,xgb_predict,average = 'weighted')))
print("recall_score:" , str(recall_score(y_te,xgb_predict,average = 'weighted')))
print("f1_score:",str(f1_score(y_te,xgb_predict,average = 'weighted')))
'''
xgb准确率: 0.9333333333333333
precision_score: 0.9344662309368191
recall_score: 0.9333333333333333
f1_score: 0.9332681655262302
'''

#LGB模型
'''
模型参数
objective: (objective_type, app, application)
回归任务:
'regression'(默认)
'poisson'
'tweedie'
分类任务:
'binary':二分类
'multiclass':多分类
boosting_type:(boosting_type, boost)
'gbdt':传统的梯度提升决策树 (默认)
'rf':随机森林
'dart':Dropouts meet Multiple Additive Regression Trees
'goss':Gradient-based One-Side Sampling 训练更快,可能欠拟合
data:训练数据
valid:验证数据集
num_iteration:(num_trees, n_estimators)
迭代次数,100(默认)
learning_rate:(eta, shrinkage_rate)
衰减因子,0.1(默认)
seed:(random_state, random_seed)
num_threads:(n_jobs, nthreads)
num_leaves:
单棵树的最大叶子数,31(默认)
控制学习参数:
'max_depth':
树的最大深度,-1(默认),无限制
可用于控制过拟合
'lambda_l2':(reg_lambda, lambda)
L2正则化,0(默认)
'lambda_l1':(reg_alpha)
L1正则化,0(默认)
'min_data_in_leaf'(min_data, min_child_samples)
一个叶子的最小数据量,20(默认)
可用于控制过拟合
'subsample': (sub_row, bagging, bagging_fraction)
对样本进行采样,1(默认)
可用于控制过拟合
'sub_feature': (colsample_bytree, feature_fraction)
对特征进行采样,1(默认)
加速训练,控制过拟合
early_stopping: (early_stopping_round)
'''

lgb_model = lgb.LGBMClassifier()
lgb_model.fit(x_tr,y_tr)
lgb_predict = lgb_model.predict(x_te)


print("lgb准确率:" ,str(lgb_model.score(x_te,y_te)))
#print("roc_auc_score:",str(roc_auc_score(y_te,xgb_predict))) 不支持多分类
print("precision_score:",str(precision_score(y_te,lgb_predict,average = 'weighted')))
print("recall_score:" , str(recall_score(y_te,lgb_predict,average = 'weighted')))
print("f1_score:",str(f1_score(y_te,lgb_predict,average = 'weighted')))
'''
lgb准确率: 0.9555555555555556
precision_score: 0.9555555555555556
recall_score: 0.9555555555555556
f1_score: 0.9555555555555556
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值