用多项式回归分析简单投掷数据
进阶实验:训练投石机数据预测模型
问题描述:
(1)投掷角度不变,已知电机速度,如何得出实际投掷距离?
(2)其电机速度(motor_speed)和投掷距离(distance)的对应关系有什么关系?
投掷角度不变,电 机速度与投掷距离 的数据集展示:
学习:i可以通过机器学习,训练投石速度预测模型吗?应用:可以使用训练好的模型,
对新输入的电机速度作推理实现已知电机速度值,就能获得其对应投掷距离吗?
多项式回归
多项式回归(Polynomial Regression)是一种回归分析方法,它在模型中使用多项式方程来拟合数据。与线性回归不同,多项式回归可以捕捉变量之间的非线性关系,因此在处理更复杂的数据模式时非常有用。
多项式回归的数学形式
多项式回归的一般形式可以表示为:
y=β0+β1x+β2x2+β3x3+⋯+βnxn+ϵ
其中:
- y 是因变量(目标)。
- x 是自变量(特征)。
- β0,β1,β2,…,βn 是模型参数。
- ϵ 是误差项,通常假设为独立同分布的正态分布。
如何理解多项式回归
- 线性回归的扩展:多项式回归是线性回归的扩展。线性回归假设变量之间的关系是线性的,而多项式回归通过引入自变量的高次项来捕捉非线性关系。
- 拟合非线性数据:在实际应用中,数据之间的关系往往不是线性的。多项式回归通过使用多项式方程,可以更好地拟合这些非线性数据。
- 多项式的阶数:多项式的阶数(n)决定了模型的复杂度。阶数越高,模型可以捕捉的非线性关系越复杂,但同时也可能带来过拟合(overfitting)的问题。
- 参数估计:与线性回归类似,多项式回归的参数(β0,β1,β2,…,βn)可以通过最小化损失函数(如均方误差)来估计。
多项式回归的应用
多项式回归在许多领域都有应用,例如:
- 经济学:用于分析经济指标之间的非线性关系。
- 生物学:用于描述生物体的生长曲线。
- 工程学:用于拟合物理过程中的非线性数据。
- 机器学习:作为回归任务中的一种方法,用于预测连续的数值输出。
多项式回归的优缺点
优点:
- 可以捕捉变量之间的非线性关系。
- 模型形式灵活,可以通过调整多项式的阶数来适应不同的数据模式。
缺点:
- 阶数选择不当可能导致过拟合或欠拟合。
- 高阶多项式可能在数据的边缘区域出现较大的波动(龙格现象)。
总结
多项式回归是一种强大的回归分析工具,可以用于拟合非线性数据。通过引入自变量的高次项,它扩展了线性回归的适用范围。然而,使用多项式回归时需要谨慎选择多项式的阶数,以避免过拟合和龙格现象。
参考示例
- 多项式回归的数学形式:y=2+3x−0.5x2+0.1x3
- 多项式回归的应用:假设你想分析广告支出与销售额之间的关系。通过使用多项式回归,你可以发现广告支出与销售额之间的非线性关系,从而更准确地预测销售额。
在选择使用线性回归还是多项式回归时,需要根据数据的特点和建模目标来判断。以下是两者的区别以及如何判断使用多项式回归的特点:
线性回归与多项式回归的区别
维度 | 线性回归 | 多项式回归 |
模型形式 | 输出是输入特征的线性组合 | 输出是输入特征的多项式组合 |
适用场景 | 数据呈现线性关系 | 数据呈现非线性关系 |
模型复杂度 | 参数少,模型简单 | 参数多,模型复杂 |
过拟合风险 | 容易欠拟合 | 容易过拟合 |
计算复杂度 | 计算速度快 | 随阶数增加,计算复杂度上升 |
解释性 | 易于理解和解释 | 解释性下降 |
如何判断使用多项式回归
- 数据关系的可视化
- 散点图:绘制自变量与因变量的散点图,观察数据点的分布。如果数据点呈明显的非线性趋势(如曲线形状),则多项式回归可能是更好的选择。
- 残差分析:如果使用线性回归模型拟合数据后,残差图显示明显的模式(如中间有大量正残差的斑块),说明线性模型不适用,可以考虑多项式回归。
- 数据的非线性特征
- 当数据中存在明显的非线性关系时,线性回归可能无法很好地拟合数据,而多项式回归可以通过引入高次项来捕捉这些非线性关系。
- 模型复杂度与泛化能力
- 阶数选择:多项式回归的阶数越高,模型的拟合能力越强,但也更容易过拟合。通常建议从低阶多项式开始尝试,并通过交叉验证等方法选择最优的阶数。
- 正则化:在使用多项式回归时,可以结合正则化方法(如岭回归或Lasso回归)来防止过拟合。
- 应用场景
- 复杂数据建模:多项式回归适用于需要捕捉复杂非线性关系的场景,如物理学中的曲线拟合、工程学中的性能曲线建模、医学研究中的剂量-效应关系等。
- 简单数据建模:如果数据关系较为简单且呈现线性趋势,则线性回归更为合适,因为它简单、高效且易于解释。
总结
- 使用线性回归:当数据关系近似线性,且对模型的解释性和计算效率有较高要求时,线性回归是合适的选择。
- 使用多项式回归:当数据存在明显的非线性关系,且需要更灵活的模型来捕捉这些关系时,多项式回归更为适用
进阶实验:用多项式回归分析简单投掷数据
活动材料
- 多项式回归模型训练.ipynb
- data/投掷数据_速度与距离.csv
- data/投掷数据_完整.csv
活动目的
使用多项式回归算法,探究电机速度对投掷距离的影响。
背景知识
多项式回归算法是一种回归技术,相比于简单的线性回归,它可以拟合更复杂的数据模式,如投掷角度与投掷距离并非线性关系,在图表中表现为曲线而非直线。
数据说明
特征:motor_speed(在软件中配置的电机速度参数,无单位)
标签:distance(投掷距离,单位cm)
体验步骤
1.导入库
我们可以选择使用BaseML完成。
7.模型应用
用角度和电机速度预测投掷物距离
请在csv中找到带有角度和电机速度的csv文件,并将文件名填写到填空处
1)可以修改,数据csv文件的列数据位置, 从0开始。
2)可以修改 x_xolumn【参数】给定的数据下标位置, 推理得到 y_column【2】 的结果。 可以修改这里的下标值,下标对应的数据库csv数据的列的序号。 从做到右,从0开始计数
在已知目标投掷距离和发射角度的情况下,如何预测合适的电机速度?
思路提示1:修改数据集csv文件中的特征与标签,保存为新文件投掷数据2.csv并读取。
思路提示2:通过代码实现特征与标签的读取, 如下方代码实现的功能就是:读取xx.csv文件中的第0、1、2、3列作为特征,第4列作为标签。
model.load_dataset('data/投掷数据.csv', type ='csv',split=True,x_column=[0,1,2,3],y_column=[4])
训练投石机数据预测模型