机器学习_线性回归原理和实战

文章目录


线性回归原理

在讲线性回归之前,我们先看看中学时学的,一元线性回归的公式:y=a∗x+b。这公式对于本篇内容关联还是挺大的。

所谓回归分析 (regression analysis),就是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析,说白了就是当自变量变化的时候,研究一下因变量是怎么跟着变化的,它可以用来预测客流量、降雨量、销售量等。

对于一元线性回归来说,它的内部参数就是未知的斜率和截距。只不过在机器学习中,我们把斜率 a 叫做权重(weight),用英文字母 w 代表,把截距 b 叫做偏置(bias),用英文字母 b 代表。所以机器学习中一元线性回归的公式也写成:y=w∗x+b

如果数据集中有 4 个特征,那么就是:y=w1​x1​+w2​x2​+w3​x3​+w4​x4​+b

因此,我们的模型就会有 5 个内部参数,也就是 4 个特征的权重和一个偏置(截距)需要确定。不过这些公式的具体代码实现,都不用我们自己完成,它们全部封装在工具包里了。你只要对算法的原理有个印象就行了。

对于机器学习来说,最常用的算法工具包是 scikit-learn,简称 sklearn,它是使用最广泛的开源 Python 机器学习库,堪称机器学习神器。sklearn 提供了大量用于数据挖掘的机器学习工具,覆盖数据预处理、可视化、交叉验证和多种机器学习算法。

虽然我们已经选定使用线性回归算法,但是在 sklearn 中又有很多线性回归算法包,比如说基本的线性回归算法 LinearRegression,以及在它的基础上衍生出来的 Lasso 回归和 Ridge 回归等。

注: Lasso 回归和 Ridge 回归👇(来源链接:https://blog.csdn.net/weixin_42504788/article/details/135731547):

正则化不仅可以应用于逻辑回归模型,也可以应用于线性回归和其他机器学习模型,应用L1正则化的回归又叫 Lasso Regression(套索回归),应用L2正则化的回归又叫Ridge Regression(岭回归)。

线性回归实战

来源链接:https://blog.csdn.net/weixin_42504788/article/details/135560072

python 复制代码
df = pd.read_csv('data.csv')

X = df.drop(['浏览量'],axis=1)
y = df.浏览量

#将数据集进行80%(训练集)和20%(验证集)的分割
from sklearn.model_selection import train_test_split #导入train_test_split工具
X_train, X_test, y_train, y_test = train_test_split(X, y, 
                                   test_size=0.2, random_state=0)

from sklearn.linear_model import LinearRegression # 导入线性回归算法模型
linereg_model = LinearRegression() # 使用线性回归算法创建模型

linereg_model.fit(X_train, y_train) # 用训练集数据,训练机器,拟合函数,确定内部参数

y_pred = linereg_model.predict(X_test) #预测测试集的Y值

df_ads_pred = X_test.copy() # 测试集特征数据
df_ads_pred['浏览量真值'] = y_test # 测试集标签真值
df_ads_pred['浏览量预测值'] = y_pred # 测试集标签预测值
df_ads_pred #显示数据

print('当前模型的4个特征的权重分别是: ', linereg_model.coef_)
print('当前模型的截距(偏置)是: ', linereg_model.intercept_)
# 输出结果:
# 当前模型的4个特征的权重分别是:  [   48.08395224    34.73062229 29730.13312489  2949.62196343]
# 当前模型的截距(偏置)是:  -127493.90606857178

这也就是说,我们现在的模型的线性回归公式是:

y=48.08x1​(点赞)+34.73x2​(转发)+29730.13x3​(热度)+2949.62x4​(评级)−127493.91

对当前这个模型,给出评估分数:

python 复制代码
print("线性回归预测评分:", linereg_model.score(X_test, y_test)) # 评估模型
# 输出结果:
# 线性回归预测评分: 0.7085754407718876

在机器学习中,常用于评估回归分析模型的指标有两种:R2 分数和 MSE 指标,并且大多数机器学习工具包中都会提供相关的工具。对此,你无需做过多了解,只需要知道我们这里的 score 这个 API 中,选用的是 R2 分数来评估模型的就可以了。

一般来说,R2 的取值在 0 到 1 之间,R2 越大,说明所拟合的回归模型越优。


学习机器学习的参考资料:

(1)书籍

利用Python进行数据分析

西瓜书

百面机器学习

机器学习实战

阿里云天池大赛赛题解析(机器学习篇)

白话机器学习中的数学

零基础学机器学习

图解机器学习算法

...

(2)机构

光环大数据

开课吧

极客时间

七月在线

深度之眼

贪心学院

拉勾教育

博学谷

...

相关推荐
文火冰糖的硅基工坊11 小时前
[人工智能-大模型-33]:模型层技术概览 - 大模型内部组成与层次调用关系
人工智能
Python算法实战12 小时前
平安大模型面试题:Self-Attention 原理与多头注意力设计
人工智能·算法·自然语言处理·大模型·面试题
安於宿命12 小时前
【machine learning】COVID-19 daily cases prediction
人工智能·机器学习
后端小肥肠12 小时前
【n8n入门系列】3 种方法搞定 n8n 生图!最多3步,小白也能学会的自动化教程
人工智能·openai·agent
Python算法实战12 小时前
腾讯送命题:手写多头注意力机制。。。
人工智能·算法·面试·大模型·强化学习
Rock_yzh12 小时前
AI学习日记——PyTorch深度学习快速入门:神经网络构建与训练实战
人工智能·pytorch·python·深度学习·神经网络·学习
razelan13 小时前
第一例:石头剪刀布的机器学习(xedu,示例15)
人工智能·机器学习
一条星星鱼13 小时前
从0到1:如何用统计学“看透”不同睡眠PSG数据集的差异(域偏差分析实战)
人工智能·深度学习·算法·概率论·归一化·睡眠psg
TMT星球13 小时前
TCL华星t8项目正式开工,总投资额约295亿元
大数据·人工智能
猫头虎13 小时前
DeepSeek刚刚开源了一个3B的 OCR模型:什么是DeepSeek-OCR?单张A100-40G每天可以处理20万+页文档
人工智能·开源·whisper·prompt·aigc·ocr·gpu算力