机器学习--常见算法总结

news2024/11/14 5:22:09

有监督学习算法

1. 线性回归算法

概念:线性回归是一种统计方法,用于预测一个变量(因变量)与一个或多个自变量(特征变量)之间的关系。目标是通过线性方程建立自变量和因变量之间的关系模型。

作用:线性回归主要用于预测和估计,广泛应用于经济学、工程学、社会科学等领域。例如,预测房价、销售额等。

实现:通过最小二乘法(Ordinary Least Squares, OLS)来估计回归系数,使得模型预测值与实际值之间的误差平方和最小。

2. 逻辑回归算法

概念:逻辑回归是一种分类算法,主要用于解决二分类问题。虽然名字里有“回归”,但它实际上是一种分类算法,用于估计某个事件发生的概率。

作用:广泛用于医学、金融等领域的分类问题,如疾病预测、信用评分等。

实现:通过最大似然估计法来优化模型参数,使得预测值最接近真实概率。

3. 分类回归树(决策树)

概念:决策树是一种树形结构的模型,用于分类和回归。它通过一系列的规则将数据集划分为不同的子集,最终形成一个树状结构。

作用:适用于分类和回归任务,尤其是在数据噪声较少的情况下表现较好,常用于客户细分、医疗诊断等领域。

原理:决策树的构建过程是递归地选择最优特征,将数据集划分为两个或多个子集,并继续对每个子集递归进行划分,直到满足停止条件。常用的划分标准包括信息增益、基尼指数等。

实现:通过递归划分数据集,选择使得分类或回归误差最小的特征作为划分标准,构建树形结构。

4. 朴素贝叶斯

概念:朴素贝叶斯是一种基于贝叶斯定理的分类算法,假设特征之间相互独立。

作用:主要用于文本分类和情感分析等场景,具有高效、简单的特点。

实现:通过计算先验概率和条件概率来构建模型,并通过后验概率进行分类。

5. KNN(K近邻算法)

概念:K近邻算法是一种基于实例的学习方法,主要用于分类和回归。它通过计算待分类样本与已知样本的距离,选择距离最近的 kkk 个邻居进行投票或平均,来确定待分类样本的类别或值。

作用:KNN算法广泛用于模式识别、数据挖掘、推荐系统等领域。

原理:KNN的基本思想是,如果一个样本在特征空间中的 kkk 个最相似的样本(即最近邻)中的大多数属于某一个类别,则该样本也属于这个类别。在回归问题中,KNN根据最近邻的平均值或加权平均值来进行预测。

实现:计算新样本与训练集所有样本的距离,选择最近的 kkk 个样本,并进行投票或计算平均值来进行预测。

无监督学习算法

6. 关联规则算法

概念:关联规则算法用于发现数据集中不同项目之间的关联或模式,最常用于市场购物篮分析,以识别商品之间的共现关系。

作用:用于揭示数据中隐藏的模式和关系,如零售分析中的商品推荐、社交网络中的关系挖掘等。

原理:关联规则通过频繁项集生成和规则挖掘两个步骤来发现数据中的关联关系。常用的指标包括支持度、置信度和提升度。

  • 支持度:一个项集在数据库中出现的频率。
  • 置信度:在包含项集A的交易中,项集B也出现的概率。
  • 提升度:衡量项集A与项集B的关联强度。

实现:常用算法包括Apriori和FP-Growth。Apriori通过反复扫描数据库生成频繁项集,而FP-Growth通过构建频繁模式树来高效地发现频繁项集。

7. K-means算法

概念:K-means是一种聚类算法,旨在将数据集划分为 kkk 个簇,每个簇中的数据点尽可能地相似,而不同簇的数据点尽可能地不同。

作用:广泛应用于图像处理、模式识别、客户细分等领域。

原理:K-means通过以下步骤实现数据聚类:

  1. 随机选择 kkk 个初始聚类中心(质心)。
  2. 将每个数据点分配到与其最近的聚类中心所在的簇。
  3. 重新计算每个簇的质心。
  4. 重复步骤2和3,直到聚类结果不再变化或达到预设的迭代次数。

实现:通过迭代优化,最小化每个数据点到其所在簇的质心的距离平方和。

8. PCA(主成分分析)

概念:PCA是一种用于数据降维的无监督学习算法,旨在通过线性变换将原始数据投影到一个低维空间中,同时尽量保持数据的主要特征。

