LightGBM整理

LightGBM整理

官网

LightGBM 中文文档.
LightGBM 官网.

安装

# 可能需要的安装包
pip install setuptools wheel numpy scipy scikit-learn -U
# 安装
pip install lightgbm

加载数据

  1. 加载数据可以接受一下数据:
  • libsvm/tsv/csv 文本文件格式。
  • Numpy 2维数组, pandas 对象。
  • LightGBM 二进制文件。(这种方法会使数据加载的更快)
  1. 加载数据和特征工程
# 加载numpy数据
data = np.random.rand(500, 10)  # 500 个样本, 每一个包含 10 个特征
label = np.random.randint(2, size=500)  # 二元目标变量,  0 和 1
train_data = lgb.Dataset(data, label=label)
# 加载pandas数据
pd_data_train_obj=pd.read_csv("data/happiness_train_abbr.csv")
pd_data_train_label=pd_data_train_obj['happiness']
pd_data_train_target=pd_data_train_obj.drop(['happiness','survey_time'],axis=1)
X_train, X_test, y_train, y_test = train_test_split(pd_data_train_target, pd_data_train_label, test_size=0.3, random_state=0)
trn_data=lgb.Dataset(X_train,y_train)
# 加载和保存LightGBM二进制文件
train_data = lgb.Dataset('train.svm.txt')
train_data.save_binary('train.bin')

感觉常用的pandas加载数据的方案。

因为水平不足,特征工程就不在表述了。

  1. 加载验证数据
test_data = train_data.create_valid('test.svm')
# 或
test_data = lgb.Dataset('test.svm', reference=train_data)
  1. 设置训练参数
params = {'num_leaves':3, 
          'max_depth':3,
          'learning_rate': 0.01,
          'objective':'regression',
          'boosting': 'gbdt'
         }

训练参数有许多,可以查看官网的文档。

  1. 训练和预测数据
num_round=100000
clf = lgb.train(params, trn_data, num_round, valid_sets = [trn_data, val_data], verbose_eval=5000,early_stopping_rounds=10)
## 预测数据
ypred = clf.predict(pd_test_target,num_iteration=clf.best_iteration)
df=pd.DataFrame(ypred,columns=['happiness'])

这里使用了early_stopping_rounds 预测数据时使用num_iteration=clf.best_iteration参数。

  1. 个人感觉这是最简单的步骤,但其实还有很多步骤没有写,比如特征工程,参数的选取。以及完全没有提到的交叉验证和模型融合。
    这里有大神的笔记可以参考。LightGBM调参笔记.
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值