返回顶部
首页 > 资讯 > 数据库 >【机器学习】线性回归
  • 107
分享到

【机器学习】线性回归

机器学习线性回归人工智能 2023-08-23 19:08:03 107人浏览 薄情痞子
摘要

Model Representation 1、问题描述2、表示说明3、数据绘图4、模型函数5、预测总结附录 1、问题描述 一套 1000 平方英尺 (sqft) 的房屋售价为300,000美元,一套 2000 平方英尺的房屋

1、问题描述

一套 1000 平方英尺 (sqft) 的房屋售价为300,000美元,一套 2000 平方英尺的房屋售价为500,000美元。这两点将构成我们的数据或训练集。面积单位为 1000 平方英尺,价格单位为 1000 美元。

Size (1000 sqft)Price (1000s of dollars)
1.0300
2.0500

希望通过这两个点拟合线性回归模型,以便可以预测其他房屋的价格。例如,面积为 1200 平方英尺的房屋价格是多少。

首先导入所需要的库

import numpy as npimport matplotlib.pyplot as pltplt.style.use('./deeplearning.mplstyle')

以下代码来创建x_train和y_train变量。数据存储在一维 NumPy 数组中。

# x_train is the input variable (size in 1000 square feet)# y_train is the target (price in 1000s of dollars)x_train = np.array([1.0, 2.0])y_train = np.array([300.0, 500.0])print(f"x_train = {x_train}")print(f"y_train = {y_train}")

2、表示说明

使用 m 来表示训练样本的数量。 (x ( i ) ^{(i)} (i), y ( i ) ^{(i)} (i)) 表示第 i 个训练样本。由于 python 是零索引的,(x ( 0 ) ^{(0)} (0), y ( 0 ) ^{(0)} (0)) 是 (1.0, 300.0) , (x ( 1 ) ^{(1)} (1), y ( 1 ) ^{(1)} (1)) 是 (2.0, 500.0).

3、数据绘图

使用 matplotlib 库中的scatter()函数绘制这两个点。 其中,函数参数markerc 将点显示为红叉(默认为蓝点)。使用matplotlib库中的其他函数来设置要显示的标题和标签。

# Plot the data pointsplt.scatter(x_train, y_train, marker='x', c='r')# Set the titleplt.title("Housing Prices")# Set the y-axis labelplt.ylabel('Price (in 1000s of dollars)')# Set the x-axis labelplt.xlabel('Size (1000 sqft)')plt.show()

在这里插入图片描述

4、模型函数

线性回归的模型函数(这是一个从 x 映射到 y 的函数)可以表示为 f w , b ( x ( i ) ) = w x ( i ) + b (1) f_{w,b}(x^{(i)}) = wx^{(i)} + b \tag{1} fw,b(x(i))=wx(i)+b(1)

计算 f w , b ( x ( i ) ) f_{w,b}(x^{(i)}) fw,b(x(i)) 的值,可以将每个数据点显示地写为:

对于 x ( 0 ) x^{(0)} x(0), f_wb = w * x[0] + b
对于 x ( 1 ) x^{(1)} x(1), f_wb = w * x[1] + b

对于大量的数据点,这可能会变得笨拙且重复。 因此,可以在for 循环中计算输出,如下面的函数compute_model_output 所示。

def compute_model_output(x, w, b):    """    Computes the prediction of a linear model    Args:      x (ndarray (m,)): Data, m examples       w,b (Scalar)    : model parameters      Returns      y (ndarray (m,)): target values    """    m = x.shape[0]    f_wb = np.zeros(m)    for i in range(m):        f_wb[i] = w * x[i] + b            return f_wb

调用 compute_model_output 函数并绘制输出

w = 100b = 100tmp_f_wb = compute_model_output(x_train, w, b,)# Plot our model predictionplt.plot(x_train, tmp_f_wb, c='b',label='Our Prediction')# Plot the data pointsplt.scatter(x_train, y_train, marker='x', c='r',label='Actual Values')# Set the titleplt.title("Housing Prices")# Set the y-axis labelplt.ylabel('Price (in 1000s of dollars)')# Set the x-axis labelplt.xlabel('Size (1000 sqft)')plt.legend()plt.show()

在这里插入图片描述
很明显, w = 100 w = 100 w=100 b = 100 b = 100 b=100 不会产生适合数据的直线。

根据学过的数学知识,可以容易求出 w = 200 w = 200 w=200 b = 100 b = 100 b=100

5、预测

现在我们已经有了一个模型,可以用它来做出房屋价格的预测。来预测一下 1200 平方英尺的房子的价格。由于面积单位为 1000 平方英尺,所以 x x x 是1.2。

w = 200                         b = 100    x_i = 1.2cost_1200sqft = w * x_i + b    print(f"${cost_1200sqft:.0f} thousand dollars")

输出的结果是:$340 thousand dollars

总结

  • 线性回归建立一个特征和目标之间关系的模型
    • 在上面的例子中,特征是房屋面积,目标是房价。
    • 对于简单线性回归,模型有两个参数 w w w b b b ,其值使用训练数据进行拟合。
    • 一旦确定了模型的参数,该模型就可以用于对新数据进行预测。

