文档章节

2017年2月21日 Gradient Boosting Regressor

airxiechao
 airxiechao
发布于 2017/03/21 08:48
字数 182
阅读 23
收藏 0

Gradient Boosing trains additional models on negative gradient residual

from __future__ import division
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.datasets import load_boston
import ml_metrics as mtr
import matplotlib.pyplot as plt
%matplotlib inline

data = load_boston()
X = data.data
y = data.target

class myGradientBoostingRegression():
    
    def predict(self, X):
        p = np.zeros(X.shape[0])
        for i in range(len(self.learners)):
            dt = self.learners[i]
            c = self.coefs[i]

            p += c*dt.predict(X)
            
        return p
    
    def fit(self, X, y, n_estimators, max_depth):
        self.learners = []
        self.coefs = []
        for n in range(n_estimators):
            if n == 0:
                dt = DecisionTreeRegressor(max_depth=max_depth)
                dt.fit(X,y)
                self.learners.append(dt)
                self.coefs.append(1)
            else:
                p = self.predict(X)
                negtive_gradient_loss = y-p
                
                dt = DecisionTreeRegressor(max_depth=max_depth)
                dt.fit(X, negtive_gradient_loss)
                self.learners.append(dt)
                
                cs = np.arange(0,1,.1)
                losses = [ mtr.mse(p+c*dt.predict(X), y) for c in cs]
                c = cs[np.argmin(losses)]
                self.coefs.append(c)
        
    def score(self, X, y):
        return mtr.mse(self.predict(X), y)
        
        
ns = range(1,10)
ss = []
for n in ns:
    gb = myGradientBoostingRegression()
    gb.fit(X,y,n,3)
    ss.append(gb.score(X,y))
    
plt.plot(ns,ss)

© 著作权归作者所有

airxiechao
粉丝 4
博文 42
码字总数 9717
作品 1
成都
程序员
私信 提问
Splunk Machine Learning Toolkit 3.0.0介绍

在前面文章中我们对Splunk Machine Learning Toolkit 2.1.0版本进行了介绍,近日ML-Toolkit迎来了3.0.0版本,相比2.1.0版本有哪些更新和改进呢,我们来看一下吧。 新的功能 1、加入模型管理模...

10data
2017/12/28
0
0
Apache Hivemall 0.5.2 发布,可扩展的机器学习库

Apache Hivemall 0.5.2 发布了,Apache Hivemall 基于 Hive UDF/UDAF/UDTF,是一个可扩展的机器学习库,运行基于 Hadoop 的数据处理框架,特别是 Apache Hive、Apache Spark 和 Apache Pig。...

h4cd
2018/12/11
656
0
XGBoost 1 - 基础及简单调用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/robinXushuai/article/details/80897305 XGBoost extreme gradient boosting, 是gradient boosting machine的......

_席达_
2018/07/03
0
0
Kaggle 神器 xgboost

在 Kaggle 的很多比赛中,我们可以看到很多 winner 喜欢用 xgboost,而且获得非常好的表现,今天就来看看 xgboost 到底是什么以及如何应用。 本文结构: 什么是 xgboost? 为什么要用它? 怎...

aliceyangxi1987
2017/06/09
0
0
Laravel 6.0 LTS 发布,内附更新细节

文章转发自专业的Laravel开发者社区,原始链接:learnku.com/laravel/t/3… Laravel 团队今天宣布 Laravel 6.0 版本正式发布,该版本的发布标志着 laravel 框架开始使用语义化版本,此外,该版...

Summer__
09/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

iptables删除命令中的相关问题

最近在做一个中间件的配置工作,在配置iptables的时候,当用户想删除EIP(即释放当前连接),发现使用iptables的相关命令会提示错误。iptables: Bad rule (does a matching rule exist in t...

xiangyunyan
55分钟前
4
0
IT兄弟连 HTML5教程 HTML5表单 新增的表单属性1

HTML5 Input表单为<form>和<input>标签添加了几个新属性,属性如表1。 1 autocomplete属性 autocomplete属性规定form或input域应该拥有自动完成功能,当用户在自动完成域中开始输入时,浏览器...

老码农的一亩三分地
今天
7
0
OSChina 周五乱弹 —— 葛优理论+1

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享米津玄師的单曲《LOSER》: mv中的舞蹈诡异却又美丽,如此随性怕是难再跳出第二次…… 《LOSER》-...

小小编辑
今天
1K
23
nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
7
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部