机器学习的关键词和算法总结

       随着全球各行业的数据治理、数字化转型智能化辅助的引入发展,机器学习(包括深度学习)在逐步深入到各行各业,所以,有必要对机器学习的常见术语,经典算法及应用场景进行一次总结,其实机器学习兴起目的是为了解决人类的各种各样的分类回归问题,通过人类智能化的设计,实现机器的自动化或智能化,而且机器主要学习人类解决问题的归纳和综合逻辑方法,但目前还无法实现演绎逻辑。特别是一些数据量密集,准确性要求快捷及时的场景,比如人脸识别、车牌设备、行人检测、安全预警、垃圾邮件识别等等。
机器学习的几个关键名词:训练集、测试集、特征值、有监督、非监督、半监督、分类和回归。
训练集:用于训练算法形成模型的数据集组合,一般都是有标签的数据集。
测试集:用于测试训练形成的模型的测试验证数据集,一般与训练集的比例是2:8。
特征值:整个数据集中的所以特征数据,出去要预测的属性或属性值。
关于有监督、非监督、半监督、分类和回归在下面详细展开说明。
机器学习大的分类
分类问题:目标标记是类别型数据
回归问题:目标标记是连续性数值
机器学习三类问题
有监督学习:训练集有类别标记
无监督学习:无标记的训练集
半监督学习:有类别标记的训练集+无标记的训练集
深度学习:机器学习的延伸和扩展,强调的是特征提取与组合
强化学习:从环境到行为映射的学习,以使得奖励信号(强化信号)函数值最大,强调的是反馈
迁移学习:是在新情况(不同于训练集的情况)上的泛化能力。而把别处学得的知识,迁移到新场景的能力。人类的迁移学习能力就很强, 人类在学会骑自行车后,再骑摩托车就很容易了,人类在学会打羽毛球后再学习打网球也会容易很多。强调的是 适应能力,发现共性(最大的难点),共性:司机的座位总是靠近路中间的
迁移学习的特点:小规模数据,可靠性和个性化。
算法训练后形成的模型评估有哪些?
1.准确率或精度
2.速度
3.强壮性
4.可规模性
5.可解释性

深度学习和经典机器学习的区别

经典的机器学习算法如下:
一、决策树(DecisionTree)
信息熵:信息的不确定,衡量信息的多少,信息的不确定性越大,熵越大,建模时取信息增益最大的那个特征作为根节点(条件熵最小)
信息增益或信息获取量(Information Gain)或者互信息:特征属性获取的度量方法。Gain(A)=Info(D)-Info_A(D)
优点:便于理解,直观,对小规模数据集有效
缺点:处理连续变量不好,类别较多时,错误增加的比较快,可用规模性一般
scikit-learn,需要安装graphviz后执行以下命令,实现决策树图的可视化。
dot转化为pdf文件:dot -Tpdf test.dot -o output.pdf 生成决策树
二、最邻近规则分类算法(简称KNN)
基于实例的学习,懒惰学习,开始并没有建立广泛的模型
为了判断未知实例的类别,需要以所有已知类别的实例作为参考,对其进行归类
1.选择参数K
2.计算未知实例与所有已知实例之间的距离
3.选择最近K个已知实例
4.采用少数服从多数,未知实例的归类就是这K个相邻样本中最大数的类别
KD树构建:
分别计算n个特征取值的方差,用方差最大的第k维特征$n{k}$来作为根节点。对于这个特征,我们选择特征$n{k}$的取值的中位数$n{kv}$对应的样本作为划分点
距离衡量方法:坐标差平方和开根号,cos,相关度,曼哈顿距离
优点:简单易于理解,容易实现,可以通过对K的选择增加健壮性
缺点:空间大,算法复杂度高,当样本不平衡时,某一类样本占主导时,新的实例容易被归为这个主导分类。但实际是错误的
改进:在距离的基础上加一个权重,比如1/d(d为距离)
三、支持向量机(SVM)
机器学习的一般框架
训练集--》提取特征向量--》结合一定的算法(分类器:比如决策树,KNN)-->得到模型结果
SVM就是寻找两类的超平面,使得边际最大
特点:
1.算法复杂度是由支持向量的个数决定,不是由数据的维度决定,不容易产生overfitting
2.模型完全依赖于支持向量,即使所有非支持向量去除,重复训练时,模型也是一样的
3.一个SVM如果训练得出的支持向量个数比较少,模型容易被泛化
四、人工神经网络
多层向前神经网络(multiplayer feed-forward neural network)
输入层 隐藏层 输出层
交叉验证方法(cross-validation):分成十份,每次拿出一份,找到十个模型,然后去平均值
神经网络可以用于解决分类问题,也可以解决回归问题
backpropagation算法
1.通过迭代来处理训练集中的数据
2.通过对比神经网络后输入层预测值与真实值之间的差距
3.反方向(从输出--》隐藏--》输入)来最小化误差来更新每个连接的权重和偏向
终止条件
权重的更新低于某个阈值
预测的错误率低于某个阈值
达到预设一定的循环次数
五、简单线性回归(Simple linear regression)
均值、中位数,众数,方差和标准差(提醒数据的离散程度,越大表示离散度大)
回归Y变量是连续数值型:如房价、人数、
分类Y变量是类别型:颜色类型,岩石类型,电脑品牌,有无信誉
包含一个自变量和一个因变量叫做简单线性回归问题
包含两个以上的自变量,叫做多元回归问题。
简单线性回归模型:y=B0+B1x+E
简单线性回归方程:E(y)=B0+B1x
估计的简单线性回归方程:y=b0+b1x
估计方法:使得sum of squares最小
多元回归分析
多个自变量
非线性回归(logistic regression)
概率:一件事情发生的可能性衡量,0<P<1
条件概率
梯度下降算法
回归中的相关度和R平方值:皮尔逊相关系数
R平方值:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例,比如R平方为0.8,表示回归关系可以解释因变量80%的变异,换句话说,如果我们能够控制自变量不变,泽因变量的变异程度会减少80%
R平方随着自变量的增加会变大,R平方和样本量有关系
rer
六、聚类(cluster)
Kmeans算法:数据挖掘中的十大经典算法之一
算法接收参数K,然后将事先输入的n个数据对象划分为k个聚类,同一聚类相似度高,不同聚类相似度变小
优点:速度快,简单
缺点:最终结果跟初始点的选择相关,容易陷入局部最优,需要事先知道K值
层次聚类(hierarchical clustering)
初始化将每个样本归为一类,计算每两类之间的距离,也就是样本与样本之间的相似度
寻找各个类之间最近的两个类,将其归为一类,相当于类的总数少一个了。
学习资源