附录

deeplearning.mplstyle 源码

# see https://matplotlib.org/stable/tutorials/introductory/customizing.htmllines.linewidth: 4lines.solid_capstyle: buttlegend.fancybox: true# Verdana" for non-math text,# Cambria Math#Blue (Crayon-Aqua) 0096FF#Dark Red C00000#Orange (Apple Orange) FF9300#Black 000000#Magenta FF40FF#Purple 7030A0axes.prop_cycle: cycler('color', ['0096FF', 'FF9300', 'FF40FF', '7030A0', 'C00000'])#axes.facecolor: f0f0f0 # greyaxes.facecolor: ffffff  # whiteaxes.labelsize: largeaxes.axisbelow: trueaxes.grid: Falseaxes.edgecolor: f0f0f0axes.linewidth: 3.0axes.titlesize: x-largepatch.edgecolor: f0f0f0patch.linewidth: 0.5svg.fonttype: pathgrid.linestyle: -grid.linewidth: 1.0grid.color: cbcbcbxtick.major.size: 0xtick.minor.size: 0ytick.major.size: 0ytick.minor.size: 0savefig.edgecolor: f0f0f0savefig.facecolor: f0f0f0#figure.subplot.left: 0.08#figure.subplot.right: 0.95#figure.subplot.bottom: 0.07#figure.facecolor: f0f0f0  # greyfigure.facecolor: ffffff  # white## ***************************************************************************## * FONT            *## ***************************************************************************## The font properties used by `text.Text`.## See Https://matplotlib.org/api/font_manager_api.html for more infORMation## on font properties.  The 6 font properties used for font matching are## given below with their default values.#### The font.family property can take either a concrete font name (not supported## when rendering text with usetex), or one of the following five generic## values:##     - 'serif' (e.g., Times),##     - 'sans-serif' (e.g., Helvetica),##     - 'cursive' (e.g., Zapf-Chancery),##     - 'fantasy' (e.g., Western), and##     - 'monospace' (e.g., Courier).## Each of these values has a corresponding default list of font names## (font.serif, etc.); the first available font in the list is used.  Note that## for font.serif, font.sans-serif, and font.monospace, the first element of## the list (a DejaVu font) will always be used because DejaVu is shipped with## Matplotlib and is thus guaranteed to be available; the other entries are## left as examples of other possible values.#### The font.style property has three values: normal (or roman), italic## or oblique.  The oblique style will be used for italic, if it is not## present.#### The font.variant property has two values: normal or small-caps.  For## TrueType fonts, which are scalable fonts, small-caps is equivalent## to using a font size of 'smaller', or about 83%% of the current font## size.#### The font.weight property has effectively 13 values: normal, bold,## bolder, lighter, 100, 200, 300, ..., 900.  Normal is the same as## 400, and bold is 700.  bolder and lighter are relative values with## respect to the current weight.#### The font.stretch property has 11 values: ultra-condensed,## extra-condensed, condensed, semi-condensed, normal, semi-expanded,## expanded, extra-expanded, ultra-expanded, wider, and narrower.  This## property is not currently implemented.#### The font.size property is the default font size for text, given in points.## 10 pt is the standard value.#### Note that font.size controls default text sizes.  To configure## special text sizes tick labels, axes, labels, title, etc., see the rc## settings for axes and ticks.  Special text sizes can be defined## relative to font.size, using the following values: xx-small, x-small,## small, medium, large, x-large, xx-large, larger, or smallerfont.family:  sans-seriffont.style:   normalfont.variant: normalfont.weight:  normalfont.stretch: normalfont.size:    8.0font.serif:      DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, seriffont.sans-serif: Verdana, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-seriffont.cursive:    Apple Chancery, Textile, Zapf Chancery, Sand, Script MT, Felipa, Comic Neue, Comic Sans MS, cursivefont.fantasy:    ChicaGo, Charcoal, Impact, Western, Humor Sans, xkcd, fantasyfont.monospace:  DejaVu Sans Mono, Bitstream Vera Sans Mono, Computer Modern Typewriter, Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, monospace## ***************************************************************************## * TEXT            *## ***************************************************************************## The text properties used by `text.Text`.## See https://matplotlib.org/api/artist_api.html#module-matplotlib.text## for more information on text properties#text.color: black

来源地址:https://blog.csdn.net/weixin_47936614/article/details/131994860

您可能感兴趣的文档:

--结束END--

本文标题: 【机器学习】线性回归

