集成学习——回归

这篇博客介绍了回归分析在机器学习中的应用,包括回归任务的定义、使用sklearn构建回归项目的步骤、线性回归模型的原理和推广,以及与其他模型如回归树和支持向量机回归的对比。此外,还探讨了线性回归的最小二乘估计和多项式回归的局限性,并给出了相关作业和参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导论

  • 在这里插入图片描述

  • 根据因变量的是否连续,有监督学习又分为回归分类

    • 回归:因变量是连续型变量,如:房价,体重等。

      例子: Boston房价数据集

      from sklearn import datasets
      boston = datasets.load_boston()
      X = boston.data
      y = boston.target
      features = boston.feature_names
      
    • 分类:因变量是离散型变量,如:是否患癌症,西瓜是好瓜还是坏瓜等。

      例子:iris鸢尾花数据集

      from sklearn import datasets
      iris = datasets.load_iris()
      X = iris.data
      y = iris.target
      features = iris.feature_names
      

使用sklearn构建完整的机器学习项目流程

  • 步骤:
    • 明确项目任务:回归/分类
    • 收集数据集并选择合适的特征。
    • 选择度量模型性能的指标。
    • 选择具体的模型并进行训练以优化模型。
    • 评估模型的性能并调参。

使用sklearn构建完整的回归项目

  • 收集数据集并选择合适的特征

  • 选择度量模型性能的指标:

    • MSE均方误差:MSE(y,y^)=1nsamples∑i=0nsamples−1(yi−y^i)2.\text{MSE}(y, \hat{y}) = \frac{1}{n_\text{samples}} \sum_{i=0}^{n_\text{samples} - 1} (y_i - \hat{y}_i)^2.MSE(y,y^)=nsamples1i=0nsamples1(yiy^i)2.
    • MAE平均绝对误差:MAE(y,y^)=1nsamples∑i=0nsamples−1∣yi−y^i∣\text{MAE}(y, \hat{y}) = \frac{1}{n_{\text{samples}}} \sum_{i=0}^{n_{\text{samples}}-1} \left| y_i - \hat{y}_i \right|MAE(y,y^)=nsamples1i=0nsamples1yiy^i
    • R2R^2R2决定系数:R2(y,y^)=1−∑i=1n(yi−y^i)2∑i=1n(yi−yˉ)2R^2(y, \hat{y}) = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}R2(y,y^)=1i=1n(yiyˉ)2i=1n(yiy^i)2
    • 解释方差得分:explained_variance(y,y^)=1−Var{ y−y^}Var{ y}explained\_{}variance(y, \hat{y}) = 1 - \frac{Var\{ y - \hat{y}\}}{Var\{y\}}explained_variance(y,y^)=1Var{ y}Var{ yy^}
  • 选择具体的模型并进行训练

    • 线性回归模型:

      假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w :

      假设:数据集D={ (x1,y1),...,(xN,yN)}D = \{(x_1,y_1),...,(x_N,y_N) \}D={ (x1,y1),...,(xN,yN)}xi∈Rp,yi∈R,i=1,2,...,Nx_i \in R^p,y_i \in R,i = 1,2,...,NxiRp,yiR,i=1,2,...,NX=(x1,x2,...,xN)T,Y=(y1,y2,...,yN)TX = (x_1,x_2,...,x_N)^T,Y=(y_1,y_2,...,y_N)^TX=(x1,x2,...,xN)T,Y=(y1,y2,...,yN)T

      假设X和Y之间存在线性关系,模型的具体形式为y^=f(w)=wTx\hat{y}=f(w) =w^Txy^=f(w)=wTx

      from sklearn import linear_model      # 引入线性回归方法
      lin_reg = linear_model.LinearRegression()       # 创建线性回归的类
      lin_reg.fit(X,y)        # 输入特征X和因变量y进行训练
      print("模型系数:",lin_reg.coef_)             # 输出模型的系数
      print("模型得分:",lin_reg.score(X,y))    # 输出模型的决定系数R^2
      
    • 最小二乘估计:

      衡量真实值yiy_iyi</

### 集成学习用于回归预测模型 #### 构建方法与原理 集成学习是一种通过组合多个弱学习器来创建更强的学习器的技术。对于回归问题,两种最常用的集成方法是随机森林(Random Forests)和梯度提升机(Gradient Boosting Machines, GBM)。这两种方法都旨在通过不同的机制减少单个模型的偏差和方差。 - **随机森林**:这是一种基于决策树的集成方法,它通过对原始数据集进行有放回抽样(即自助法),并在此基础上构建多棵决策树。每棵树独立做出预测,最终的结果通常是这些树预测值的平均值。这种方法不仅提高了模型的准确性,还增强了其泛化能力[^2]。 - **梯度提升机 (GBM)**:不同于随机森林中各树之间相互独立,在GBM中每一颗新的树都会尝试修正前一棵树所犯下的错误。具体来说,就是利用残差作为目标变量训练下一颗树,并逐步迭代优化整个模型的表现。为了防止过拟合,通常会在每次迭代过程中引入正则项以及控制最大深度等措施[^3]。 #### 实例展示 下面是一个简单的Python代码示例,展示了如何使用`scikit-learn`库实现上述提到的两种集成学习方法来进行房价预测: ```python from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor from sklearn.metrics import mean_squared_error # 加载加州房屋价格数据集 data = fetch_california_housing() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target) # 使用随机森林进行回归预测 rf_model = RandomForestRegressor(n_estimators=100) rf_model.fit(X_train, y_train) y_pred_rf = rf_model.predict(X_test) mse_rf = mean_squared_error(y_test, y_pred_rf) print(f'RandomForest MSE: {mse_rf}') # 使用梯度提升机进行回归预测 gbm_model = GradientBoostingRegressor(n_estimators=100) gbm_model.fit(X_train, y_train) y_pred_gbm = gbm_model.predict(X_test) mse_gbm = mean_squared_error(y_test, y_pred_gbm) print(f'GradientBoosting MSE: {mse_gbm}') ``` 此段代码首先加载了一个公开可用的数据集——加利福尼亚州住房市场价值记录;接着分别应用了随机森林和支持向量机两个不同类型的集成算法完成对未知样本的价格估计任务;最后比较两者之间的均方误差(MSE),以此评估各自的效果优劣程度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值