W3School TIY Editor

  • W3School 在线教程
  • 改变方向
  • 暗黑模式
​x
 
# 这三行代码使编译器能够绘图:
import sys
import matplotlib
matplotlib.use('Agg')
​
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.ensemble import BaggingClassifier
​
# 加载葡萄酒数据集:
data = datasets.load_wine()
​
# 准备特征数据和标签:
X = data.data
y = data.target
​
# 划分训练集和测试集(25% 测试数据):
X_train, X_test, y_train, y_test = train_test_split(
    X, y, 
    test_size=0.25, 
    random_state=22
)
​
# 定义要评估的基学习器数量范围:
estimator_range = [2,4,6,8,10,12,14,16]
​
models = []
scores = []
​
for n_estimators in estimator_range:
    
    # 创建 Bagging 分类器:
    clf = BaggingClassifier(
        n_estimators=n_estimators, 
        random_state=22
    )
    
    # 训练模型:
    clf.fit(X_train, y_train)
    
    # 记录模型和其在测试集上的准确率:
    models.append(clf)
    scores.append(accuracy_score(
        y_true=y_test, 
        y_pred=clf.predict(X_test)
    ))
    
# 绘制准确率随基学习器数量变化的曲线:
plt.figure(figsize=(9,6))
plt.plot(estimator_range, scores)
​
# 设置坐标轴标签和字体大小:
plt.xlabel("基学习器数量(n_estimators)", fontsize=18)
plt.ylabel("准确率(score)", fontsize=18)
plt.tick_params(labelsize=16)
​
# 显示图形:
plt.show()
​
# 这两行代码使编译器能够输出图形:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()