作用:PCA用于减少数据维度,去除噪声,提升算法的效率,常用于数据预处理和可视化。

原理:PCA通过寻找数据协方差矩阵的特征向量,将数据投影到新的特征空间中,选择方差最大的前几个主成分来表示数据,从而达到降维的目的。

实现:通过计算协方差矩阵并进行特征值分解,选择前几个主成分作为新的特征空间。

集成学习技术

9. 使用随机森林Bagging

概念:随机森林是一种基于Bagging思想的集成学习算法,通过构建多个决策树并将它们的预测结果进行平均或投票来提高模型的泛化能力。

作用:随机森林具有很强的抗过拟合能力,适用于高维数据和噪声较大的数据集,广泛应用于分类、回归问题。

原理:随机森林通过以下步骤实现:

  1. 通过Bootstrap方法从训练集中随机抽样,构建多个训练子集。
  2. 对每个子集训练一棵决策树。
  3. 每棵树在节点分裂时,随机选择部分特征来寻找最佳分裂点(这一步与传统决策树不同)。
  4. 对于分类问题,采用多数投票法;对于回归问题,采用平均法来得到最终预测结果。

实现:随机森林通过构建多个相互独立的决策树,并结合它们的预测结果,来提高模型的稳定性和预测精度。

10. 用Adaboost实现Boosting

概念:Adaboost是一种基于Boosting思想的集成学习算法,通过不断调整样本权重,迭代地训练弱分类器,并将这些弱分类器组合成一个强分类器。

作用:Adaboost广泛应用于分类问题,尤其是在处理数据噪声较少且样本数较大的情况下表现良好。

原理:Adaboost通过以下步骤实现:

  1. 初始化样本权重,使得所有样本权重相等。
  2. 训练一个弱分类器,并计算其分类误差。
  3. 根据分类误差调整样本权重,使得误分类样本的权重增加,而正确分类样本的权重减少。
  4. 训练下一个弱分类器,重复上述步骤,直到达到预定的弱分类器数量。
  5. 将所有弱分类器组合起来,构建最终的强分类器。

实现:Adaboost通过加权投票或加权平均的方法,将多个弱分类器的输出组合成最终的预测结果,从而提高分类精度。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vertical-align: bottom;

问: 这个弹框中, "张三" 文字在某些ios手机中会上升到顶部, 图片也会移动, 西方二维码也会向下移动, 请问什么原因? 回答: 我们在 "张三" 这个元素dt上, 加上了vertical-align: bottom;这个属性, 让这个在顶部的元素在最下面, 就解决了样式错乱的问题.

SCC-F 23212-0-110310控制器abb面价

SCC-F 23212-0-110310控制器面价 SCC-F 23212-0-110310控制器面价 SCC-F 23212-0-110310控制器面价 SCC-F 23212-0-110310控制模块接线图 SCC-F 23212-0-110310控制模块电路图 SCC-F 23212-0-110310控制模块线路图 SCC-F 23212-0-110310伺服电机控制器是数控系统及其他相…

【C语言】最详细的单链表(两遍包会!)

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C语言数据结构_小米里的大麦的博客-CSDN博客 🎁代码托管:黄灿灿/数据结构 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、单链表的概念 1. 单链表的特点 2. 单链表的基本…

Aqua使用记录

Java Kotlin Groovy Python 建议使用Poetry环境 Poetry executable:/Users/wan/Library/Application Support/pypoetry/venv/bin/poetry 安装依赖包 poetry add package 或者在.toml文件添加依赖包信息 Selenium with Python Selenium 生成html测试报告&#x…

Linux驱动——杂项驱动GPIO子系统

一:内核层框架 在介绍linux驱动之前先介绍一下系统。 系统分为两层: 1.系统层 2.内核层 对于内核层就要说一下其中的内核层运行的框架了 代码如下: //头文件 #include "linux/kernel.h" #include "linux/module.h" …

git-版本管理工具基本操作-创建仓库-拉取-推送-暂存库-版本库

1、创建仓库 2、克隆仓库到本地(首次拉取需要输入用户名和密码,用户名用邮箱,密码用登录gitee的密码,后面配置密钥后可以直接clone) 在命令行输出两行指令配置git才能克隆: username:gitee账号…

2D Inpainting 与NeRF 3D重建的多视角一致性问题

