10.3.1 Bagging Regressor
类参数、属性和方法
类
class sklearn.ensemble.BaggingRegressor(base_estimator=None, n_estimators=10, *, max_samples=1.0, max_features=1.0, bootstrap=True, bootstrap_fea
tures=False, oob_score=False, warm_start=False, n_jobs=None, random_state=None, verbose=0)
属性
属性 |
类型 |
解释 |
base_estimator_ |
estimator |
从中生成集合的基估计量。 |
n_features_ |
int |
执行拟合时的特征数。 |
estimators_ |
list of estimators |
拟合子估计量的集合。 |
estimators_samples_ |
list of arrays |
每个基估计量的抽样子集。 |
estimators_features_ |
list of arrays |
每个基估计量的特征子集。 |
oob_score_ |
float |
使用现成的估计值获得的训练数据集的得分。只有当oob_score为True时,此属性才存在。 |
oob_prediction_ |
ndarray of shape (n_samples,) |
利用训练集上的包外估计计算预测。如果n_estimators很小,则可能在引导过程中从未遗漏数据点。在这种情况下, oob_prediction_可能包含NaN。只有当oob_score为True时,此属性才存在。 |
方法
fit(X, y[, sample_weight]) |
从训练中建立一个估计量的Bagging集合 |
get_params([deep]) |
获取此估计器的参数。 |
predict(X) |
预测X的回归目标。 |
score(X, y[, sample_weight]) |
返回预测的确定系数R2。 |
set_params(**params) |
设置此估计器的参数。 |
装袋回归算法分析有噪音make_regression数据
def BaggingRegressor_of_make_regression(): myutil = util() X,y = make_regression(n_samples=100,n_features=1,n_informative=2,noise=50,random_state=8) X_train,X_test,y_train,y_test = train_test_split(X, y, random_state=8,test_size=0.3) clf = BaggingRegressor(n_estimators=50,random_state=11).fit(X,y) title = "make_regression BaggingRegressor()回归线(有噪音)" myutil.print_scores(clf,X_train,y_train,X_test,y_test,title) myutil.draw_line(X[:,0],y,clf,title)
输出
make_regression BaggingRegressor()回归线(有噪音): 94.55% make_regression BaggingRegressor()回归线(有噪音): 92.72%
装袋回归算法分析糖尿病数据数据
def diabetes_of_BaggingRegressor(): myutil = util() X,y = datasets.load_diabetes().data,datasets.load_diabetes().target X_train,X_test,y_train,y_test = train_test_split(X, y, random_state=0) clf = BaggingRegressor(n_estimators=50,random_state=11) clf.fit(X_train,y_train) title = "BaggingRegressor算法分析糖尿病数据" myutil.print_scores(clf,X_train,y_train,X_test,y_test,title) myutil.plot_learning_curve(BaggingRegressor(n_estimators=50,random_state=11),X,y,title) myutil.show_pic(title)
输出
BaggingRegressor算法分析糖尿病数据: 91.95% BaggingRegressor算法分析糖尿病数据: 23.52%
典型的过拟合结果
装袋回归算法分析波士顿房价数据
def boston_of_BaggingRegressor(): myutil = util() X,y = datasets.load_boston().data,datasets.load_boston().target X_train,X_test,y_train,y_test = train_test_split(X, y, random_state=0) clf = BaggingRegressor(n_estimators=50,random_state=11) clf.fit(X_train,y_train) title = "BaggingRegressor算法分析波士顿房价数据" myutil.print_scores(clf,X_train,y_train,X_test,y_test,title) myutil.plot_learning_curve(BaggingRegressor(n_estimators=50,random_state=11),X,y,title) myutil.show_pic(title)
输出
BaggingRegressor算法分析波士顿房价数据: 98.05% BaggingRegressor算法分析波士顿房价数据: 78.93%
过拟合数据