快速入门Python机器学习(25)

2022-09-23 20:06:30 浏览数 (2)

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%

过拟合数据

0 人点赞