从多变量非线性数据集构建机器学习回归模型2025年2月3日 | 阅读 7 分钟 机器学习回归机器学习回归是一种监督学习算法,用于基于一个或多个输入特征预测连续的数值结果。与预测离散标签的分类模型不同,回归模型旨在预测一个连续范围内的值。 关键概念 - 监督式学习
- 训练数据:模型在标记数据上进行训练,这意味着它从包含输入特征和相应目标值的 数据集 中学习。
- 预测建模:目标是从输入到目标变量的学习一个映射,以便对新的、未见过的数据进行准确的预测。
- 连续输出:回归模型预测的是一个范围内的任何数字。例如,预测房价、气温、股票价格等。
- 特征和目标
- 特征 (X):用于进行预测的输入变量或预测变量。这些可以是连续的、分类的,或者两者的组合。
- 目标 (y):模型旨在预测的连续变量。
回归模型 回归模型用于基于一个或多个预测变量来预测连续结果变量。有多种类型的回归模型,每种都适用于不同类型的数据以及预测变量和目标变量之间的关系。以下是一些常见的回归模型类型: - 线性回归
- 简单线性回归:基于单个预测变量来预测目标变量。
- 多元线性回归:基于多个预测变量来预测目标变量。
- 多项式回归:通过添加预测变量的多项式项(平方、立方等)来扩展线性回归,以捕捉非线性关系。
- 岭回归:一种线性回归,包含一个正则化项(L2 惩罚),通过收缩系数来防止过拟合。
- Lasso 回归:与岭回归类似,但它使用 L1 正则化,可以将某些系数设置为零,通过特征选择有效地选择一个更简单的模型。
- 弹性网络回归:结合了 L1 和 L2 正则化,在岭回归和 Lasso 回归之间取得了平衡。
- 逻辑回归:虽然用于分类,但逻辑回归对二元结果的概率进行建模,并可扩展到多项逻辑回归以处理多个类别。
- 泊松回归:用于计数数据,其中目标变量表示事件发生的次数。
- 支持向量回归 (SVR):支持向量机 (SVM) 的一种扩展,通过将输入特征映射到更高维的空间来支持线性和非线性回归。
- 决策树回归:使用树形结构来建模决策及其可能的结果,捕捉非线性关系。
- 随机森林回归:一种集成方法,结合了多个决策树以提高预测准确性并控制过拟合。
多变量非线性数据集多变量非线性数据集是包含多个输入特征(变量)的数据集,其特点是这些特征与目标变量之间存在非线性关系。以下是这些术语的详细解释: 多变量 “多变量”是指存在多个特征或变量。在数据集中,每个观测值都由多个输入变量表征。 示例:一个包含年龄、收入和教育程度等特征的数据集,其中每个观测值都包含这些变量的值。 非线性 “非线性”表示输入特征与目标变量之间的关系不是直接线性的。换句话说,该关系无法使用线性方程恰当地建模。 示例:房屋尺寸与价格之间的关系是非线性的,因为价格不会随尺寸以恒定的速率增长;对于较大的房屋,价格可能会快速上涨。 多变量非线性数据集的特征 - 多个特征:数据集包含多个输入特征,每个特征都可能以复杂的方式影响目标变量。
- 非线性关系:输入特征与目标变量之间的关系很复杂,无法通过简单的线性方程来捕捉。
- 示例:学习小时数与考试成绩之间的关系可能是非线性的,在达到一定程度后收益递减。
- 交互效应:特征可能以非线性的方式相互作用,这意味着一个特征对目标变量的影响取决于另一个特征的值。
- 示例:温度对作物产量的影响可能取决于土壤湿度水平。
Visual Representation - 线性关系:显示直线散点图。
- 非线性关系:显示曲线或复杂模式的散点图。
多变量非线性数据的常用模型 - 决策树:将选择规则建模为树形结构,因此它们本身就能处理非线性关系。
- 随机森林:决策树的集成,提高了鲁棒性和准确性。
- 梯度提升机 (GBM):按顺序构建树,专注于前一个树的错误。
- 神经网络:使用互联节点层来建模复杂、非线性关系。
- 支持向量机 (SVM):使用核技巧将数据映射到可以进行线性分离的更高维空间。
理解回归和非线性 回归是一种监督学习,其目标是基于一个或多个输入特征 (X) 来预测一个连续的目标变量 (y)。当处理多变量非线性数据集时,(X) 和 (y) 之间的关系通常是非线性的。这意味着传统的线性回归模型无法有效地捕捉潜在模式。相反,需要能够通过其建模的灵活性来捕捉复杂关系的非线性回归模型。 构建机器学习回归模型的步骤步骤 1:数据准备 - 数据收集和探索:获取数据集并探索其特征,包括特征、目标变量、数据类型以及任何缺失值或异常值。
- 数据清洗和预处理:通过插补(例如,均值或中位数)来处理缺失数据,如有必要则移除异常值,并对分类变量进行编码。确保所有特征都是数值型的,并且根据需要进行标准化或归一化以提高模型性能。
步骤 2:数据划分 - 训练-测试划分:将数据集划分为训练集和测试集。训练集用于训练模型,而测试集用于评估模型在未见过的数据上的性能。常见的划分是 80% 用于训练,20% 用于测试。
步骤 3:选择回归模型 - 选择非线性模型:决策树、随机森林、梯度提升机 (GBM)、支持向量机 (SVM) 和神经网络是用于非线性回归的常见选择。每种模型在捕捉不同类型的非线性关系方面都有其优势。
步骤 4:训练模型 - 拟合模型:使用训练数据来训练选定的模型。这涉及到调整其参数以最小化预测值与实际值之间的差异(例如,最小化均方误差)。
步骤 5:评估模型 - 性能指标:使用均方误差 (MSE)、均方根误差 (RMSE) 和 (R2)(决定系数)等指标来评估模型在未见过的数据上的预测效果。
步骤 6:模型调优和优化 - 超参数调优:调整模型参数以提高性能。诸如网格搜索或随机搜索等技术可以系统地搜索超参数组合,以找到最佳设置。
步骤 7:部署模型 - 保存和使用模型:优化后,保存模型以供将来对新数据进行预测。
示例 输出 Mean Squared Error: 0.08754717410386555
Root Mean Squared Error: 0.2958837171996214
R^2 Score: -0.08654424959093654
Best Parameters: {'max_depth': 10, 'n_estimators': 300}
Prediction: [0.55421869]
说明 - 数据准备:加载并准备数据集(`dataset.csv`),包括处理缺失值(`fill`)并将其划分为特征(`X`)和目标(`y`)。
- 模型选择和训练:选择 `RandomForestRegressor` 模型,并使用 `X_train` 和 `y_train` 进行训练。
- 模型评估:使用均方误差 (MSE)、均方根误差 (RMSE) 和 ( R^2 ) 分数在测试集(`X_test`、`y_test`)上评估模型性能。
- 超参数调优:使用 `GridSearchCV`,通过 5 折交叉验证(`cv=5`)来寻找最佳超参数组合(`n_estimators` 和 `max_depth`)。
- 模型保存和加载:使用 `joblib.dump` 保存通过调优找到的最佳模型,并使用 `joblib.load` 将其加载回来。
- 预测:创建一个作为 DataFrame 的新数据点实例(`new_data`),并使用它进行预测(`loaded_model.predict(new_data)`)。
|