Boosting
Boosting模型是线性训练的,后面的模型会纠结于前一个模型预测错的部分,然后尝试把它修正,步骤如下:
-
第一个模型用一部分训练集训练,得出这部分训练集上的错误点
错误的数据会有更大的概率被后续的模型选择
-
第二个模型再拿一部分训练集(之预测错的点被选中的概率更大),然后训练,验证,再把预测错误的点找出来。
错误的数据会有更大的概率被后续的模型选择
依次进行多轮…
-
最后这些模型综合得出一个权重,拿到数据后每个模型做出预测的结果,然后按照这个权重得出最后的结果
sklearn案例
from sklearn.datasets import make_regression
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import train_test_split
X, y = make_regression(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
reg = GradientBoostingRegressor(random_state=0)
reg.fit(X_train, y_train)
reg.predict(X_test[1:2])
print(reg.score(X_test, y_test))