机器学习——回归方法(1)

这篇博客介绍了回归预测的起源,特别是线性回归模型的选择和数学理论基础。线性回归假设特征与结果间存在线性关系,并通过损失函数(如平方误差)来评估模型性能,通常使用最小二乘法或梯度下降法优化参数。

一、回归预测简介

现在我们知道的回归一词最早是由达尔文的表兄弟Francis Galton发明的。Galton在根据上一年的豌豆种子的尺寸预测下一代豌豆种子的尺寸时首次使用了回归预测。他在大量的对象上应用了回归分析,包括人的身高。他注意到,如果双亲的高度比平均高度高的话,则他们的子女也倾向于比平均身高高,但尚不及双亲。孩子的身高向着平均高度回退(回归)。Galton在多项研究上都注意到这个现象,所以尽管这个单词跟数值预测没有任何关系,但是仍然把这种方法称为回归。

二、回归方法的适用条件:

1) 收集的数据是数值型数据,或可转为数值型数据

2) 建立数学模型,即一个函数,这个函数里含有未知的参数,通过对收集到的数据进行学习,可以估计出参数。然后利用这个模型去预测/分类新的数值型数据。

3)在对数值型数据的处理后,具体的适用条件见后面具体的回归算法

三、线性回归模型选择

线性回归假设特征和结果满足线性关系,

四、数学理论部分

其实线性关系的表达能力非常强大,每个特征对结果的影响强弱可以有前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算。这样就可以表达特征与结果之间的非线性关系。

       收集的数据中,每一个分量,就可以看做一个特征数据。每个特征至少对应一个未知的参数。这样就形成了一个线性模型函数,我们可以用x_{1},x_{2},...,x_{n}  去描述 feature (特征)里面的分量,比如为了预测房屋的价格,可以设 x1=房间的面积, x2=房间的朝向,等等,我们可以做出一个估计函数:

h(x)=h_{\Theta }(x)=\Theta_{0}+\Theta_{1}x_{1}+\Theta _{2}x_{2}+...

θ 在这儿称为参数,在这的意思是调整 feature 中每个分量的影响力,就是到底是房屋的面积更重要还是房屋的地段更重要。为了如果我们令 X0 = 1,就可以用向量的方式来表示了:
h_{\Theta }(x)=\Theta_{0}x_{0}+\Theta_{1}x_{1}+\Theta _{2}x_{2}+...=\Theta ^{T}X

我们程序也需要一个机制去评估我们 θ 是否比较好,所以说需要对我们做出的 h 函数进行评估,一般这个函数称为损失函数(loss function)或者错误函数(error function),描述 h 函数不好的程度,在下面,我们称这个函数为 J 函数
J(\Theta )=\frac{1}{2} \sum_{i=1}^{m}(h_{\Theta }(x^{(i)})-y^{(i)})^{2}

这个错误估计函数是去对 x(i)的估计值与真实值 y(i)差的平方和作为错误估计函数,前面乘上的 1/2 是为了在求导的时候,这个系数就不见了。这个损失函数是关于theta的一个凸函数,它的极值点就是我们要求的最小值,这里其实为梯度下降法埋下了一个伏笔。

至于为何选择平方和作为错误估计函数,后面从概率分布的角度讲解了该公式的来源。

如何调整 θ 以使得 J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一种完全
是数学描述的方法, 和梯度下降法。

 

 

### 关于机器学习中的回归分析 #### 回归分析的概念 回归分析是一种统计学上研究变量之间相互关系的方法,旨在通过构建数学模型来描述因变量(目标变量)与自变量(特征变量)之间的依赖关系。在机器学习领域内,线性回归是最基础也是最常用的回归方法之一[^1]。 对于给定的数据集 \((X, y)\),其中 \(X\) 表示输入样本矩阵而 \(y\) 是对应的标签向量,线性回归试图找到一条直线使得这条直线上下波动最小化从而最好地拟合这些点的位置分布情况;当存在多个维度时,则寻找超平面来进行最佳匹配。 #### 实现方法和技术栈 为了实现上述提到的各种类型的回归算法,在Python编程环境中可以借助多种库完成: - **Pandas**: 提供高效灵活的数据结构以及数据分析工具,方便读取、清洗并预处理原始数据文件; - **Scikit-Learn (sklearn)**: 这是一个非常流行的开源软件包,它实现了众多经典的监督式和非监督式的机器学习算法,并提供了简单易用的应用接口以便快速搭建实验环境或生产系统; 下面给出一段简单的代码片段展示如何利用scikit-learn进行线性回归建模过程: ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import pandas as pd # 加载数据集 data = pd.read_csv('your_dataset.csv') X = data.drop(columns=['target']) y = data['target'] # 划分训练集测试集 X_train, X_test, y_train, y_test = train_test_split(X, y) # 创建模型实例 model = LinearRegression() # 训练模型 model.fit(X_train, y_train) # 输出模型参数 print(f'Coefficients: {model.coef_}') print(f'Intercept: {model.intercept_}') # 预测新数据的结果 predictions = model.predict(X_test) ``` 此外还有其他一些重要的组件如`matplotlib` 和 `seaborn` 可用于绘制图表辅助理解数据特性及验证模型效果等操作[^2]。 #### 应用场景举例 回归分析广泛应用于各个行业当中解决实际问题,以下是几个典型例子: - **房价预测**:基于房屋面积大小、地理位置等因素估计房产价值; - **销售额度估算**:根据历史销售记录推测未来某段时间内的收入水平; - **医疗健康监测**:依据患者生理指标变化趋势判断疾病发展趋势或者治疗方案的有效程度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值