机器学习之回归

这篇具有很好参考价值的文章主要介绍了机器学习之回归。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

回归是机器学习中最常见的任务之一,回归(regression)问题预测的是一个连续值,而不是离散标签,比如根据气象数据预测明日气温,或者根据房地产数据估算房价(标量回归问题)。

接下来就以回归问题最经典的波士顿房价为例,了解标量回归问题的基本配置。当然主要是对深度学习的训练与推理建立一个基本的认知,训练结果好坏反而不太重要。

既然是机器学习,了解python是必备的(上手也很容易),使用的也是易上手的keras框架,接着再了解一下numpy,可以上路了。

基于tensorflow.js实现的纯前端小样例请看:线性回归

大纲

  1. 准备数据

  2. 构建模型

  3. 训练模型

  4. 预测结果

波士顿房价数据集介绍

  • data:样本都有13个数值特征,比如人均犯罪率、住宅的平均房间数、高速公路可达性等

  • target:目标是房价中位数,单位是千美元

由数据集训练出的模型要达到的效果:用户输入13个数值特征数据,预测出一个房价中位数(输入data,输出target)。

准备数据

取值范围差异很大的数据输入到神经网络中是有问题的,这会让模型学习变得困难。对于这类数据,普遍采用的最佳处理方法是对每个特征进行标准化,即对于输入数据的每个特征(输入数据矩阵的每一列),减去特征平均值,再除以标准差,这样得到的特征平均值为0,标准差为1。

这个步骤一般叫做数据的标准化(normalization),目的就是把所有数据都映射到同一个数据空间,一般是[0,1]或[-1,1]范围内,以方便后续模型的学习。

from tensorflow.keras.datasets import boston_housing