一 问题: NeRF依赖于输入图像的一致性。NeRF(Neural Radiance Fields)在生成三维场景时,依赖于从多个视角拍摄的输入图像之间的一致性来准确地推断场景的三维结构和颜色信息。 具体来说: 多视角一致性: Ne…

宝塔面板一键部署Inis博客网站结合内网穿透为本地站点配置公网地址

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总…

Day42 | 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II

语言 Java 739. 每日温度 每日温度 题目 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该…

计算机网络基础详解:从网络概述到安全保障的全面指南

目录 网络基础详细概述 1. 网络概述 1.1数据通信 1.2资源共享 1.3分布式处理 1.4负载均衡 2. 网络分类 2.1按覆盖范围: 2.1.1局域网 (LAN): 2.1.2城域网 (MAN): 2.1.3广域网 (WAN): 2.2按拓扑结构: 2.2.1…

IEEE802网络协议和标准

IEEE802网络协议和标准 802委员会IEEE 802介绍现有标准 IEEE 802.3介绍物理媒介类型MAC子层与LLC子层主要内容通讯标准POE供电标准802.3af、802.3at、802.3btIEEE802.3af的工作过程:IEEE802.3af主要供电参数:IEEE802.3af的分级参数:为什么会有…

C++的序列容器——数组

前言: 这篇文章我们就开始新的章节,我们之前说的C/C的缺陷那部分内容就结束了。在开始新的章之前我希望大家可以先对着题目思考一下,C的容器是什么?有什么作用?下面让我们开始新的内容: 目录 前言&#x…

从数据类型到变量、作用域、执行上下文

从数据类型到变量、作用域、执行上下文 JS数据类型 分类 1》基本类型:字符串String、数字Number、布尔值Boolean、undefined、null、symbol、bigint 2》引用类型:Object (Object、Array、Function、Date、RegExp、Error、Arguments) Symbol是ES6新出…

S7协议转HTTP协议

如下来源成都纵横智控-https://www.iotrouter.com/ 需求概述 本章要实现一个流程:EG8200采集西门子S7-200Smart的数据,并组装成JSON格式通过HTTP上报应用平台。 要采集的PLC点位表如下: PLC S7-200 Smart IP 192.168.0.34/102 点表(DB1…

C++第十一弹 -- STL之List的剖析与使用

文章索引 前言1. list的介绍2 list的使用2.1 list的构造函数2.2 iterator的使用2.3 list capacity2.4 list element access2.5 list modifiers 3. list的迭代器失效4. list与vector的对比总结 前言 本篇我们旨在探讨对于STL中list的使用, 下一篇我们将会对list进行底层剖析以及…

目录操作(2)(21)

1.getpwuid struct passwd *getpwuid(uid_t uid); 功能: 根据用户id到ks文件下解析获得 结构体信息 参数: uid:用户id 返回值: 成功返回id对应用户的信息 失败返回NULL eg:接受返回值struct passwd * pw getpwuid(uid); struct passwd {char *pw_name; …

Servlet---axios框架 ▎路由守卫

前言 在现代Web应用中,前端和后端通常分离,前端使用框架(如Vue.js、React)与后端服务交互。Servlet是Java EE中处理HTTP请求的重要组成部分,能够生成动态Web内容。 Axios是一个基于Promise的HTTP客户端,简…

【layUI】只能选某个特定区间的日历

要实现的功能如下&#xff1a;业务要求让日历只有近3天可选&#xff0c;其它部分变灰且不可选。 代码实现 在html中加入如下代码&#xff1a; <label class"layui-form-label" style"">日期&#xff1a; </label> <div class"layu…

二、前后端分离通用权限系统(2)

&#x1f33b;&#x1f33b; 目录 一、 Mybatis-Plus 复习1.1、简介1.2、特点1.3、支持数据库1.4、在工程中引入依赖 二、Mybatis-Plus 入门2.1、导入配置文件2.2、导入启动类2.3、实体类2.4、创建 Mapper 类2.5、创建测试 Mapper接口2.6、CRUD 测试2.6.1、insert 添加2.6.2、主…

flink环境搭建

Flink会话模式 1.集群规划&#xff1a; 2. 将flink拖到/opt/so下 3. 将安装包解压到/opt/module下&#xff1a; tar -zxvf /opt/so/flink-1.15.4-bin-scala_2.12.tgz -C /opt/module 4. 改个名&#xff1a;mv flink-1.15.4 flink 5. 修改配置文件&#xff1a;cd /opt/mo…