集合算法:根据多个不同模型的预测结果,利用平均或者投票的方法得出最终预测结果。
一、正向激励:
1、为样本矩阵中的样本随机分配初始权重后构建一棵带有权重的决策树;
2、将训练样本带入模型通过加权平均值或者加权投票的方式产生预测值;
3、对有误差的样本提高其权重,构建第二棵决策树;
4、重复以上过程,构建出不同权重的若干决策树
基于决策树的集合算法就是依据某种规则,构建互不相同的决策树模型,分别给出对于未知样本的预测结果后,根据平均或者投票得到结果。
# -*- coding: utf-8 -*-
"""
Created on Thu May 5 10:24:22 2022
@author: xxxy
"""
import sklearn.datasets as sd
import sklearn.utils as su
import sklearn.tree as st
import sklearn.metrics as sm
import sklearn.ensemble as se
boston=sd.load_boston()
x,y=su.shuffle(boston.data,boston.target,random_state=7)
train_size=int(len(x)*0.8)
train_x,test_x,train_y,test_y=x[:train_size],x[train_size:],\
y[:train_size],y[train_size:]
model=st.DecisionTreeRegressor(max_depth=4)
model.fit(train_x,train_y)
pred_test_y=model.predict(test_x)
print(sm.r2_score(test_y, pred_test_y))
#构建Adaboost模型
model=se.AdaBoostRegressor(model ,n_estimators=200,random_state=7)
model.fit(train_x,train_y)
pred_test_y=model.predict(test_x)
print(sm.r2_score(test_y, pred_test_y))
二、随机森林
自助聚合:以有放回的随机抽样方式构建多棵包含不同训练样本的决策树,降低某些强势样本对模型泛华能力的影响。在自助聚合的基础上,每次构建决策树时,既随机选择部分样本,也随机选择部分特征,这样的集合算法,避免了强势样本的影响,也降低了强势样本特征的影响,进一步提高模型的泛化能力。
import sklearn.datasets as sd
import sklearn.utils as su
import sklearn.tree as st
import sklearn.metrics as sm
import sklearn.ensemble as se
boston=sd.load_boston()
x,y=su.shuffle(boston.data,boston.target,random_state=7)
train_size=int(len(x)*0.8)
train_x,test_x,train_y,test_y=x[:train_size],x[train_size:],\
y[:train_size],y[train_size:]
model=st.DecisionTreeRegressor(max_depth=4)
model.fit(train_x,train_y)
pred_test_y=model.predict(test_x)
print(sm.r2_score(test_y, pred_test_y))
#构建Adaboost模型
model=se.AdaBoostRegressor(model ,n_estimators=200,random_state=7)
model.fit(train_x,train_y)
pred_test_y=model.predict(test_x)
print(sm.r2_score(test_y, pred_test_y))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)