GBDT算法学习示例:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import GradientBoostingRegressor
#加载数据
def loaddata():
data = np.loadtxt('gbdt_test.txt', delimiter=',')
n = data.shape[1]-1 #特征数
X = data[:, 0:n]
Y = data[:, -1].reshape(-1,1)
return X,Y
# 1、 定义第一颗树(最大深度设为5),并进行训练
tree_reg1 = DecisionTreeRegressor(max_depth=5)
tree_reg1.fit(X,Y)
# 2、计算残差,并把残差当做目标值训练第二颗树(最大深度设为5)
y2 = Y - tree_reg1.predict(X).reshape(-1,1)
tree_reg2 = DecisionTreeRegressor(max_depth=5)
tree_reg2.fit(X,y2)