官网:https://www.lanqiao.cn/courses/29224/learning/?id=1723394&compatibility=false
一、集成学习和随机森林方法——特征的重要性
计算现实问题中的特征重要性
让我们考虑一个数据集,这数据集的内容是 Booking.com 和 TripAdvisor.com 上所列旅馆的一些信息,数据集的特征是不同类别(包括服务质量、房间状况、性价比等)的平均评分,目标变量为旅馆在网站上的总评分。首先导入相关库。
# 导入随机森林回归器,这是一种集成学习方法
from sklearn.ensemble.forest import RandomForestRegressor
import numpy as np
import pandas as pd
''' 导入seaborn库,它是一个基于matplotlib的数据可视化库,
了一系列高级接口,用于制作吸引人且信息丰富的统计图形'''
import seaborn as sns
# 从matplotlib库中导入pyplot模块,它提供了类似于MATLAB的绘图框架,适合交互式绘图
from matplotlib import pyplot as plt
'''这行神奇的代码是IPython的魔法命令,
它告诉Jupyter Notebook直接在输出单元格中显示matplotlib图形
而不是创建一个新窗口。这样可以使输出更加整洁,便于在notebook中直接查看图形。'''
%matplotlib inline
集成学习(Ensemble /ɒnˈsɒmb(ə)l/ Learning),也称为集成方法(Ensemble Method),是一种机器学习技术,它通过结合多个预测模型来提高单个模型的性能。集成学习的核心思想是,通过组合多个弱学习器(base learners),构建出一个强学习器(strong learner),以此来提高模型的准确性和鲁棒性。
集成学习通常分为两大类:
平行集成(Parallel Ensemble):这类方法中,多个弱学习器并行训练,每个学习器独立地进行预测,最终通过某种规则(如平均、投票等)来合并这些预测结果。常见的平行集成方法包括:
- Bagging(例如随机森林 RandomForest):通过随机抽样和替换来构建多个不同的训练集,然后对每个训练集训练一个模型,最后通过投票(分类问题)或平均(回归问题)来合并预测结果。
- Boosting(例如AdaBoost、XGBoost、LightGBM):通过迭代地训练一系列模型,每个模型都试图修正前一个模型的错误,最后通过加权投票