AI-线性回归模型(一)

简介: 线性回归是用于分析变量间线性关系的统计方法,常见于房价预测、销售额预测和贷款额度评估。通过最小二乘法寻找最佳直线方程y=wx+b,其中y是因变量,x是自变量,w和b是模型参数。在Python的`sklearn`库中,使用`LinearRegression`类可构建模型,通过`fit`训练和`predict`进行预测。损失函数通常用平方损失(均方误差)衡量预测误差,优化目标是最小化这些误差的平方和。

线性回归应用场景


  • 房价预测,通过分析房地产市场的历史数据,如房屋大小、位置、建造年份等因素,线性回归可以帮助预测未来房价的走势。


  • 销售额预测,企业可以利用线性回归模型来预测产品的销售额,这通常涉及到产品价格、市场营销预算、季节性因素等变量的分析。


  • 贷款额度预测,金融机构可以使用线性回归来评估客户的信用风险,并据此决定贷款额度。


线性回归(Linear regression)


线性回归是一种利用直线方程对变量之间关系进行建模的回归分析方法


  1. 定义:线性回归分析用于研究两个或多个变量之间的关系,其中一个是自变量,另一个是因变量。在这种方法中,目标是找到一个线性方程,即一个直线,该直线能够尽可能好地预测因变量基于自变量的值。
  2. 公式:线性回归模型通常表示为 ( y = wx + b ),其中 ( y ) 是因变量,( x ) 是自变量,( w ) 是权重(斜率),而 ( b ) 是偏差(截距)。这个方程描述了自变量和因变量之间的直线关系。
  3. 最小二乘法:为了找到最佳的 ( w ) 和 ( b ) 值,通常采用最小二乘法。该方法通过最小化实际数据点和回归线之间的平方差来求解这些参数。


  • 期末成绩:0.7×考试成绩+0.3×平时成绩



特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型 。


sklearn中, 线性回归的API在linear_model模块中


sklearn.linear_model.LinearRegression()


  • LinearRegression.coef_:回归系数



代码


from sklearn.linear_model import LinearRegression
x = [[80, 86],
     [82, 80],
     [85, 78],
     [90, 90],
     [86, 82],
     [82, 90],
     [78, 80],
     [92, 94]]
 
y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]
 
estimator = LinearRegression()
 
estimator.fit(x,y)
print(estimator.coef_)
estimator.predict([[100, 80]])


通过sklearn.linear_model.LinearRegression类创建一个线性回归模型实例。这个类有许多参数可以设置,如fit_intercept(是否计算模型的截距)和normalize(是否对数据进行标准化处理)等。


  1. 训练模型:使用训练集数据调用模型的fit方法来训练模型。


  1. 进行预测:训练好模型后,使用predict方法对测试集或新数据进行预测。


  1. 评估模型:常用的评估指标包括均方误差(MSE)、决定系数(R²)等。这些指标可以帮助我们了解模型的预测性能和数据拟合程度。


损失函数

 

用来衡量机器学习模型性能的函数,损失函数可以计算预测值与真实值之间的误差(用一个实数来表示),误差越小说明模型性能越好。





  • 误差的大小是坐标系中两点之间的距离,将真实值与预测值相减得到误差。


但是用来衡量回归损失的时候, 不能简单的将每个点的预测误差相加。



平方损失


回归问题的损失函数



  1. yi 为第i个训练样本的真实值


  1. h(xi) 为第i个训练样本特征值组合预测函数又称最小二乘法


import numpy as np
from sklearn.linear_model import LinearRegression
 
if __name__ == '__main__':
 
    
    x = np.mat([[80, 86],
                [82, 80],
                [85, 78],
                [90, 90],
                [86, 82],
                [82, 90],
                [78, 80],
                [92, 94]])
 
    # 目标值
    y = np.mat([84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]).transpose()
 
    
    ones_array = np.ones([len(x), 1])
    x = np.hstack([ones_array, x])
 
    
    w = (x.transpose() * x) ** -1 * x.transpose() * y
    print('[%.1f %.1f %.1f]' % (w[0][0], w[1][0], w[2][0]))
 
    # 使用 LinearRegression 
    estimator = LinearRegression(fit_intercept=True)
    estimator.fit(x, y)
    print(estimator.coef_[0])
 
    # 输出结果
    # [0.0 0.3 0.7]
    # [0.  0.3 0.7]



