网站首页 > 技术文章 正文
线性回归的基本概念
线性回归分析是数据挖掘里一个非常重要的方法,相信大家以前在高中或者大学时都学过一点点线性回归的概念。在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。
听着有点复杂,简单来说,就是看一组零散的数据是否存在相关性。直白点说,就是在图像上给你一堆点,你来找一条线,然后让这条线尽可能的在所有点的中间。这个找直线的过程,就是在做回归了。如下图所示。
添加图片注释,不超过 140 字(可选)
线性回归是一种预测连续值的统计方法 。它假设因变量(Y)与一个或多个自变量(X)之间存在线性关系。简单线性回归涉及一个自变量和一个因变量,其模型可以表示为 Y = β0 + β1X + ε,其中β0是截距,β1是斜率,ε是误差项。
进一步思考:为什么非要找这么一条尽可能的在所有点的中间的直线?
我们面对的是一堆散乱的点,看不出具体的相关关系,而线能够体现趋势。所以,我们就是想办法来找一条尽可能在所有点的中间的直线,代表一个数据的整体趋势,让数据的整体关系更加清晰可见,这样就方便我们预判未来的情况。
回归的目的:通过找到的线来预测未来。
回归之所以能预测,是因为它的底层逻辑是:通过历史数据,摸透了“套路”,然后通过这个套路来预测未来的结果。
· 注意:在回归中,我们要预测的target是连续型数据(降雨量,房价,长度,密度这些)
应用场景
线性回归分析在日常工作中运用非常广泛,通过线性回归,我们可以用模型去描述两组数据中是否存在相关性。
举个例子:
在分析销售数据时,我们经常要对广告费用以及销售额的关系进行判断,评估广告费用对销售额的作用到底有多大,公司应不应该加大广告费投入,如果未来投入一定的广告费用,预测销售额可以达到多少…这一系列问题都可以通过线性回归分析去得出答案。
提升预测准确性
怎么使得预测更加准确呢?那就多加入一些预测信息,机器学习中也把这些预测信息叫作特征。特征多了呢,我们的预测也就会靠谱的多。同时,特征增多了,原来的参数也就不够用了。所以,有几个特征就会有几个参数,即让每一个特征对应一个参数。这用多个x 来预测 y ,就是多元线性回归,也可以引出线性回归的一般表达式:
添加图片注释,不超过 140 字(可选)
举个例子:
拿房价预测来说,可能需要综合考虑到地段、房屋大小、距离、还有其他,并且按照重要性大小给到他们一定的权重大小(体现在下面公式中就是系数的大小)。 那么写成表达式为:
添加图片注释,不超过 140 字(可选)
这个式子就是一个回归方程,地段、距离这些是特征,房价就是要预测的标签,系数w称为回归系数,我们通过输入收集到的现有房价信息数据求得回归系数w的过程就是回归。得到回归系数后,我们另外拿一个房屋信息数据输入,就可以通过这个式子得到预测值,也就是这里预测出的房价。
为了方便计算,我们可以用矩阵来表示上面的方程:
添加图片注释,不超过 140 字(可选)
其中,W看成W1 ~Wn组成的列矩阵,x 是 xi1 ~ xin 不同特征组成的特征矩阵。这个预测函数的本质就是我们需要构建的模型,机器学习中也称“决策函数”。
实际操作案例
以Python的statsmodels库为例,演示如何进行线性回归分析:
import statsmodels.api as sm
# 假设df是包含自变量X和因变量Y的DataFrame
X = df[['Independent Variable']]
Y = df['Dependent Variable']
# 添加常数项,以便模型包含截距
X = sm.add_constant(X)
# 建立线性回归模型
model = sm.OLS(Y, X).fit()
# 输出回归结果
print(model.summary())
总结
线性回归是一个强大的工具,适用于各种预测和分析场景。通过理解其基本原理和正确应用,可以有效地从数据中提取信息和洞见。
猜你喜欢
- 2025-01-01 使用 Python 和 scikit-learn 学习回归算法
- 2025-01-01 多元自适应回归样条算法
- 2025-01-01 机器学习入坑指南(三):简单线性回归
- 2025-01-01 高中数学:线性回归方程
- 2025-01-01 三步建立一元线性回归算法(房价预测)
- 2025-01-01 线性回归的数学原理与梯度下降算法
- 2025-01-01 「书讯」多元统计分析实验
- 2025-01-01 多元自适应回归样条算法解释及举例python
- 2025-01-01 SPSS实战:搞明白单因素vs多因素,二元vs多元Logistic回归分析
- 2025-01-01 一文带您了解线性回归:多个变量之间的最佳拟合线的算法
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)