【人工智能】简单线性回归模型介绍及python实现

这篇具有很好参考价值的文章主要介绍了【人工智能】简单线性回归模型介绍及python实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


简单线性回归是人工智能和统计学中一个基本的预测技术,用于分析两个连续变量之间的线性关系。在简单线性回归中,我们试图找到一个线性方程来最好地描述这两个变量之间的关系。

一、 基本概念

  1. 变量:简单线性回归涉及两个变量 - 自变量(independent variable)和因变量(dependent variable)。自变量通常是我们控制或选择的变量,而因变量是我们试图预测的变量。

  2. 线性关系:假设自变量(X)和因变量(Y)之间存在线性关系,可以表示为 Y = aX + b,其中a是斜率(slope),b是截距(intercept)。

二、模型训练

  • 最小二乘法:这是一种数学优化技术,用于找到最佳拟合线,使得所有数据点到回归线的垂直距离(即残差)的平方和最小。

  • 斜率和截距:通过数据计算得到的斜率和截距定义了最佳拟合线,可用于预测。

三、应用

简单线性回归在多个领域都有应用,例如:

  • 经济学:预测消费者支出、市场趋势。
  • 生物学:研究环境变化对物种的影响。
  • 工程:分析材料的压力和变形等。

四、优缺点

  • 优点:模型简单易懂;计算要求不高;可解释性强。
  • 缺点:仅适用于线性关系;对异常值敏感;不适用于复杂的关系或多个自变量的情况。

五、Python示例

1、示例一

在Python中,可以使用scikit-learn库来实现简单线性回归:

from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt

# 示例数据
X = np.array([[1], [2], [3], [4]]) # 自变量
Y = np.array([2, 4, 6, 8])         # 因变量

# 创建模型并拟合数据
model = LinearRegression()
model.fit(X, Y)

# 预测
X_new = np.array([[5]])
y_pred = model.predict(X_new)

# 绘图
plt.scatter(X, Y, color='blue')  # 原始数据点
plt.plot(X, model.predict(X), color='red')  # 拟合的直线
plt.scatter(X_new, y_pred, color='green')  # 预测点
plt.title("Simple Linear Regression")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

y_pred

【人工智能】简单线性回归模型介绍及python实现,人工智能,线性回归,python

2、示例二

比如你做了一个企业想要招人,但是不知道月薪应该定在多少,你做了一个月薪和收入的调研,并做一个y=w*x+b的工作年限和薪资的线性模型,来预估你可以每个月给员工发薪资在哪个区间

import pandas as pd

# 导入
url = "https://raw.githubusercontent.com/Salary_Data.csv"
data = pd.read_csv(url)
data

# y = w*x + b
x = data["YearsExperience"]
y = data["Salary"]
x

运行结果:

