代码功能
生成数据集:
 使用 make_classification 创建一个模拟分类问题的数据集。
 数据集包含 10 个特征,其中 5 个是有用特征,2 个是冗余特征。
 数据集划分:
 将数据分为训练集(70%)和测试集(30%)以便评估模型性能。
 定义 AdaBoost 模型:
 使用 DecisionTreeClassifier 作为弱分类器(基础分类器),设置 max_depth=1 表示单层决策树(决策桩)。
 设置 n_estimators=50,表示最多构建 50 个弱分类器。
 设置 learning_rate=1.0,控制每个弱分类器对最终模型的贡献权重。
 训练和预测:
 使用 fit 方法在训练集上训练模型。
 使用 predict 方法在测试集上进行预测。
 评估模型:
 使用 accuracy_score 和 classification_report 评估模型的准确率和分类性能。
 特征重要性分析(可选):
 提取模型中的特征重要性,分析每个特征对模型的贡献。
 
代码
import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, classification_report
# 1. 生成数据集
X, y = make_classification(
    n_samples=500,  # 样本数
    n_features=10,  # 特征数
    n_informative=5,  # 有用特征数
    n_redundant=2,  # 冗余特征数
    random_state=42,  # 随机种子
)
# 将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 2. 定义并训练 AdaBoost 模型
base_estimator = DecisionTreeClassifier(max_depth=1)  # 弱分类器:决策树(单层)
ada_model = AdaBoostClassifier(
    base_estimator=base_estimator,  # 基础模型
    n_estimators=50,  # 最大弱分类器数量
    learning_rate=1.0,  # 学习率
    random_state=42,
)
ada_model.fit(X_train, y_train)
# 3. 预测
y_pred = ada_model.predict(X_test)
# 4. 评估模型
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
print("\nClassification Report:\n", classification_report(y_test, y_pred))
# 5. 重要性分析(可选)
feature_importances = ada_model.feature_importances_
print("\nFeature Importances:")
for i, importance in enumerate(feature_importances):
    print(f"Feature {i + 1}: {importance:.4f}")












![vue面试题8|[2024-11-14]](https://i-blog.csdnimg.cn/direct/9512858b5ea94640a70ad4df9ee3a399.jpeg)






