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

文章目录


线性回归原理

在讲线性回归之前,我们先看看中学时学的,一元线性回归的公式: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)机构

光环大数据

开课吧

极客时间

七月在线

深度之眼

贪心学院

拉勾教育

博学谷

...

相关推荐
5pace16 分钟前
机器学习(西瓜书)第 14 章 概率图模型
人工智能·机器学习
Linux猿19 分钟前
828华为云征文 | 云服务器Flexus X实例:部署 AgentOps,全方位监测智能体
人工智能·华为云·agent·autogen·flexus云服务器x实例·华为云服务器·agentops
Rense136 分钟前
开源RK3588 AI Module7,并与Jetson Nano生态兼容的低功耗AI模块
人工智能·开源
FL16238631291 小时前
[数据集][目标检测]不同颜色的安全帽检测数据集VOC+YOLO格式7574张5类别
人工智能·yolo·目标检测
QuantumYou1 小时前
计算机视觉 对比学习 串烧二
人工智能·学习·计算机视觉
阿利同学1 小时前
热成像目标检测数据集
人工智能·目标检测·机器学习·目标跟踪·数据集·热成像目标检测数据集·机器学习 深度学习
拥抱AGI1 小时前
我说大模型微调没啥技术含量,谁赞成谁反对?
人工智能·学习·语言模型·大模型学习·大模型入门·大模型教程
aqymnkstkw1 小时前
2024年【电气试验】考试题库及电气试验模拟试题
大数据·c语言·人工智能·嵌入式硬件·安全
2401_8504404972 小时前
激发AI创造力:掌握Prompt提示词的高效提问方法
人工智能·prompt
Terry Cao 漕河泾2 小时前
SRT3D: A Sparse Region-Based 3D Object Tracking Approach for the Real World
人工智能·计算机视觉·3d·目标跟踪