深度学习的软件包:Theano,opencv2,Pylearn2,TensorFlow,scikit-neuralnetwork,Caffe(C++),Deeplearning4j(java),Torch

深度学习网站:http://deeplearning.net/

GPU查看网站:http://developer.nvidia.com/cuda-gpus 

sklearn深度学习:GitHub - aigamedev/scikit-neuralnetwork: Deep neural networks without the learning cliff! Classifiers and regressors compatible with scikit-learn.

Mnist数据集(手写数据集):MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges, GitHub - cazala/mnist: mnist digits in javascript

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/52699.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java Design and development -- QQ chat

About ARTS - Complete one ARTS per week: ● Algorithm: Do at least one LeetCode algorithm per week Review: Read and comment on at least one technical article in English ● Tips: Learn at least one technical trick ● Share: Share a technical article with op…

基于新浪微博海量用户行为数据、博文数据数据分析:包括综合指数、移动指数、PC指数三个指数

基于新浪微博海量用户行为数据、博文数据数据分析&#xff1a;包括综合指数、移动指数、PC指数三个指数 项目介绍 微指数是基于海量用户行为数据、博文数据&#xff0c;采用科学计算方法统计得出的反映不同事件领域发展状况的指数产品。微指数对于收录的关键词&#xff0c;在指…

指针应用基础练习

&#xff08;1&#xff09;一级指针&#xff0c;二级指针 void getString(char **p) {*p "hello world"; }int main(void) {char *str NULL;getString(&str);printf("%s\n", str); } 代码分析&#xff1a; 定义了一个char型指针str&#xff0c;…

Vue 3:玩一下web前端技术(五)

前言 本章内容为VUE语法的简单学习与相关语法讨论。 上一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;四&#xff09;_Lion King的博客-CSDN博客 下一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;六&#xff09;_L…

复习之linux存储的基本管理

一、实验环境的设定 1. 实验环境的搭建 本节内容只需要一台虚拟机 westosa reset重置虚拟机&#xff0c;保证实验环境的纯净配置网络实现ssh连接 重置虚拟机后&#xff0c;配置网络&#xff0c;设定ip&#xff1a;172.25.254.100&#xff0c;保证与主机可以通信 实现ssh连接…

chatgpt 接口使用(一)

使用api实现功能 参考链接&#xff1a;https://platform.openai.com/examples 安装库&#xff1a; pip3 install openai 例如&#xff1a; import os import openaiopenai.api_key os.getenv("OPENAI_API_KEY") response openai.ChatCompletion.create(model&q…

配置tomcat内存大小(windows、linux)

一、参数说明 -Xms&#xff1a; JVM初始分配的堆内存 -Xmx&#xff1a; JVM最大允许分配的堆内存&#xff0c;按需分配 -XX:PermSize&#xff1a; JVM初始分配的非堆内存 -XX:MaxPermSize&#xff1a; JVM最…

