当前位置: 首页 > news >正文

机器学习知识点全面总结

一、机器学习基础概念

 1、什么是机器学习

        机器学习是一种人工智能技术,通过对数据的学习和分析,让计算机系统自动提高其性能。简而言之,机器学习是一种从数据中学习规律和模式的方法,通过数据来预测、分类或者决策

        机器学习的本质就是找到一个能无限接近需求的一个函数。

 2、怎样找到这个函数

        最基本的步骤如下:

        ①定一个函数集合

        ②判断函数的好坏

        ③选择最好的函数

3、机器学习三要素

        ①首先设计模型model

        ②通过各种方式判断模型的好坏

        ③根据需求,选择最好的函数,并不断优化模型

                  修改模型,增加数据维度

                  增加正则因子,使函数更加平滑,让参数w取值更小。(x变化较小时,整个函数结果             不会变化太大,结果更准)

4、机器学习的分类

监督学习:有数据标注情况下学习(回归、分类)

半监督学习:训练数据中带标记的数据不够多

迁移学习:在已学习基础上,做看似和以前学习不相关的事情,但实际效果很好(如在猫狗识别基础识别大象老虎等)

无监督学习:没有具体标注数据的情况下学习(机器阅读、机器绘画)

结构化学习:超越简单的回归和分类,产生结构化的结果(如图片、语言、声音)

二、处理一个机器学习问题的基本步骤 

  • 数据收集:首先需要收集数据并将其转化为可以计算的形式,例如数值、文本或图像等。
  • 数据预处理:数据收集后,需要对数据进行清洗、去除异常值、缺失值处理、特征选择等预处理步骤。
  • 特征工程: 是指在机器学习中对原始数据进行转换、组合和选择等处理,以提取更有用的特征或属性,以帮助机器学习算法更好地理解和处理数据。简而言之,特征工程就是对原始数据进行预处理,以提取有用信息来辅助机器学习。
  • 模型选择:根据问题的特点和数据的特征选择适合的机器学习算法和模型。
  • 模型训练(机器学习):利用已有数据对所选的机器学习模型进行训练,从而使模型能够学习数据中的规律和模式。
  • 模型评估:训练完成后,需要对模型进行评估和调整,以检查其性能和精度,并进行优化。
  • 模型应用:经过训练和优化后,机器学习模型可以用于新数据的预测、分类、聚类等任务。

 三、机器学习算法总结

1、监督学习(SupervisedLearning)

        有类别标签的学习,基于训练样本的输入、输出训练得到最优模型,再使用该模型预测新输入的输出;

        代表算法:决策树、朴素贝叶斯、逻辑回归、KNN、SVM、神经网络、随机森林、AdaBoost、遗传算法;

2、半监督学习(Semi-supervisedLearning)

        同时使用大量的未标记数据和标记数据,进行模式识别工作;

        代表算法:self-training(自训练算法)、generative models生成模型、SVMs半监督支持向量机、graph-basedmethods图论方法、 multiviewlearing多视角算法等;

3、无监督学习(UnsupervisedLearning)

        无类别标签的学习,只给定样本的输入,自动从中寻找潜在的类别规则;

        代表算法:主成分分析方法PCA等,等距映射方法、局部线性嵌入方法、拉普拉斯特征映射方法、黑塞局部线性嵌入方法、局部切空间排列方法等;

4、判别模型(discriminative model)

        已知输入变量x,通过求解条件概率分布P(y|x)或者直接计算y的值来预测y。

        例如:

  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 支持向量机(SVM)
  • 传统神经网络(Traditional Neural Networks)
  • 线性判别分析(Linear Discriminative Analysis)
  • 条件随机场(Conditional Random Field)

5、生成模型(generative model)

        已知输入变量x,通过对观测值和标注数据计算联合概率分布P(x,y)来达到判定估算y的目的。

        例如:

  • 朴素贝叶斯(Naive Bayes)
  • 隐马尔科夫模型(HMM)
  • 贝叶斯网络(Bayesian Networks)
  • 隐含狄利克雷分布(Latent Dirichlet Allocation)

四、算法详解

1、KNN(K近邻算法)

(1)定义

        如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

(2)算法流程

1)计算已知类别数据集中的点与当前点之间的距离

2)按距离递增次序排序

3)选取与当前点距离最小的k个点

4)统计前k个点所在的类别出现的频率(分类:样本出现最多个数 回归:K个杨样本的平均值)

