GBDT原理实例演示 1
考虑一个简单的例子来演示GBDT算法原理
下面是一个二分类问题,1表示可以考虑的相亲对象,0表示不考虑的相亲对象
特征维度有3个维度,分别对象
身高,金钱,颜值

cat dating.txt
#id,label,hight,money,face
_0,1,20,80,100
_1,1,60,90,25
_2,1,3,95,95
_3,1,66,95,60
_4,0,30,95,25
_5,0,20,12,55
_6,0,15,14,99
_7,0,10,99,2
这个例子仅仅为了试验,数据量很小没有更多统计意义。
0,1,2,3对应可以考虑的相亲对象
4,5,6,7 对应不考虑的相亲对象
先看一下gbdt训练的结果
mlt dating.txt -cl gbdt -ntree 2 -nl 3 -lr 0.1 -mil 1 -c train -vl 1 -mjson=1
设置2棵树,叶子节点最多3个
也就是最多2次分裂,learning rate设置为0.1,
叶子节点中的最少样本数设置为1(仅供试验,一般不会设置为1,避免过拟合)
为了打印二叉树设置输出json格式的模型
Per feature gain:
0:face 1
1:hight 0.730992
2:money 0.706716
Sigmoid/PlattCalibrator calibrating [ 8 ] (0.00011 s)100% |******************************************|
I0324 16:57:53.240083 17630 time_util.h:113] Train! finished using: [1.486 ms] (0.001486 s)
I0324 16:57:53.240094 17630 time_util.h:102] Test itself! started
TEST POSITIVE RATIO: 0.5000 (4/(4+4))
Confusion table:
||===============================||
|| PREDICTED ||
TRUTH || positive | negative || RECALL
||===============================||
positive|| 4 | 0 || 1.0000 (4/4)
negative|| 0 | 4 || 1.0000 (4/4)
||===============================||
PRECISION 1.0000 (4/4) 1.0000(4/4)
LOG LOSS/instance: 0.2981
TEST-SET ENTROPY (prior LL/in): 1.0000
LOG-LOSS REDUCTION (RIG): 70.1854%
OVERALL 0/1 ACCURACY: 1.0000 (8/8)
POS.PRECISION: 1.0000
PPOS.RECALL: 1.0000
NEG.PRECISION: 1.0000
NEG.RECALL: 1.0000
F1.SCORE: 1.0000
AUC: [1.0000]
对应这个例子,训练结果是perfect的,全部正确,
特征权重可以看出,对应这个例子训练结果颜值的重要度最大,看一下训练得到的树。
print-gbdt-tree.py --tree -1
Tree 0:

Tree 1:

GBDT原理实例演示 1的更多相关文章
- GBDT原理实例演示 2
一开始我们设定F(x)也就是每个样本的预测值是0(也可以做一定的随机化) Scores = { 0, 0, 0, 0, 0, 0, 0, 0} 那么我们先计算当前情况下的梯度值 ...
- 审核流(3)低调奢华,简单不凡,实例演示-SNF.WorkFlow--SNF快速开发平台3.1
下面我们就从什么都没有,结合审核流进行演示实例.从无到有如何快速完美的实现,然而如此简单.低调而奢华,简单而不凡. 从只有数据表通过SNF.CodeGenerator代码生成器快速生成单据并与审核流进 ...
- JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口
JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一. ...
- ASP.NET Core 6框架揭秘实例演示[01]: 编程初体验
作为<ASP.NET Core 3框架揭秘>的升级版,<ASP.NET Core 6框架揭秘>提供了很多新的章节,同时对现有的内容进行大量的修改.虽然本书旨在对ASP.NET ...
- ASP.NET Core 6框架揭秘-实例演示版[持续更新中…]
作为<ASP.NET Core 3框架揭秘>的升级版,<ASP.NET Core 6框架揭秘>提供了很多新的章节,同时对现有的内容进行大量的修改.虽然本书旨在对ASP.NET ...
- ASP.NET Core 6框架揭秘实例演示[28]:自定义一个服务器
作为ASP.NET Core请求处理管道的"龙头"的服务器负责监听和接收请求并最终完成对请求的响应.它将原始的请求上下文描述为相应的特性(Feature),并以此将HttpCont ...
- SSO之CAS单点登录实例演示
本文目录: 一.概述 二.演示环境 三.JDK安装配置 四.安全证书配置 五.部署CAS-Server相关的Tomcat 六.部署CAS-Client相关的Tomcat 七. 测试验证SSO 一.概述 ...
- Thrift入门及Java实例演示<转载备用>
Thrift入门及Java实例演示 作者: Michael 日期: 年 月 日 •概述 •下载配置 •基本概念 .数据类型 .服务端编码基本步骤 .客户端编码基本步骤 .数据传输协议 •实例演示(ja ...
- 原生JS编写的照片墙效果实例演示特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- leetcode150 Evaluate Reverse Polish Notation
Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...
- Android学习笔记(二)——探究一个活动
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 活动(Activity)是最容易吸引到用户的地方了,它是一种可以包含用户界面的组件,主要用于和用户进行交互.一 ...
- 关于JavaScript的浅拷贝和深拷贝
在 JS 中有一些基本类型像是Number.String.Boolean,而对象就是像这样的东西{ name: 'Larry', skill: 'Node.js' },对象跟基本类型最大的不同就在于他 ...
- 如何优雅地使用 Sublime Text
Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...
- 两款基于Jquery的图表插件
一.EasyPieChart 页面加载时,运行initPieChart()函数,调用easyPieChart()函数,显示出图表. 代码: var initPieChart = function() ...
- 使用SQLPlus连接Oracle实例
使用Windows徽标+R,打开运行对话框,输入cmd并回车. Microsoft Windows Microsoft Corporation.保留所有权利. C:\Users\user> 在C ...
- HTTP请求常见状态码
HTTP状态码(HTTP Status Code) 一些常见的状态码为: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码.代码 说明 100 (继续) 请求者应当继续提出请求. 服务 ...
- getopt函数的使用——分析命令行参数
getopt(分析命令行参数) getopt(分析命令行参数) 短参数的定义 返回值 范例 getopt_long 相关函数表头文件#include<unistd.h> 函数声明int g ...
- TO BE OPEN
我们通常都在一个很狭隘的世界里. 却以为我们有了整个蓝天.
- 转:sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...