12.26随笔

以下记录机械学习实验:

(1)从scikit-learn 库中加载 iris 数据集或本地读取,进行数据分析; (2)采用五折交叉验证划分训练集和测试集,使用训练集对随机森林分类算法进行训 练; (3)使用五折交叉验证对模型性能(准确度、精度、召回率和F1值)进行测试; (4)通过对测试结果进行比较分析,评估模型性能; (5)完成实验报告中实验八的部分。

算法步骤、代码、及结果

  1. 算法伪代码

class RandomForest:
def init(self, n_estimators):
self.n_estimators = n_estimators # 树的数量
self.trees = [] # 存储所有决策树

def fit(self, X, y):
    for _ in range(self.n_estimators):
        # 生成自助采样数据集
        bootstrap_X, bootstrap_y = bootstrap_sample(X, y)
        
        # 创建决策树
        tree = DecisionTree()
        
        # 训练决策树
        tree.fit(bootstrap_X, bootstrap_y)
        
        # 将决策树添加到森林中
        self.trees.append(tree)
        
def predict(self, X):
    # 收集每棵树的预测结果
    tree_predictions = [tree.predict(X) for tree in self.trees]
    
    # 使用投票法确定最终预测结果
    return majority_vote(tree_predictions)
  1. 算法主要代码
    表1. 调用算法参数说明
    序号 函数参数 参数含义 说明 备注

  2. n_estimators 森林中树的数量 默认值为100,树的数量越多模型效果越好,但计算开销也越大 整数类型

  3. max_depth 每棵树的最大深度 默认值为None,即树可以无限生长,直到所有叶子节点都是纯的或达到最小样本数 整数类型

  4. random_seed 随机种子 默认值为42,用于控制自助采样和决策树生长的随机性 整数类型

posted @ 2025-12-26 14:18  Thanatos。syts  阅读(2)  评论(0)    收藏  举报