0      0.3
1      0.6
2      0.8
3      1.1
4      1.3
5      1.5
6      2.0
7      2.2
8      2.9
9      3.0
10     3.2
11     3.2
12     3.7
13     3.9
14     4.0
15     4.0
16     4.1
17     4.5
18     4.9
19     5.1
20     5.3
21     5.9
22     6.0
23     6.8
24     7.1
25     7.9
26     8.2
27     8.7
28     9.0
29     9.5
30     9.6
31    10.3
32    10.5
Name: YearsExperience, dtype: float64
## 下载汉语
!pip install wget 
import wget
wget.download("https://github.com/ChineseFont.ttf")
# 运行结果
Collecting wget
  Downloading wget-3.2.zip (10 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: wget
  Building wheel for wget (setup.py) ... done
  Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9655 sha256=24b9cab9f8aabad3e8e810a1a1322dd97d1b82b03d786e44d7b1a6401a23a8e8
  Stored in directory: /root/.cache/pip/wheels/8b/f1/7f/5c94f0a7a505ca1c81cd1d9208ae2064675d97582078e6c769
Successfully built wget
Installing collected packages: wget
Successfully installed wget-3.2
ChineseFont.ttf

定义一个函数实现y=w*x+b模型

def plot_pred(w,b):
  y_pred = w*x + b
  plt.plot(x,y_pred,c="blue",label="预测线")
  plt.scatter(x,y,marker="x",color="red",label="真是数据")
  # 添加标题和轴标签
  plt.title("年资-薪水")
  plt.xlabel("年资")
  plt.ylabel("月薪(千)")
  plt.xlim([0, 12])
  plt.ylim([-60, 140])
  plt.legend()
  plt.show()
plot_pred(3,10)

【人工智能】简单线性回归模型介绍及python实现,人工智能,线性回归,python
引入ipywidgets 模块 自动进行调整w b参数

from ipywidgets import interact

interact(plot_pred,w=(-100,200,1),b=(-100,200,1))

【人工智能】简单线性回归模型介绍及python实现,人工智能,线性回归,python

简单线性回归是了解机器学习的一个很好的起点,为理解更复杂的模型打下基础。

3、 scatter函数详解

在Python中,scatter 函数通常用于绘制散点图,它是matplotlib库中的一个功能。散点图是用来展示两个变量之间关系的图表类型,其中每个点的位置由两个变量的值决定。下面是关于scatter 函数的详细用法介绍:

基本用法

首先,你需要导入matplotlib库中的pyplot模块:

import matplotlib.pyplot as plt

基本的scatter 函数用法如下:

plt.scatter(x, y)
plt.show()

这里,xy 是两个相同长度的列表或数组,分别代表散点图中每个点的X和Y坐标。

参数详解

scatter 函数提供了许多参数来自定义散点图:

  • s:点的大小。可以是单个值或与数据点数量相同的数组。
  • c:点的颜色。可以是颜色名称、RGB值或与数据点数量相同长度的颜色数组。
  • marker:表示点的形状,如’o’表示圆形,'s’表示方形等。
  • alpha:点的透明度,范围从0(完全透明)到1(完全不透明)。

高级用法

改变点的大小和颜色

你可以根据数据点的某些特性来改变点的大小和颜色。例如,假设你有另一个数组sizes,用于表示每个点的大小:

plt.scatter(x, y, s=sizes)
plt.show()

同样,如果你有一个数组colors用于指定每个点的颜色:

plt.scatter(x, y, c=colors)
plt.show()
添加标题和轴标签

为了使图表更加易于理解,你可以添加标题和轴标签:

plt.scatter(x, y)
plt.title("Scatter Plot Example")
plt.xlabel("X Axis Label")
plt.ylabel("Y Axis Label")
plt.show()
颜色条

如果你根据变量给点着色,你可能想添加一个颜色条来表示这种映射:

scatter = plt.scatter(x, y, c=colors)
plt.colorbar(scatter)
plt.show()

示例

以下是一个完整的例子,展示了如何创建一个自定义的散点图:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)

# 绘制散点图
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis')
plt.colorbar()  # 显示颜色条

# 添加标题和轴标签
plt.title("Customized Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")

# 展示图表
plt.show()

这段代码创建了一个散点图,其中点的大小和颜色由随机数决定,使用了颜色映射(cmap)来指定颜色范围。文章来源地址https://www.toymoban.com/news/detail-797421.html