QT服务器练习

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化空间server new QTcpServer(this); }Widget::~Widget() {delete ui; }//启动服务器按钮对…

阿里云域名备案

最好的爱情&#xff0c;不是因为我们彼此需要在一起&#xff0c;而是因为我们彼此想要在一起。 阿里云的域名如何备案&#xff0c;域名备案和ICP备案一样吗&#xff1f;&#xff1f; 截至我所掌握的知识&#xff08;2021年9月&#xff09;&#xff0c;阿里云的域名备案和ICP备案…

什么是嵌入式软件开发?

嵌入式软件一般是在交叉的开发环境下进行的&#xff0c;这样的运行环境能够让软件开发过程中更加稳定、可靠和安全&#xff0c;在很大程度上提升了软件开发的质量和效率&#xff0c;同时也使得软件开发的难度和程度大大降低。 嵌入式软件的交叉开发环境&#xff0c;反映了用于…

Spire.Office for.NET Crack

Spire.Office for.NET Crack Spire.Office for.NET是E-iceblue提供的企业级Office.NET API的组合。它包括Spire.Doc、Spire.XLS、Spire.Seadsheet、Spire.Presentation、Spire_PDF、Spire.DataExport、SpireOfficeViewer、Spire-PDFViewer、Spire.DocViewer、Spire.Barcode和Sp…

windows版docker部署springcloud项目

材料&#xff1a; 1.windows版docker环境&#xff08;其他版教程可能道理一样但是比如文件后坠名上可能有差异&#xff09; 2.运行好的数据库容器&#xff08;实现教程&#xff09; 3.所有jar包 实现&#xff1a; 最后整好的文件夹结构图&#xff08;原工程文件机密&#xf…

【Git】git reset 版本回退 git rm

前言 在日常开发时&#xff0c;我们经常会需要撤销之前的一些修改内容或者回退到之前的某一个版本&#xff0c;这时候reset命令就派上用场了 git reset 用法1——所有文件回退到某个版本 1、使用git reflog查看要回退的commit对象 2、使用git reset [-- hard/soft /mixed] …

【Linux后端服务器开发】IP协议

目录 一、IP协议概述 二、协议头格式 三、网段划分 四、IP地址的数量限制 五、路由 六、分片和组装 一、IP协议概述 主机&#xff1a;配有IP地址&#xff0c;但是不进行路由控制的设备 路由器&#xff1a;即配有IP地址&#xff0c;又能进行路由控制 节点&#xff1a;主…

application.yml 或 application.properties 配置文件乱码问题

一、idea写application.yml配置文件&#xff0c; 用到了中文注释&#xff0c;写的时候好好地&#xff0c;但是运行项目后&#xff0c;出现乱码情况&#xff0c;如下&#xff1a; 二、解决方法 将文件编码方式 设置成UTF-8即可 File-Setting-Editor-File Encodings 再次运行项…

【《React Hooks实战》——指导你使用hook开发性能优秀可复用性高的React组件】

使用React Hooks后&#xff0c;你很快就会发现&#xff0c;代码变得更具有组织性且更易于维护。React Hooks是旨在为用户提供跨组件的重用功能和共享功能的JavaScript函数。利用React Hooks&#xff0c; 可以将组件分成多个函数、管理状态和副作用&#xff0c;并且不必声明类即…

FreeRTOS源码分析-7 消息队列

目录 1 消息队列的概念和作用 2 应用 2.1功能需求 2.2接口函数API 2.3 功能实现 3 消息队列源码分析 3.1消息队列控制块 3.2消息队列创建 3.3消息队列删除 3.4消息队列在任务中发送 3.5消息队列在中断中发送 3.6消息队列在任务中接收 3.7消息队列在中断中接收 1 消…

导出文件下载进度条简单实现

前言 今天要跟大家分享的是一个导出数据进度条的简单实现&#xff0c;适用场景用在数据量大、组织数据耗时的情况下的简单实现。 一、设计思路 1、导出数据生成文件上传到OSS&#xff0c; 2、导出数据状态存redis缓存&#xff0c; 3、前端发导出请求后&#xff0c;返回的文件k…

动态sql以及常用的标签

什么是动态sql&#xff1a; 指根据不同的条件生成不同的sql 搭建环境&#xff1a; 建表&#xff1a; create table blog( id varchar(50) not null comment 博客id, title varchar(100) not null comment 博客标题, author varchar(30) not null comment 博客作者, create_ti…

第三章 ref与reactive

ref ref 变为响应式数据shallowRef 浅层响应式数据&#xff08;响应式到 .value为止&#xff09;isRef 判断是否为ref响应式数据triggerRef 强制触发依赖更新customRef 自定义ref函数 <template><div class"App">{{ stu }}<button click"chang…