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

文章目录


线性回归原理

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

光环大数据

开课吧

极客时间

七月在线

深度之眼

贪心学院

拉勾教育

博学谷

...

相关推荐
molunnnn22 分钟前
day 18进行聚类,进而推断出每个簇的实际含义
机器学习·数据挖掘·聚类
Matrix_1132 分钟前
论文阅读:Matting by Generation
论文阅读·人工智能·计算摄影
Humbunklung36 分钟前
机器学习算法分类
算法·机器学习·分类
一叶知秋秋41 分钟前
python学习day39
人工智能·深度学习·学习
Ai多利1 小时前
深度学习登上Nature子刊!特征选择创新思路
人工智能·算法·计算机视觉·多模态·特征选择
几道之旅1 小时前
MCP(Model Context Protocol)与提示词撰写
人工智能
Spider_Man1 小时前
“AI查用户”也能这么简单?手把手带你用Node.js+前端玩转DeepSeek!
javascript·人工智能·node.js
T.D.C1 小时前
【OpenCV】使用opencv找哈士奇的脸
人工智能·opencv·计算机视觉
大霸王龙1 小时前
软件工程的软件生命周期通常分为以下主要阶段
大数据·人工智能·旅游
yvestine2 小时前
自然语言处理——文本表示
人工智能·python·算法·自然语言处理·文本表示