到了这里,关于【人工智能】简单线性回归模型介绍及python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文详解人工智能:线性回归、逻辑回归和支持向量机(SVM)

    在人工智能领域,线性回归、逻辑回归和支持向量机是常见的机器学习算法。本文将详细介绍这三种算法的原理和应用,并提供相应的代码示例。 线性回归是一种用于建立变量之间线性关系的回归分析方法。它通过拟合一个线性模型来预测连续变量的值。线性回归的目标是找

    2024年02月03日
    浏览(41)
  • 【深入探究人工智能】逻辑函数|线性回归算法|SVM

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:小智带你闲聊 🎉代码仓库:小智的代码仓库 机器学习算法是一种基于数据和经验的算法,通过对大量数据的学习和分析,自动发现数据中的模式、规律和关联,并利用这些模式和规律来进行预测

    2024年02月08日
    浏览(43)
  • 人工智能基础_机器学习001_线性回归_多元线性回归_最优解_基本概念_有监督机器学习_jupyter notebook---人工智能工作笔记0040

       线性和回归,就是自然规律,比如人类是身高趋于某个值的概率最大,回归就是通过数学方法找到事物的规律. 机器学习作用: 该专业实际应用于机器视觉、指纹识别、人脸识别、视网膜识别、虹膜识别、掌纹识别、专家系统、自动规划、智能搜索、定理证明、博弈、自动程序

    2024年02月06日
    浏览(45)
  • 人工智能(Pytorch)搭建模型2-LSTM网络实现简单案例

     本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052  大家好,我是微学AI,今天给大家介绍一下人工智能(Pytorch)搭建模型2-LSTM网络实现简单案例。主要分类三个方面进行描述:Pytorch搭建神经网络的简单步骤、LSTM网络介绍、Pytorch搭建LSTM网络的代码实战 目录

    2024年02月03日
    浏览(46)
  • 人工智能(Pytorch)搭建模型1-卷积神经网络实现简单图像分类

    本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 目录 一、Pytorch深度学习框架 二、 卷积神经网络 三、代码实战 内容: 一、Pytorch深度学习框架 PyTorch是一个开源的深度学习框架,它基于Torch进行了重新实现,主要支持GPU加速计算,同时也可以在CPU上运行

    2024年02月03日
    浏览(50)
  • 人工智能学习07--pytorch20--目标检测:COCO数据集介绍+pycocotools简单使用

    如:天空 coco包含pascal voc 的所有类别,并且对每个类别的标注目标个数也比pascal voc的多。 一般使用coco数据集预训练好的权重来迁移学习。 如果仅仅针对目标检测object80类而言,有些图片并没有标注信息,或者有错误标注信息。所以在实际的训练过程中,需要对这些数据进行

    2024年02月12日
    浏览(46)
  • 人工智能(pytorch)搭建模型8-利用pytorch搭建一个BiLSTM+CRF模型,实现简单的命名实体识别

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型8-利用pytorch搭建一个BiLSTM+CRF模型,实现简单的命名实体识别,BiLSTM+CRF 模型是一种常用的序列标注算法,可用于词性标注、分词、命名实体识别等任务。本文利用pytorch搭建一个BiLSTM+CRF模型,并给出数据样例,

    2024年02月09日
    浏览(46)
  • 人工智能讲师AI讲师大模型讲师叶梓介绍及大语言模型技术原理与实践提纲

    叶梓,上海交通大学计算机专业博士毕业,高级工程师。主研方向:数据挖掘、机器学习、人工智能。历任国内知名上市IT企业的AI技术总监、资深技术专家,市级行业大数据平台技术负责人。 长期负责城市信息化智能平台的建设工作,开展行业数据的智能化应用研发工作,

    2024年02月22日
    浏览(52)
  • 人工智能-线性神经网络

    线性神经网络 在介绍深度神经网络之前,我们需要了解神经网络训练的基础知识。 本章我们将介绍神经网络的整个训练过程, 包括:定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。 为了更容易学习,我们将从经典算法———— 线性 神经网络开始,介

    2024年02月06日
    浏览(42)
  • 【人工智能】— 逻辑回归分类、对数几率、决策边界、似然估计、梯度下降

    考虑二分类问题,其中每个样本由一个特征向量表示。 直观理解:将特征向量 x text{x} x 映射到一个实数 w T x text{w}^Ttext{x} w T x 一个正的值 w T x text{w}^Ttext{x} w T x 表示 x text{x} x 属于正类的可能性较高。 一个负的值 w T x text{w}^Ttext{x} w T x 表示 x text{x} x 属于负类的可能性

    2024年02月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包