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

发布时间:2024年01月23日


线性回归原理

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

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

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

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

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

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


学习机器学习的参考资料:
(1)书籍
利用Python进行数据分析
西瓜书
百面机器学习
机器学习实战
阿里云天池大赛赛题解析(机器学习篇)
白话机器学习中的数学
零基础学机器学习
图解机器学习算法

(2)机构
光环大数据
开课吧
极客时间
七月在线
深度之眼
贪心学院
拉勾教育
博学谷

文章来源:https://blog.csdn.net/weixin_42504788/article/details/135515972
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。