AI-线性回归模型(二)+https://developer.aliyun.com/article/1544598?spm=a2c6h.13148508.setting.31.2a1e4f0e3aAL8b

相关文章
|
4天前
|
人工智能 移动开发 Java
Java智能之Spring AI:5分钟打造智能聊天模型的利器
尽管Python最近成为了编程语言的首选,但是Java在人工智能领域的地位同样不可撼动,得益于强大的Spring框架。随着人工智能技术的快速发展,我们正处于一个创新不断涌现的时代。从智能语音助手到复杂的自然语言处理系统,人工智能已经成为了现代生活和工作中不可或缺的一部分。在这样的背景下,Spring AI 项目迎来了发展的机遇。尽管该项目汲取了Python项目如LangChain和LlamaIndex的灵感,但Spring AI并不是简单的移植。该项目的初衷在于推进生成式人工智能应用程序的发展,使其不再局限于Python开发者。
21 2
EMQ
|
8天前
|
传感器 人工智能 安全
EMQX 与 MQTT: AI 大模型时代的分布式数据中枢
在以数据为核心的 AI 时代,基于 MQTT 协议的消息服务器 EMQX 能帮助企业更好的利用人工智能和机器学习模型,是智能化系统中核心的数据基础软件。
EMQ
124 1
|
8天前
|
存储 人工智能 缓存
[AI Kimi] Context Caching 正式公测,推动长文本模型降本 90%
Kimi 的上下文缓存(Context Caching)技术正式公测。该技术通过预先存储数据,显著降低了计算成本和延迟,适用于长文本模型,帮助节省高达 90% 的费用,并将首 Token 延迟降低 83%。
|
10天前
|
人工智能
语言≠思维,大模型学不了推理:一篇Nature让AI社区炸锅了
【7月更文挑战第3天】新研究表明语言和思维是分离的,引发AI社区激烈讨论。论文通过fMRI实验显示语言处理与思维在大脑中独立,即使无语言人们仍能推理。这质疑了AI仅通过语言学习高级智能的可能性,暗示应更关注模拟人类思维。[[1](https://www.nature.com/articles/s41586-024-07522-w)]
27 1
|
4天前
|
机器学习/深度学习 人工智能 大数据
AI大模型企业应用实战(24)-什么是zero-shot, one-shot和few-shot Learning?
零样本学习(Zero-Shot Learning)是机器学习中的一种方法,模型在未见过的类别上进行分类,依赖于类别描述来建立训练与测试集间的联系。例如,通过已知的马、老虎和熊猫特征推断斑马。单样本学习(One-Shot Learning)则是在极少量样本(如一个)的情况下进行学习,目标是减少训练数据需求,适用于新类别出现时无需重新训练的情况。小样本学习(Few-Shot Learning)是处理仅有少量类内样本的学习任务。这三者常用于图像分类、语义分割等场景,One-Shot是Few-Shot的特殊情况。
|
5天前
|
人工智能 自然语言处理 自动驾驶
AI大模型的战场:通用与垂直的较量
AI大模型的战场:通用与垂直的较量
16 0
|
8天前
|
人工智能 Java
AI大模型----SpringBoot添加放行最简单的方式@AuthAccess,问题库构思,概念title,答案text,搜索search
AI大模型----SpringBoot添加放行最简单的方式@AuthAccess,问题库构思,概念title,答案text,搜索search
|
8天前
|
人工智能
AI软件开发大模型,最简单的相关构思,有提问的输入框,有返回答案的答案框
AI软件开发大模型,最简单的相关构思,有提问的输入框,有返回答案的答案框
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
技术分析:AI大模型战场的分化与赛点分析
技术分析:AI大模型战场的分化与赛点分析
|
10天前
|
机器学习/深度学习 人工智能 供应链