线性回归
- 1、引言
- 2、线性回归
- 2.1 定义
- 2.2 基本原理
- 2.3 公式
- 2.4 实现
- 2.5 代码示例
- 3、总结
1、引言
小屌丝:鱼哥,最近机器学习的文章写的不少啊。
小鱼:你还挺细心的哦。
小屌丝:那必须的,我要学习,我要成长。
小鱼:别吹了,别给自己脸上贴金了。
小屌丝:我这是正儿八经的哦, 2024的flag,
小鱼:你的2024flag,应该是少充会员。
小屌丝:…
小鱼:难道我说错了嘛。
小屌丝:…
小鱼:还想解释?你可以解释,但是你所说的每一句话都会被我录下来,当做以后的证据。
小屌丝: 我靠… 还能愉快的玩耍的吗?
小鱼:必须的。
小屌丝:那赶紧写完这篇,我们去泡澡。
小鱼:这次去哪里泡澡。
小屌丝:嘿嘿,寻找童年。
小鱼: 嘿嘿… 我懂… 我懂…
2、线性回归
2.1 定义
线性回归是一种用于建立和分析变量之间线性关系的监督学习算法。它主要用于解决回归问题,即预测一个或多个连续数值型输出(因变量)与一个或多个输入特征(自变量)之间的关系。
2.2 基本原理
线性回归基于一个简单的假设,即因变量(输出)与自变量(输入)之间存在线性关系。这意味着我们假设输出可以通过输入的线性组合来预测,其中每个输入特征都与一个权重相乘,然后将它们相加,再加上一个截距(常数项)。
2.3 公式
线性回归的基本公式可以表示为:
y = wx+b
在这个公式中:
- y 是预测的因变量(输出)。
- x 是输入自变量(特征)。
- w 是自变量x的权重,表示x对y的影响程度。
- b 是截距(偏置项),表示当x等于0时,y的值。
线性回归的目标是找到最佳的权重 和截距 ,以最好地拟合观测到的数据点。
通常,使用最小二乘法(Least Squares Method)来估计 和 ,这意味着要找到使观测值与预测值之间的残差平方和最小化的权重和截距。
线性回归是一个简单但强大的工具,常用于数据分析、预测和建模任务,但前提是输入特征与输出之间存在线性关系。如果关系更为复杂,可能需要考虑其他类型的回归模型。
2.4 实现
线性回归的实现通常包括以下几个步骤:
- 特征缩放:在进行线性回归之前,通常需要对输入特征进行缩放,以避免某些特征的尺度对结果产生过大的影响。常用的特征缩放方法有 min-max 缩放和 z-score 缩放等。
- 模型训练:在特征缩放之后,使用训练数据来训练模型,找到最佳拟合直线。常用的优化算法有梯度下降等。
- 模型评估:使用测试数据来评估模型的性能,常用的评估指标有均方误差 (MSE) 和均方根误差 (RMSE) 等。
预测:使用训练好的模型对新的数据点进行预测。
2.5 代码示例
# -*- coding:utf-8 -*-
# @Time : 2024-01-20
# @Author : Carl_DJ
'''
实现功能:
1、生成了一些模拟数据,然后将数据分为训练集和测试集。
2、使用训练数据训练一个线性回归模型,并使用测试数据评估模型的性能。
3、输出了模型的均方误差
'''
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 生成一些模拟数据
X = np.random.rand(100, 1)
y = 3 * X.squeeze() + 2 + np.random.randn(100) * 0.1
# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建线性回归模型
model = LinearRegression()
# 使用训练数据训练模型
model.fit(X_train, y_train)
# 使用测试数据评估模型
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)
3、总结
看到这里,关于线性回归算法的知识就讲完了。
下一讲,我们会来聊一聊 逻辑回归。
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO博客专家;
- 51认证讲师等;
- 认证金牌面试官;
- 职场面试培训、职场规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)测评一、二等奖获得者;
关注小鱼,学习机器学习领域的知识。