5)返回前k个点出现频率最高的类别作为当前点的预测分类

 (3)注意点

        ① K值选择

K值的减小就意味着整体模型变得复杂,容易发生过拟合;

K值的增大就意味着整体模型变得简单,容易发生欠拟合;

​ 注:实际应用中,K值一般取一个比较小的数值,例如采用交叉验证来选择最优的K值。

        ② 误差估计

近似误差:对训练集的训练误差,关注训练集,近似误差小可能出现过拟合。
估计误差:对测试集的测试误差,关注测试集,估计误差小说明对未知数据的预测能力好。

(4)K近邻实现 
  • 线性扫描(穷举搜索)

        计算输入实例与每一个训练实例的距离。计算后再查找K近邻。当训练集很大时,计算非常耗时。

  • KD树

        ①一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构

        ②kd树是一种二叉树,表示对k维空间的一个划分,构造kd树相当于不断地用垂直于坐标轴的超平面将K维空间切分,构成一系列的K维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。

        ③利用kd树可以省去对大部分数据点的搜索,从而减少搜索的计算量。

  • 距离计算

        ①欧式距离(Euclidean Distance)

        ②曼哈顿距离(Manhattan Distance)

        ③切比雪夫距离 (Chebyshev Distance)

 

(5)实例
# -*- coding: UTF-8 -*-
import numpy as np
import operator
import collections"""
函数说明:创建数据集Parameters:无
Returns:group - 数据集labels - 分类标签
Modify:2017-07-13
"""def createDataSet():# 四组二维特征group = np.array([[1, 101], [5, 89], [108, 5], [115, 8]])# 四组特征的标签labels = ['爱情片', '爱情片', '动作片', '动作片']return group, labels"""
函数说明:kNN算法,分类器Parameters:inX - 用于分类的数据(测试集)dataSet - 用于训练的数据(训练集)labes - 分类标签k - kNN算法参数,选择距离最小的k个点
Returns:sortedClassCount[0][0] - 分类结果"""def classify0(inx, dataset, labels, k):# 计算距离dist = np.sum((inx - dataset) ** 2, axis=1) ** 0.5# k个最近的标签k_labels = [labels[index] for index in dist.argsort()[0: k]]# 出现次数最多的标签即为最终类别label = collections.Counter(k_labels).most_common(1)[0][0]return labelif __name__ == '__main__':# 创建数据集group, labels = createDataSet()# 测试集test = [101, 20]# kNN分类test_class = classify0(test, group, labels, 3)# 打印分类结果print(test_class)

2、线性回归

(1)定义

        利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。

相关文章:

机器学习知识点全面总结

一、机器学习基础概念 1、什么是机器学习 机器学习是一种人工智能技术,通过对数据的学习和分析,让计算机系统自动提高其性能。简而言之,机器学习是一种从数据中学习规律和模式的方法,通过数据来预测、分类或者决策。 机器学习的本…...

【研发日记】嵌入式处理器技能解锁(三)——TI C2000 DSP的C28x内核

文章目录 前言 背景介绍 C28x内核 浮点单元(FPU) 快速整数除法单元(FINTDIV) 三角数学单元(TMU) VCRC单元 CPU总线 指令流水线 总结 参考资料 前言 见《【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法》 见《【研发日记】嵌入式处理器技能解…...

LeetCode.27.移除元素

题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以…...

redis面试(十二)可重入锁总结

可重入锁总结 从实现原理以及源码的层面,真正剖析和了解到了redis分布式锁的企业级的实现,这个分布式锁实现的还是非常漂亮的,麻雀虽小,五脏俱全,分布式的可重入锁,总结一下流程 (1&#xff0…...

软件测试知识点3

063、一份测试计划应该包括哪些内容? 背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。 065、如何定位测试用例的作用? 组织性:编写、组织性、功能覆盖、重复性、跟踪、测试确认 066、什么…...

WPF Treeview开启虚拟化后如何找到TreeViewItem

用VirtualizingStackPanel的BringIndexIntoViewPublic方法就好&#xff0c;没必要像微软给的例子那样还要继承一个VirtualizingStackPanel /// <summary> /// Recursively search for an item in this subtree. /// </summary> /// <param name"container…...

给python初学者的一些建议

写在开篇 关于Python&#xff0c;可以这么说&#xff0c;这几年借着数据科学、机器学习与人工智能的东风&#xff0c;Python 老树开新花&#xff0c;在风口浪尖上居高不下。 Python 之所以这么受大家的青睐&#xff0c;是因为它语言简洁&#xff0c;上手容易&#xff0c;让非…...

【Python学习手册(第四版)】学习笔记17-作用域

个人总结难免疏漏&#xff0c;请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文介绍Python作用域&#xff0c;介绍了变量名解析的LEGB原则&#xff0c;以及内置作用域&#xff0c;全局作用域global语句&#xff0c;嵌套作用域及nonlocal语…...

大语言模型(LLM)文本预处理实战

大语言模型&#xff08;LLM&#xff09;文本预处理实战 文章目录 大语言模型&#xff08;LLM&#xff09;文本预处理实战2.1 理解词嵌入2.2 文本分词2.3 将 token 转换为 token ID2.4 添加特殊上下文 token2.5 字节对编码 (BytePair Encoding, BPE)2.6 使用滑动窗口进行数据采样…...

宠物健康新守护:智能听诊器的家庭应用

宠物已成为我们情感的寄托和生活的一部分&#xff0c;为宠物的健康守护带来了科技的温度。 科技与关怀结合 这款智能听诊器&#xff0c;以其科技感和关怀精神&#xff0c;为宠物的健康监测提供了全新的视角。 家庭友好设计&#xff1a;考虑到家庭使用环境&#xff0c;智能听…...

六、go函数

函数在任何语言中并不难理解&#xff0c;但是不论是有几年开发经验的人&#xff0c;真正想要写好一个函数并不是那么容易的 1、go语言中函数结构 func main() {fmt.Println(isEven(2)) } func isEven(x int) bool {return x%2 0 }&#xff08;这里我写了一个简单的判断是否是…...

高原型垂直起降高速无人机技术详解

1. 技术概述 高原型垂直起降高速无人机&#xff08;High-Altitude Vertical Take-off and Landing High-Speed Unmanned Aerial Vehicle, HAVTHS UAV&#xff09;是针对高原复杂环境设计的一种先进无人机系统。它结合了垂直起降的灵活性与高速飞行的能力&#xff0c;能够克服高…...

Selenium + Python 自动化测试10(unittest概念)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上几篇我们讨论了元素的定位方法、操作方法以及一些特殊元素的操作。 在实际的测试项目组中每个模块会写多条案例&#xff0c;如第一条用例那里我们的登录。登录的话就可以有多…...

大数据-67 Kafka 高级特性 分区 分配策略 Ranger、RoundRobin、Sticky、自定义分区器

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

深度学习与图像修复:ADetailer插件在Stable Diffusion中的应用

文章目录 引言ADetailer插件介绍插件安装常用模型控制提示词参数配置参数详解 实践建议 示例插件的对比&#xff1a;1. ADetailer插件2. Photoshop插件&#xff08;如Nik Collection&#xff09;3. GIMP插件&#xff08;如GMIC&#xff09;4. Affinity Photo插件 结语 引言 无…...

【Pytorch】topk函数

topk 是 PyTorch 中的一个函数&#xff0c;用于从张量中选取最大&#xff08;或最小&#xff09;的 k 个元素及其对应的索引。其定义如下&#xff1a; values, indices torch.topk(input, k, dimNone, largestTrue, sortedTrue, *, outNone)参数说明 input (Tensor): 输入张…...

使用mybatis注解和xml映射执行javaWeb中增删改查等操作

Mapper接口 使用注解执行SQL语句操作和相应的Java抽象类&#xff08;对于简单的增删改查使用注解&#xff09; Mapper public interface EmpMapper {// 根据id删除员工信息Delete("delete from mybatis.emp where id#{id}")public int EmpDelete(Integer id);// 查…...

SpringBoot3 响应式编程

Spring Boot 3 中的响应式编程是一个重要的特性&#xff0c;它允许开发者构建非阻塞、异步和基于事件的应用程序&#xff0c;这对于处理高并发和实时数据流的应用场景尤为重要。以下是对Spring Boot 3响应式编程的详细解析&#xff1a; 一、响应式编程概述 响应式编程是一种编…...

【C++ 面试 - 基础题】每日 3 题(二)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…...

Modelica建模,Modelica语言的学习,技术调研工作

Modelica建模&#xff0c;Modelica语言的学习&#xff0c;技术调研工作 参考资料&#xff1a; 苏州同元软控信息技术有限公司 - 同元 Modelica 再探冷却 modelica学习-CSDN博客 1、 Modelica简介 Modelica是由Modelica协会维护、免费开放的物理系统面向对象的统一建模语言规…...

终极指南:5分钟学会用Wallpaper Engine下载器轻松获取创意工坊壁纸

终极指南&#xff1a;5分钟学会用Wallpaper Engine下载器轻松获取创意工坊壁纸 【免费下载链接】Wallpaper_Engine 一个便捷的创意工坊下载器 项目地址: https://gitcode.com/gh_mirrors/wa/Wallpaper_Engine 还在为Steam创意工坊里精美的动态壁纸无法直接下载而烦恼吗&…...

SketchUp STL开源工具:让3D设计无缝转化为可打印模型的完整方案

SketchUp STL开源工具&#xff1a;让3D设计无缝转化为可打印模型的完整方案 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl 在…...

seo实用工具对网站长期发展有什么影响

SEO实用工具对网站长期发展的影响 在当今数字化时代&#xff0c;网站的长期发展离不开搜索引擎优化&#xff08;SEO&#xff09;。而SEO实用工具&#xff0c;则是推动网站长期发展的重要助手。它们不仅帮助提升网站的搜索排名&#xff0c;还能够提供数据分析、关键词研究和竞争…...

快速体验WAN2.2文生视频:ComfyUI预置工作流,2分钟生成测试视频

快速体验WAN2.2文生视频&#xff1a;ComfyUI预置工作流&#xff0c;2分钟生成测试视频 1. 为什么选择WAN2.2文生视频工作流 如果你正在寻找一个简单易用、效果出色的文生视频工具&#xff0c;WAN2.2文生视频工作流绝对值得一试。这个预置在ComfyUI中的工作流&#xff0c;让视…...

OFA模型在VMware虚拟机中的开发测试环境搭建

OFA模型在VMware虚拟机中的开发测试环境搭建 对于很多刚接触AI模型开发的个人开发者或学生来说&#xff0c;最大的门槛往往不是算法本身&#xff0c;而是硬件。一块性能足够的独立GPU价格不菲&#xff0c;让很多人在起步阶段就望而却步。难道没有物理GPU&#xff0c;就真的没法…...

P1095 守望者的逃离【洛谷算法习题】

P1095 守望者的逃离 网页链接 P1095 守望者的逃离 题目背景 NOIP2007 普及组 T3 题目描述 恶魔猎手尤迪安野心勃勃&#xff0c;他背叛了暗夜精灵&#xff0c;率领深藏在海底的娜迦族企图叛变。 守望者在与尤迪安的交锋中遭遇了围杀&#xff0c;被困在一个荒芜的大岛上。…...

边缘智能部署:AI模型在边缘节点的轻量化改造

边缘智能部署&#xff1a;AI模型在边缘节点的轻量化改造&#x1f4da; 本章学习目标&#xff1a;深入理解AI模型在边缘节点的轻量化改造的核心概念与实践方法&#xff0c;掌握关键技术要点&#xff0c;了解实际应用场景与最佳实践。本文属于《云原生、云边端一体化与算力基建&a…...

用ESP32和TB6612FNG做个遥控小车:从硬件接线到Arduino代码调试全记录

从零打造ESP32智能遥控小车&#xff1a;硬件选型、代码优化与避坑指南 项目背景与核心组件解析 去年夏天&#xff0c;我在工作室里堆满了各种电机和开发板&#xff0c;试图为侄子制作一个生日礼物——能通过手机控制的遥控小车。经过多次迭代&#xff0c;最终选择了ESP32TB6612…...

2026年Java面试最常被问的1000道题目及参考答案

Java学到什么程度可以面试工作&#xff1f; 要达到能够面试Java开发工作的水平&#xff0c;需要掌握以下几个方面的知识和技能&#xff1a; 1. 基础扎实&#xff1a;熟悉Java语法、面向对象编程概念、异常处理、I/O流等基础知识。这是所有Java开发者必备的基础&#xff0c;也…...

DS4Windows手柄适配工具全解析:从安装到高级配置的完美指南

DS4Windows手柄适配工具全解析&#xff1a;从安装到高级配置的完美指南 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 在PC游戏领域&#xff0c;手柄支持一直是玩家体验的关键环节。许多…...