10.3.1 Bagging Regressor
类参数、属性和方法
类
代码语言:javascript复制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数据
代码语言:javascript复制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)
输出
代码语言:javascript复制make_regression BaggingRegressor()回归线(有噪音):
94.55%
make_regression BaggingRegressor()回归线(有噪音):
92.72%
装袋回归算法分析糖尿病数据数据
代码语言:javascript复制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)
输出
代码语言:javascript复制BaggingRegressor算法分析糖尿病数据:
91.95%
BaggingRegressor算法分析糖尿病数据:
23.52%
典型的过拟合结果
装袋回归算法分析波士顿房价数据
代码语言:javascript复制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)
输出
代码语言:javascript复制BaggingRegressor算法分析波士顿房价数据:
98.05%
BaggingRegressor算法分析波士顿房价数据:
78.93%
过拟合数据