(train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()#加载波士顿房价数据集
 
mean = train_data.mean(axis=0)#平均值
train_data -= mean
std = train_data.std(axis=0)#标准差
train_data /= std
test_data -= mean
test_data /= std

mean方法用于得出数据集的平均值,这是numpy的ndarrays对象自带的方法,同理std是封装好的标准差方法,标准差原理比较繁琐,想了解具体细节可自己去了解。

构建模型

由于样本数量比较小,因此合适的选择是使用一个小的模型。它包含两个中间层,每层有64个单元,一般来说,训练数据越少,过拟合就会越严重,而较小的模型可以降低过拟合。

from tensorflow import keras
from tensorflow.keras import layers

def build_model():
    model = keras.Sequential([
        layers.Dense(64, activation="relu"),#64个单元,激活函数为relu
        layers.Dense(64, activation="relu"),
        layers.Dense(1)#最后一层(输出层)
    ])
    model.compile(optimizer="rmsprop", loss="mse", metrics=["mae"])
    return model

因为是标量回归(标量回归是预测单一连续值的回归),模型的最后一层只有一个单元,并不需要激活函数。损失函数为均方误差(mean squared error,MSE),预测值与目标值之差的平方,这是回归问题常用的损失函数。

在训练过程中要监控的指标:平均绝对误差(mean absolute error,MAE),它是预测值与目标值之差的绝对值。

训练模型

中间省了评估训练结果,调节超参数的过程,这里直接用所有的数据进行训练,这里数据量比较少,没有再区分出验证集(validation data)。如果想看直观的查看训练效果,可以使用 matplotlib 库绘制验证MAE曲线。

  • epochs 顾名思义就是训练的轮次;

  • batch_size 批次尺寸,即每次完整的正向和反向传播使用的数据量,必须为2的n次幂;这个参数会影响训练的效果,和显存的大小息息相关,以后要注意;

model = build_model()  #获取已编译模型
history = model.fit(train_data, train_targets, epochs=150, batch_size=16) #训练模型
test_mse_score, test_mae_score = model.evaluate(test_data, test_targets) #评估训练效果

预测结果

训练好模型后,接着直接用测试集进行预测一下结果,查看预测结果的第一条为 9.514468 (单位:千美元)

>>> predictions = model.predict(test_data)
>>> predictions[0]
array([9.514468], dtype=float32)

总结

  • 回归常用的损失函数是均方误差(MSE)

  • 常用的回归指标是平均绝对误差(MAE)

  • 数据应该先进行预处理

  • 如果可用的训练数据少,那么最好使用中间层较少(通常只有一两个)的小模型,以避免严重的过拟合文章来源地址https://www.toymoban.com/news/detail-559986.html

到了这里,关于机器学习之回归的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 机器学习之逻辑回归

    1.1 监督学习 1.1.1 回归(线性回归) 1.1.1.1 描述 线性回归模型公式: 多元线性关系:一个通过特征的的线性组合来进行预测的函数 其中,h(x)是因变量,x1、x2、…、xn是自变量,o1、o2、…、bn是回归系数。回归系数表示自变量对因变量的影响程度,可以通过最小二乘法来求解

    2023年04月13日
    浏览(41)
  • Python | 机器学习之逻辑回归

    🌈个人主页: Sarapines Programmer 🔥 系列专栏:《人工智能奇遇记》 🔖墨香寄清辞:诗馀墨痕深,梦漫星辰寂。 曲径通幽意犹在,剑指苍穹气势立。 目录结构 1. 机器学习之逻辑回归概念 1.1 机器学习 1.2 逻辑回归 2. 逻辑回归 2.1 实验目的 2.2 实验准备 2.3 实验题目 2.4 实验内容

    2024年02月05日
    浏览(48)
  • 机器学习之常用的回归预测模型

    本文全面整理了各种回归预测模型,旨在帮助读者更好地学习回归预测模型。 转载自:https://mp.weixin.qq.com/s/7m2waIASOEg90NONgRpQFQ 线性回归是一种线性模型,通过特征的线性组合来预测连续值标签。线性回归通过拟合系数 (可选择是否设置截距)的线性模型,以最小化真实值和预

    2024年04月08日
    浏览(42)
  • 机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】

    目录 前言 一、什么是线性回归 二、什么是逻辑回归 三、基于Python 和 Scikit-learn 库实现线性回归 示例代码:  使用线性回归来预测房价: 四、基于Python 和 Scikit-learn 库实现逻辑回归 五、总结  线性回归的优缺点总结: 逻辑回归(Logistic Regression)是一种常用的分类算法,具有

    2024年04月13日
    浏览(45)
  • 机器学习之支持向量回归(SVR)预测房价—基于python

          大家好,我是带我去滑雪!       本期使用爬取到的有关房价数据集data.csv,使用支持向量回归(SVR)方法预测房价。该数据集中“y1”为响应变量,为房屋总价,而x1-x9为特征变量,依次表示房屋的卧室数量、客厅数量、面积、装修情况、有无电梯、、房屋所在楼层位

    2024年02月04日
    浏览(52)
  • 机器学习中最基本的概念之一:数据集、样本、特征和标签

    数据集、样本、特征和标签是机器学习中的重要概念,这些概念在机器学习算法的设计和实现过程中起着至关重要的作用。在本文中,我们将对这些概念进行详细的讲解,以便更好地理解机器学习算法的基本原理和应用。 数据集是机器学习中最基本的概念之一,它是指一组相

    2024年02月09日
    浏览(38)
  • 机器学习之分类决策树与回归决策树—基于python实现

          大家好,我是带我去滑雪!       本期为大家介绍决策树算法,它一种基学习器,广泛应用于集成学习,用于大幅度提高模型的预测准确率。决策树在分区域时,会考虑特征向量对响应变量的影响,且每次仅使用一个分裂变量,这使得决策树很容易应用于高维空间,且

    2024年02月03日
    浏览(45)
  • 初识人工智能,一文读懂机器学习之逻辑回归知识文集(1)

    🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 🔎 人工智能领域知识 🔎 链接 专栏 人工智能专业知识学习一 人工智能专栏 人

    2024年01月23日
    浏览(63)
  • SWIFT中最常见的内存泄漏陷阱

    如果您有内存循环,它将在调试器中向您显示警告: 如果确实有一个(或通常是一堆),则表示您有一个泄漏的物体。 您如何预防呢? 就像在关闭的第一行中添加 [unowned self] 一样简单! 而已! 它将阻止泄漏。 之所以会发生内存泄漏,是因为Swift中的闭包必须捕获作用域(

    2024年02月07日
    浏览(43)
  • 【学习资源】终身机器学习之增量学习

    从机器学习存在的问题谈起,介绍增量学习可以解决怎样的问题,增量学习的类别,实现增量学习的方法,增量学习的评价指标和常用数据集,类别增量学习典型方法和代码库以及参考资源,希望能帮助大家用增量学习提高图像分类、对象检测、语义分割、行为识别、对象重

    2023年04月27日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包