机器学习的概览
笔记内容侵权联系删除
机器学习算法
机器学习(包括深度学习分支)是研究“学习算法”的一门学问。所谓“学习”是指:对于某类任务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…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...