github地址

  1 #!/usr/bin/env python2
2 # -*- coding: utf-8 -*-
3 """
4 Created on Sat Mar 31 21:19:09 2018
5
6 @author: hello4720
7 """
8 import numpy as np
9 import pandas as pd
10 import lightgbm as lgb
11 from sklearn import metrics
12 from sklearn.model_selection import train_test_split
13
14 ### 读取数据
15 print("载入数据")
16 dataset1 = pd.read_csv('G:/ML/ML_match/IJCAI/data3.22/3.22ICJAI/data/7_train_data1.csv')
17 dataset2 = pd.read_csv('G:/ML/ML_match/IJCAI/data3.22/3.22ICJAI/data/7_train_data2.csv')
18 dataset3 = pd.read_csv('G:/ML/ML_match/IJCAI/data3.22/3.22ICJAI/data/7_train_data3.csv')
19 dataset4 = pd.read_csv('G:/ML/ML_match/IJCAI/data3.22/3.22ICJAI/data/7_train_data4.csv')
20 dataset5 = pd.read_csv('G:/ML/ML_match/IJCAI/data3.22/3.22ICJAI/data/7_train_data5.csv')
21
22 dataset1.drop_duplicates(inplace=True)
23 dataset2.drop_duplicates(inplace=True)
24 dataset3.drop_duplicates(inplace=True)
25 dataset4.drop_duplicates(inplace=True)
26 dataset5.drop_duplicates(inplace=True)
27
28 ### 数据合并
29 print("数据合并")
30 trains = pd.concat([dataset1,dataset2],axis=0)
31 trains = pd.concat([trains,dataset3],axis=0)
32 trains = pd.concat([trains,dataset4],axis=0)
33
34 online_test = dataset5
35
36 ### 数据拆分
37 print("数据拆分")
38 train_xy,offline_test = train_test_split(trains, test_size = 0.2,random_state=21)
39 train,val = train_test_split(train_xy, test_size = 0.2,random_state=21)
40
41 print("训练集")
42 y = train.is_trade # 训练集标签
43 X = train.drop(['instance_id','is_trade'],axis=1) # 训练集特征矩阵
44
45 print("验证集")
46 val_y = val.is_trade # 验证集标签
47 val_X = val.drop(['instance_id','is_trade'],axis=1) # 验证集特征矩阵
48
49 print("测试集")
50 offline_test_X=offline_test.drop(['instance_id','is_trade'],axis=1) # 线下测试特征矩阵
51 online_test_X=online_test.drop(['instance_id'],axis=1) # 线上测试特征矩阵
52
53 ### 数据转换
54 lgb_train = lgb.Dataset(X, y, free_raw_data=False)
55 lgb_eval = lgb.Dataset(val_X, val_y, reference=lgb_train,free_raw_data=False)
56
57 ### 开始训练
58 print('设置参数')
59 params = {
60 'boosting_type': 'gbdt',
61 'boosting': 'dart',
62 'objective': 'binary',
63 'metric': 'binary_logloss',
64
65 'learning_rate': 0.01,
66 'num_leaves':25,
67 'max_depth':3,
68
69 'max_bin':10,
70 'min_data_in_leaf':8,
71
72 'feature_fraction': 0.6,
73 'bagging_fraction': 1,
74 'bagging_freq':0,
75
76 'lambda_l1': 0,
77 'lambda_l2': 0,
78 'min_split_gain': 0
79 }
80
81 print("开始训练")
82 gbm = lgb.train(params, # 参数字典
83 lgb_train, # 训练集
84 num_boost_round=2000, # 迭代次数
85 valid_sets=lgb_eval, # 验证集
86 early_stopping_rounds=30) # 早停系数
87 ### 线下预测
88 print ("线下预测")
89 preds_offline = gbm.predict(offline_test_X, num_iteration=gbm.best_iteration) # 输出概率
90 offline=offline_test[['instance_id','is_trade']]
91 offline['preds']=preds_offline
92 offline.is_trade = offline['is_trade'].astype(np.float64)
93 print('log_loss', metrics.log_loss(offline.is_trade, offline.preds))
94
95 ### 线上预测
96 print("线上预测")
97 preds_online = gbm.predict(online_test_X, num_iteration=gbm.best_iteration) # 输出概率
98 online=online_test[['instance_id']]
99 online['preds']=preds_online
100 online.rename(columns={'preds':'predicted_score'},inplace=True)
101 online.to_csv("./data/20180405.txt",index=None,sep=' ')
102
103 ### 保存模型
104 from sklearn.externals import joblib
105 joblib.dump(gbm,'gbm.pkl')
106
107 ### 特征选择
108 df = pd.DataFrame(X.columns.tolist(), columns=['feature'])
109 df['importance']=list(gbm.feature_importance())
110 df = df.sort_values(by='importance',ascending=False)
111 df.to_csv("./data/feature_score_20180405.csv",index=None,encoding='gbk')

