【机器学习】什么是线性回归?

什么是线性回归?

线性回归是一种 监督学习算法 ,它通过拟合一个直线(或平面,高维空间下是超平面)来建立 输入特征输出目标 之间的关系。简单来说,线性回归就是找出一个数学方程(通常是线性方程),它能够预测一个数值结果。

  • 输入特征 是你给模型的信息,它们用于帮助模型做出决策或预测。
  • 输出目标 是你希望模型预测或解释的结果。

通俗易懂的例子:

假设你有一个简单的数据集,想要预测某个城市的房价。你知道一些关于这个城市的 房子面积房价 的信息。你希望通过这些数据来预测一个新房子的价格。

例如,已知一些数据:

  • 房子面积:50平方米,100平方米,150平方米
  • 对应房价:150万元,300万元,450万元

你可以通过线性回归找出面积和房价之间的关系。通过简单的计算,线性回归会帮助你找到一个线性方程:房价 = 3 * 面积,即每平方米的价格是 3 万元。

数学上:

线性回归的目标是找到一个公式:

y = mx + b

其中:

  • y 是我们要预测的值(房价)。
  • x 是输入特征(房子面积)。
  • m 是斜率(表示每增加一个单位的面积,房价增加多少)。
  • b 是截距(即当面积为 0 时的房价,通常可以理解为固定成本)。

例子:用 Python 实现线性回归

下面的代码演示了如何使用 Python 中的 Scikit-learn 库来进行线性回归分析。

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from matplotlib import rcParams

# 设置字体为支持中文的字体
rcParams['font.family'] = 'SimHei'
rcParams['axes.unicode_minus'] = False

# 准备数据
# 这里是房子的面积 (平方米)
X = np.array([[50], [100], [150], [200], [250]])
# 这里是对应的房价 (万元)
y = np.array([150, 300, 450, 600, 750])

# 创建线性回归模型
model = LinearRegression()

# 用数据训练模型
model.fit(X, y)

# 打印出模型的斜率 (m) 和截距 (b)
print(f"斜率 m: {model.coef_[0]}")
print(f"截距 b: {model.intercept_}")

# 使用训练好的模型预测房价
new_area = np.array([[120]])  # 假设新房子的面积是 120 平方米
predicted_price = model.predict(new_area)
print(f"预测的房价为:{predicted_price[0]} 万元")

# 可视化数据点和拟合的直线
plt.scatter(X, y, color='blue')  # 绘制原始数据点
plt.plot(X, model.predict(X), color='red')  # 绘制拟合的直线
plt.xlabel("房子面积 (平方米)")
plt.ylabel("房价 (万元)")
plt.title("线性回归:房价与面积的关系")
plt.show()

代码解释:

  1. 数据准备:X 是房子的面积(单位:平方米),y 是对应的房价(单位:万元)。
  2. 创建模型:我们使用 LinearRegression来创建一个线性回归模型。
  3. 训练模型:model.fit(X, y) 通过输入数据训练模型,找到最佳拟合直线。
  4. 查看模型参数:model.coef_ 是斜率 ( m ),model.intercept_ 是截距 b 。
  5. 预测:给定一个新的房子面积(比如 120 平方米),模型会预测出它的房价。
  6. 可视化:使用 matplotlib 绘制出数据点和拟合的直线,帮助我们更直观地理解。

运行结果

python 复制代码
斜率 m: 3.0
截距 b: 0.0
预测的房价为:360.0 万元

结果分析

  • 模型发现每平方米的房价是 3 万元(斜率 ( m = 3 ))。
  • 当房子的面积为 120 平方米时,预测房价为 360 万元。

通过这种方式,线性回归帮助我们找到了房价和面积之间的关系,进而可以预测其他房子的价格。

总结:

线性回归是一种简单而强大的方法,用于预测数值型结果。通过拟合数据点并找到最佳的线性关系,我们可以预测新数据的结果。

相关推荐
西猫雷婶4 小时前
CNN卷积计算
人工智能·神经网络·cnn
格林威5 小时前
常规线扫描镜头有哪些类型?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
倔强青铜三6 小时前
苦练Python第63天:零基础玩转TOML配置读写,tomllib模块实战
人工智能·python·面试
递归不收敛6 小时前
吴恩达机器学习课程(PyTorch 适配)学习笔记:3.3 推荐系统全面解析
pytorch·学习·机器学习
B站计算机毕业设计之家6 小时前
智慧交通项目:Python+YOLOv8 实时交通标志系统 深度学习实战(TT100K+PySide6 源码+文档)✅
人工智能·python·深度学习·yolo·计算机视觉·智慧交通·交通标志
高工智能汽车6 小时前
棱镜观察|极氪销量遇阻?千里智驾左手服务吉利、右手对标华为
人工智能·华为
IT森林里的程序猿7 小时前
基于机器学习方法的网球比赛胜负趋势预测
python·机器学习·django
txwtech7 小时前
第6篇 OpenCV RotatedRect如何判断矩形的角度
人工智能·opencv·计算机视觉
正牌强哥7 小时前
Futures_ML——机器学习在期货量化交易中的应用与实践
人工智能·python·机器学习·ai·交易·akshare
倔强青铜三7 小时前
苦练Python第62天:零基础玩转CSV文件读写,csv模块实战
人工智能·python·面试