本文链接: https://lsjlt.com/news/378815.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 机器学习-线性回归
      ~~~不积跬步,无以至千里~~~ 为了更好的学习线性回归,首先复习一次函数的特性:     什么是线性回归? 假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作为回归,如下图所示:  ...
    99+
    2023-01-30
    线性 机器
  • 机器学习——线性回归
    1 from sklearn.externals import joblib 2 from sklearn.model_selection import train_test_split 3 from sklearn....
    99+
    2023-01-30
    线性 机器
  • 【机器学习】线性回归
    Model Representation 1、问题描述2、表示说明3、数据绘图4、模型函数5、预测总结附录 1、问题描述 一套 1000 平方英尺 (sqft) 的房屋售价为300,000美元,一套 2000 平方英尺的房屋...
    99+
    2023-08-23
    机器学习 线性回归 人工智能
  • python机器学习之线性回归详解
    目录一、python机器学习–线性回归二、OLS线性回归2.1 Ordinary Least Squares 最小二乘法2.2 OLS线性回归的代码实现三、梯度下降算法3.1 GDL...
    99+
    2024-04-02
  • 机器学习——线性回归-KNN-决策树(实
    1 import numpy as np 2 import pandas as pd 3 from sklearn.linear_model import LinearRegression 4 from sklearn.preproc...
    99+
    2023-01-30
    线性 机器 决策树
  • 机器学习线性回归算法怎么实现
    实现机器学习线性回归算法一般需要以下步骤:1. 导入所需的库:例如,numpy用于数值计算,matplotlib用于可视化数据等。2...
    99+
    2023-09-21
    机器学习
  • Python 机器学习之线性回归详解分析
    为了检验自己前期对机器学习中线性回归部分的掌握程度并找出自己在学习中存在的问题,我使用C语言简单实现了单变量简单线性回归。 本文对自己使用C语言实现单变量线性回归过程中遇到的问题和心...
    99+
    2024-04-02
  • python机器学习基础线性回归与岭回归算法详解
    目录一、什么是线性回归1.线性回归简述2.数组和矩阵数组矩阵3.线性回归的算法二、权重的求解1.正规方程2.梯度下降三、线性回归案例1.案例概述2.数据获取3.数据分割4.数据标准化...
    99+
    2024-04-02
  • 机器学习(一):线性回归之最小二乘法
    文章目录 专栏导读 1、线性回归简介 2、最小二乘法原理 3、实战案例 专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知...
    99+
    2023-09-05
    机器学习 线性回归 python 最小二乘法
  • 机器学习(二):线性回归之梯度下降法
    文章目录 专栏导读 1、梯度下降法原理 2、梯度下降法原理代码实现 3、sklearn内置模块实现 专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,...
    99+
    2023-09-07
    机器学习 线性回归 python 梯度下降法
  • Python中怎么创建线性回归机器学习模型
    Python中怎么创建线性回归机器学习模型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。线性回归机器学习模型1.要使用的数据集由于线性回归是我们在本文中学习的第一个机器学习模型...
    99+
    2023-06-16
  • 机器学习线性回归算法的优缺点是什么
    线性回归是一种常用的机器学习算法,其优点和缺点如下:优点:1. 简单易用:线性回归是一种简单的建模方法,易于理解和实施。2. 计算效...
    99+
    2023-09-21
    机器学习
  • Python机器学习之逻辑回归
    目录一、题目二、目的三、平台四、基本原理4.1 逻辑回归4.2 损失函数五、实验步骤一、题目 1.主题:逻辑回归 2.描述:假设你是某大学招生主管,你想根据两次考试的结果决定每个申请...
    99+
    2024-04-02
  • 线性回归
    传送门:人工智能视频列表-尚学堂,点开任意一个之后会发现他们会提供系列课程整合到一起的百度网盘下载,包括视频+代码+资料,都是免费的 这里:博客园小技巧,我觉得这个很好玩,可以拿来用。 对于机器学习、深度学习的什么介绍,百度吧,有很多,这...
    99+
    2023-01-30
    线性
  • 机器学习实验——单变量线性回归(披萨价格预测问题)
    实验内容 假设某披萨店的披萨价格和披萨直径之间有下列数据关系: 训练样本直径(英寸)价格(美元)1672893101341417.551818 根据上面的训练数据,预测12英寸的披萨的可能售价。 1、...
    99+
    2023-09-30
    机器学习 线性回归 python
  • python机器学习Logistic回归原理推导
    目录前言Logistic回归原理与推导sigmoid函数目标函数梯度上升法Logistic回归实践数据情况训练算法算法优缺点前言 Logistic回归涉及到高等数学,线性代数,概率论...
    99+
    2024-04-02
  • pytorch机器学习softmax回归的简洁实现
    目录初始化模型参数重新审视softmax的实现优化算法通过深度学习框架的高级API也能更方便地实现分类模型。让我们继续使用Fashion-MNIST数据集,并保持批量大小为256。 ...
    99+
    2024-04-02
  • python机器学习Logistic回归原理是什么
    这篇“python机器学习Logistic回归原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python机器学习L...
    99+
    2023-07-02
  • 【数学建模】-多元线性回归分析
    文章目录 回归的思想回归分析:研究X和Y之间相关性的分析。相关性因变量Y自变量X 回归分析的使命回归分析的分类数据的分类一元线性回归对于线性的理解回归系数的解释内生性的探究内生性...
    99+
    2023-10-05
    线性回归 回归 机器学习 matlab
  • Python可视化学习之seaborn绘制线型回归曲线
    目录本文速览1、绘图数据准备2、seaborn.regplotregplot默认参数线型回归图分别设置点和拟合线属性置信区间(confidence interval)设置拟合线延伸与...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作