【集成学习】lightgbm使用案例的更多相关文章

  1. 笔记︱集成学习Ensemble Learning与树模型、Bagging 和 Boosting

    本杂记摘录自文章<开发 | 为什么说集成学习模型是金融风控新的杀手锏?> 基本内容与分类见上述思维导图. . . 一.机器学习元算法 随机森林:决策树+bagging=随机森林 梯度提升树 ...

  2. 使用sklearn进行集成学习——实践

    系列 <使用sklearn进行集成学习——理论> <使用sklearn进行集成学习——实践> 目录 1 Random Forest和Gradient Tree Boosting ...

  3. [转]使用sklearn进行集成学习——实践

    转:http://www.cnblogs.com/jasonfreak/p/5720137.html 目录 1 Random Forest和Gradient Tree Boosting参数详解2 如何 ...

  4. 集成学习之Boosting —— AdaBoost原理

    集成学习大致可分为两大类:Bagging和Boosting.Bagging一般使用强学习器,其个体学习器之间不存在强依赖关系,容易并行.Boosting则使用弱分类器,其个体学习器之间存在强依赖关系, ...

  5. 集成学习算法汇总----Boosting和Bagging(推荐AAA)

     sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  6. 集成学习二: Boosting

    目录 集成学习二: Boosting 引言 Adaboost Adaboost 算法 前向分步算法 前向分步算法 Boosting Tree 回归树 提升回归树 Gradient Boosting 参 ...

  7. 6. 集成学习(Ensemble Learning)算法比较

    1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...

  8. 3. 集成学习(Ensemble Learning)随机森林(Random Forest)

    1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...

  9. 集成学习之Boosting —— XGBoost

    集成学习之Boosting -- AdaBoost 集成学习之Boosting -- Gradient Boosting 集成学习之Boosting -- XGBoost Gradient Boost ...

  10. 集成学习之Boosting —— Gradient Boosting原理

    集成学习之Boosting -- AdaBoost原理 集成学习之Boosting -- AdaBoost实现 集成学习之Boosting -- Gradient Boosting原理 集成学习之Bo ...

随机推荐

  1. SpringBoot集成Mybatis-PageHelper分页工具类,实现3步完成分页

    在Mybatis中,如果想实现分页是比较麻烦的,首先需要先查询出总的条数,然后再修改mapper.xml,为sql添加limit指令. 幸运的是现在已经不需要这么麻烦了,刘大牛实现了一个超牛的分页工具 ...

  2. LeetCode——maximal-rectangle

    Question Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ...

  3. sql 筛选表中指定字段包含26某个小写字母

    SELECT *from 表名WHERE 字段 COLLATE Chinese_PRC_CS_AS LIKE '%[abcdefghijklmnopqrstuvwxyz]%'筛选表中指定字段包含26某 ...

  4. G - 锘爷考驾照

    2017-07-17 11:56:06 writer:pprp 题目描述 大家都知道,锘爷是XDUdp第一人,所以锘爷决定要去考驾照!(这很有逻辑吧),他为了一次考到驾照,于是买了一辆越野车从学校开回 ...

  5. Python学习札记(十九) 高级特性5 迭代器

    参考:迭代器 Note 1.可用于for循环的对象有两类:(1)集合数据类型:list tuple dict str set (2)Generator:生成器和含yield语句的函数.这些可以直接作用 ...

  6. angularjs1 自定义图片查看器(可旋转、放大、缩小、拖拽)

    笔记: angularjs1 制作自定义图片查看器(可旋转.放大.缩小.拖拽) 2018-01-12 更新  可以在我的博客  查看我 已经封装好的 纯 js写的图片查看器插件    博客链接 懒得把 ...

  7. MySQL5.7 半同步复制

    一.概述 5.5与5.7的半同步复制可能存在差异,从MySQL5.5开始,MySQL以插件的形式支持半同步复制 异步:默认情况下,MySQL复制是异步的.主库在执行完客户端提交的事务后会立即将结果返给 ...

  8. CSS3:@font-face规则

    前言 过去,Web设计师为了保证网站能够正常显示,只能使用“Web安全字体”,即每台机器都预装的字体.但Web安全字体有时并不好看... @font-face能够使得任何一台机器能够显示理想中的字体. ...

  9. findContours函数参数详解

    http://blog.csdn.net/dcrmg/article/details/51987348

  10. cowsay

    # apt install cowsay sl cmatrix $ cowsay "hello~" $ find /usr/share/cowsay/cows -iname &qu ...