机器学习的概览
笔记内容侵权联系删除
机器学习算法
机器学习(包括深度学习分支)是研究“学习算法”的一门学问。所谓“学习”是指:对于某类任务T和性能度量P,一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。
机器学习算法与传统基于规则的区别
基于规则的方法(特点:使用显性编程来解决问题,规则可以被人工明确)
机器学习算法(特点:使用样本训练,决策的规则复杂或难以描述,由机器自动学习规则)
【问题的解决方案很复杂,或者问题可能涉及到大量的数据却没有明确的数据分布函数
遇到如下情况,可以考虑使用机器学习】
机器学习的整体流程
1.数据收集
2.数据清洗
3.特征提取与选择 反馈迭代
4.模型训练
5.模型评估测试
6.模型部署与整合
机器学习基本概念--数据集
数据集:在机器学习任务中使用的一组数据,其中的每一个数据称为一个样本。反映样本在某方面的表现或性质的事项或属性称为特征。
训练集:训练过程中使用的数据集,其中每个训练样本称为训练样本。从数据中学得型的过程称为学习(训练)。
测试集:学得模型后,使用其进行预测的过程称为测试,使用的数据集称为测试集,每个样本称为测试样本。
数据处理的重要性
数据对于模型来说就患至关重要的,是模型能力的天花板,没有好的数据,就没有好的模型。
数据预处理
1.数据清理
填充缺失值,发现并消除造成数据及异常点.
2.数据降维
简化数据属性,避免维度爆炸
3.数据标准化
标准化数据来减少噪声,以及提高模型准确性
数据清理
大部分的机器学习模型所处理的都是特征,特征通常是输入变量所对应的可用于模型的数值表示
大部分情况下,收集得到的数据需要经过预处理后才能够为算法所使用,预处理的操作主要包括以下几个部分:
数据过滤
处理数据缺失
处理可能的异常、错误或者异常值
合并多个数据源数据
数据汇总
“脏”数据
真实的数据中通常会出现一些数据质量问题:
不完整: 数据中缺少属性或者包含一些确实的值。
多噪音: 数据包含错误的记录或者异常点。
不一致: 数据中存在矛盾的、有差异的记录。
数据的转换
对数据进行初步的预处理后,需要将其转换为一种适合机器学习模型的表示形式,以下是一些常见的数据转化的形式。
在分类问题中,将类别数据编码成为对应的数值表示(哑编码)
数值数据转换为类别数据以减少变量的值(对年龄分段)
其他数据
从文本数据中提取有用的数据(一般使用词袋法、TF-IDF或者word2vec)”处理图像数据(颜色空间,灰度化,几何变化,haar特征等,图像增强)。特征工程
对特征进行归一化、标准化,以保证同一模型的不同输入变量的值域相同。特征扩充:对现有变量进行组合或转换以生成新特征,比如平均数
特征选择的必要性
通常情况下,一个数据集当中存在很多种不同的特征,其中一些可能是多余的或者与我们要预测的值无关的。
特征选择技术的必要性体现在:
1简化模型,是模型个容易被使用者所解释
2避免维度爆炸的问题
3减少训练的时间
4提升模型泛化性,避免过拟合
特征选择的方法-Filter
过滤法(filter)在选择特征的时候是独立的,与模型本身无关。
遍历所有特征--选择最佳特征子集--学习算法--性能评估
特征选择的方法-wapper
包装器(wapper)方法使用一个预测模型来对对特征子集进行评分。
遍历所有特征--生成一个特征子集--学习算法--模型评估
选择最佳的特征子集
特征选择的方法-Embedded
嵌入法(Embedded)的方法将特征选择作为型构建的一部分。
遍历所有的特征--生成一个特征子集--学习算法+效果评估 --生成一个特征子集
----选择最佳的特征子集 -----
模型构建项目整体流程
模型构建综合流程
分割数据:将数据分为训练集,测试集与验证集
训练模型:使用经过数据清理与特征工程的数据来训练
验证模型;使用验证集来验证模型的有效性
微调模型:根据业务实景的真实数据对模型进行不断微调
部署模型:部署到实际的生产场景中
测试模型:使用测试数据来评估模型在真实环境的泛化能力
什么是好的模型?
泛化能力
能否在实际的业务数据也能预测准确
可解释性
预测的结果是否容易被解释
预测速率
每一条数据的预测需要多长时间
可塑性
实际业务过程中数据量可能很大,随着业务量增大,预测的速率是否仍然可以接受
模型的有效性(1)
泛化能力:机器学习的目标是使学得的模型能够很好的适用于新的样本,而不是仅仅在训练样本上工作的很好,学得的模型适用于新样本的能力称为泛化能力,也称为鲁棒性。
误差:学习到的模型在样本上的预测结果与样本的真实结果之间的差。
训练误差:模型在训练集上的误差。
泛化误差:在新样本上的误差。显然,我们更希望得到泛化误差小的模型。
欠拟合:如果训练误差很大的现象。
过拟合:如果学得的模型的训练误差很小,而泛化能力较弱即泛化误差较大的现象。
模型的有效性(2)
模型的容量:指其拟合各种函数的能力,也称为模型的复杂度。
容量适合于执行任务的复杂度和所提供训练数据的数量时,算法效果通常会最佳;
容量不足的模型不能解决复杂任务,可能出现欠拟合;
容量高的模型能够解决复杂的任务,但是其容量高于任务所需时,有可能会过拟合。
过拟合的原因-误差
随着模型复杂度上升的增加,训练误差逐渐减小。
同时,测试误差会随着复杂的增大而减小到某一点,继而反向增大,形成一条凸曲线。
其他机器学习的重要方法
机器学习训练方法--梯度下降
梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,该方向为当前位置最快下降方向,梯度下降中越接近目标值,变化量越小
批量梯度下降(BGD),使用所有数据集中的样本(共m个样本)在当前点的梯度之和来对
权重参数进行更新操作。
随机梯度下降(SGD),随机选取一个数据集中的样本在当前的梯度来对权重参数进行更新操作
小批量梯度下降(MBGD),结合BGD与SGD的特性,每次选择数据集中n个样本的梯度来对权重参数进行更新操作。
三种梯度下降方法的比较
SGD中,因为每次训练选取的样本是随机的,这本身就带来了不稳定性,会导致损失函数在下降到最低点的过程中,产生动荡甚至反向的位移。
BGD最稳定,但是过于消耗运算资源,MBGD是SGD与BGD平衡之后的方法。
模型中的参数与超参数
模型中不但有参数,还有超参数的存在。其目的是为了让模型能够学习到最佳的参数
参数有模型自动学习
超参数由人工手动设定
模型的超参数
模型超参数常应用于估计模型参数的过程中。
模型超参数通常由实践者直接指定模型超参数通常可以使用启发式方法来设置。
模型超参数通常根据给定的预测建模问题而调整。
超参数的调节方法-网格搜索
网格搜索尝试穷举搜索所有可能的超参数组合形成超参数值网格。
在实践中,人工指定的范围和步骤之间的值。
超参数的调节方法-随机搜索
在超参数搜索空间较大的情况下,采用随机搜索,会优于网格搜索的效果
随机搜索实现了对超参数的随机搜索,其中每个设置都是从可能的参数值的分布中进行取样,试图找出最佳的超参数子集
交叉验证
是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据进行分组,一部分作为训练集,另一部分作为验证集,首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来做为评价分类器的性能指标。【也可以调节超参数】
相关文章:
机器学习的概览
笔记内容侵权联系删除 机器学习算法 机器学习(包括深度学习分支)是研究“学习算法”的一门学问。所谓“学习”是指:对于某类任务T和性能度量P,一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。 机器学习…...
方法论-WPS模型(高效沟通和决策分析的框架)
WPS模型(What, Problem, Solution)是一种高效沟通和决策分析的框架,旨在帮助沟通者清晰、简洁地表达问题和解决方案,特别适用于在复杂或多变的环境中进行清晰的交流。WPS模型的核心是通过以下三个步骤来组织沟通内容: …...
OpenTelemetry 赋能DevOps流程的可观测性革命
作者:天颇 引言 在当今快节奏的软件开发和运维环境中,DevOps 已经成为主流,它通过整合开发和运维流程,推动着软件的快速迭代和持续交付。然而,随着微服务、容器化和云计算等技术的普及,系统复杂性急剧增加…...
子集选择——基于R语言实现(最优子集选择法、逐步回归法、Lasso回归法、交叉验证法)
( a )使用 rnorm() 函数生成预测变量X(n=100)与噪声向量 ϵ \epsilon ϵ(n=100) set.seed(1) x<-rnorm(100)#预测变量X eps<-rnorm(100)#噪声向量$\epsilon$( b ) 生成响应变量Y(n=100),...
Ubuntu24.04挂载磁盘
一、引言 由于几块磁盘每次开机时的编号都不一样,造成了很多麻烦,所有重新挂载磁盘试一试。 参考链接: ubuntu挂载磁盘或U盘Ubuntu添加新硬盘,挂载到根目录下的某个文件中 二、挂载磁盘 1. 查看盘名 sudo fdisk -l sda 代表第…...
使用机器学习优化数据库查询性能
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用机器学习优化数据库查询性能 文章目录 使用机器学习优化数据库查询性能引言数据库查询性能概述查询优化的重要性 机器学习在…...
英伟达基于Mistral 7B开发新一代Embedding模型——NV-Embed-v2
我们介绍的 NV-Embed-v2 是一种通用嵌入模型,它在大规模文本嵌入基准(MTEB 基准)(截至 2024 年 8 月 30 日)的 56 项文本嵌入任务中以 72.31 的高分排名第一。此外,它还在检索子类别中排名第一(…...
HTML面试题(2)
HTML5相比HTML有哪些更新? 语义化更强的HTML元素:引入artitcle、section、nav、header、footer等元素,帮助创建结构更清晰、语义更明确的网页,有利于SEO和内容的可访问性表单控件增强:新增多种表单输入类型࿰…...
微服务day07
MQ高级 发送者可靠性,MQ的可靠性,消费者可靠性。 发送者可靠性 发送者重连 连接重试的配置文件: spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时重试机制initial-interval: 10…...
芯原科技嵌入式面试题及参考答案
Linux 相关驱动怎么写? 在 Linux 中编写驱动主要有以下步骤。 首先,需要了解设备的硬件特性。这包括设备的工作原理、寄存器地址和功能、中断号等信息。例如,对于一个简单的 GPIO 设备,要知道其数据寄存器、方向寄存器的位置以及读写操作的规则。 然后是模块的初始化部分。…...
二叉树Golang
二叉树 前言 完全二叉树 最底层节点按顺序从左到右排列。 满二叉树 一颗二叉树只有0度和2度的节点。 二叉搜索树 左子树上的所有节点的值均小于根节点的值。右子树上的所有节点的值均大于根节点的值。 平衡二叉搜索树 左右两个子树的高度差的绝对值不超过1 。 二叉树的存储…...
通过css的哪些方式可以实现隐藏页面上的元素?
1:opacity:0 通过将元素的透明度设置为o,实现隐藏效果,但是依然会占用空间并可以进行交互。 2:visibility:hidden 与透明度度为0的方案类似,会占据空间,但不可以进行交互。 3:Overflow:hi…...
微信小程序 === 使用腾讯地图选点
目录 插件介绍 接入指引 相关参数说明 插件错误处理 效果图 permission 插件的作用 添加插件 引入插件代码包 使用插件 页面 js 接口 插件介绍 腾讯位置服务地图选点插件 可以让用户快速、准确地选择并确认自己的当前位置,并将相关位置信息回传给开发者。…...
Redis高可用-Cluster(集群)
Redis cluster cluster 为无中心,分布式 sharding,高可用技术架构。 在哨兵 sentinel 机制中,可以解决 redis 高可用的问题,即当 master 故障后可以自动将 slave 提升为 master 从而可以保证 redis 服务的正常使用。 但是无法解…...
Spring Boot编程训练系统:数据管理与存储
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足,创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分&…...
报告解读 | 创意经济2024:如何在变革中抢占先机?
在科技飞速发展的今天,创意行业正面临前所未有的变化。《Skillshare Trendshare 2024》报告揭示了多项趋势,为创意人士提供了深刻的洞察和实用的建议。本文将为您详细解读这些趋势,助您在创意领域脱颖而出。 1. 人工智能(AI&…...
Flume1.9.0自定义Sink组件将数据发送至Mysql
需求 1、将Flume采集到的日志数据也同步保存到MySQL中一份,但是Flume目前不支持直接向MySQL中写数据,所以需要用到自定义Sink,自定义一个MysqlSink。 2、日志数据默认在Linux本地的/data/log/user.log日志文件中,使用Flume采集到…...
如何在 Ubuntu 24.04 上安装和配置 Fail2ban ?
确保你的 Ubuntu 24.04 服务器的安全是至关重要的,特别是如果它暴露在互联网上。一个常见的威胁是未经授权的访问尝试,特别是通过 SSH。Fail2ban 是一个强大的工具,可以通过自动阻止可疑活动来帮助保护您的服务器。 在本指南中,我…...
uniapp如何i18n国际化
1、正常情况下项目在代码生成的时候就已经有i18n的相关依赖,如果没有可以自行使用如下命令下载: npm install vue-i18n --save 2、创建相关文件 en文件下: zh文件下: index文件下: 3、在main.js中注册:…...
C++__day1
1、思维导图 2、如果登录失败,提示用户登录失败信息,并且提示错误几次,且重新输入;如果输入错误三次,则退出系统 #include <iostream> using namespace std;int main() {string id , pswd;string user"admi…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
