【机器学习】一文掌握机器学习十大分类算法(上)。

十大分类算法

  • 1、引言
  • 2、分类算法总结
    • 2.1 逻辑回归
      • 2.1.1 核心原理
      • 2.1.2 算法公式
      • 2.1.3 代码实例
    • 2.2 决策树
      • 2.2.1 核心原理
      • 2.2. 代码实例
    • 2.3 随机森林
      • 2.3.1 核心原理
      • 2.3.2 代码实例
    • 2.4 支持向量机
      • 2.4.1 核心原理
      • 2.4.2 算法公式
      • 2.4.3 代码实例
    • 2.5 朴素贝叶斯
      • 2.5.1 核心原理
      • 2.5.2 算法公式
      • 2.5.3 代码实例
  • 3、总结

1、引言

小屌丝:鱼哥,分类算法都有哪些?
小鱼:也就那几种了
小屌丝:哪几种啊?
小鱼:逻辑归回、决策树、随机森林、支持向量机…你问这个干嘛
小屌丝:我想捋一捋,哪些是分类算法
小鱼:我在【机器学习&深度学习】专栏已经写过了啊
小屌丝:那不是一篇只能学习一个技能嘛
小鱼:那你想咋的?
小屌丝:我想一篇学习多个技能。
小鱼:我… 的乖乖, 你真是个…~~
在这里插入图片描述

小屌丝: 别这么夸,我会不好意思的
小鱼:… 算了,我还是整理一下思路,写文章吧
小屌丝:可以可以。

2、分类算法总结

2.1 逻辑回归

2.1.1 核心原理

逻辑回归是用于二分类问题的统计方法,它通过将数据输入的线性组合通过逻辑函数(通常是Sigmoid函数)映射到0和1之间,从而预测概率。

2.1.2 算法公式

逻辑回归的核心公式为 P ( Y = 1 ) = 1 1 + e − ( β 0 + β 1 X 1 + . . . + β n X n ) P(Y=1) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + ... + \beta_nX_n)}} P(Y=1)=1+e(β0+β1X1+...+βnXn)1
其中 P ( Y = 1 ) P(Y=1) P(Y=1)是给定X时Y=1的概率。

敲黑板

详细内容可以参照小鱼的专篇:

  • 【机器学习】有监督学习算法之:逻辑回归
  • 【机器学习】一文掌握逻辑回归全部核心点(上)。
  • 【机器学习】一文掌握逻辑回归全部核心点(下)。

2.1.3 代码实例

代码实例

# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJfrom sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split# 加载数据
iris = load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 创建逻辑回归模型并训练
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)# 进行预测
predictions = model.predict(X_test)
print(predictions)

在这里插入图片描述

2.2 决策树

2.2.1 核心原理

决策树通过递归地选择最优特征,并根据该特征的不同取值对数据进行分割,每个分割为一个树的分支,直到满足停止条件。

敲黑板

详细内容可以参照小鱼的专篇:

  • 【机器学习】监督学习算法之:决策树

2.2. 代码实例

代码实例

# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJfrom sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split# 加载数据
iris = load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 创建决策树模型并训练
model = DecisionTreeClassifier()
model.fit(X_train, y_train)# 进行预测
predictions = model.predict(X_test)
print(predictions)

在这里插入图片描述

2.3 随机森林

2.3.1 核心原理

随机森林是一种集成学习方法,它构建多个决策树并将它们的预测结果进行投票或平均,以提高预测的准确性和稳定性。

敲黑板

详细内容可以参照小鱼的专篇:

  • 【机器学习】必会算法之:随机森林

2.3.2 代码实例

代码实例

# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJfrom sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split# 加载数据
iris = load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 创建随机森林模型并训练
model = RandomForestClassifier()
model.fit(X_train, y_train)# 进行预测
predictions = model.predict(X_test)
print(predictions)

在这里插入图片描述

2.4 支持向量机

2.4.1 核心原理

SVM通过找到一个超平面来最大化不同类别之间的边界距离,以达到分类目的。
对于线性不可分的数据,SVM使用核技巧映射到更高维度空间中实现分离。

敲黑板

详细内容可以参照小鱼的专篇:

  • 【机器学习】有监督学习算法之:支持向量机

2.4.2 算法公式

SVM的目标是最小化 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i ||w||^2 + C\sum_{i=1}^{n}\xi_i ∣∣w2+Ci=1nξi,其中C是正则化参数, ξ i \xi_i ξi是松弛变量。

2.4.3 代码实例

代码实例

# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJfrom sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split# 加载数据
iris = load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 创建SVM模型并训练
model = SVC()
model.fit(X_train, y_train)# 进行预测
predictions = model.predict(X_test)
print(predictions)

在这里插入图片描述

2.5 朴素贝叶斯

2.5.1 核心原理

朴素贝叶斯基于贝叶斯定理,假设特征之间相互独立。
它通过计算给定特征下每个类别的条件概率来进行分类。

2.5.2 算法公式

P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)} P(YX)=P(X)P(XY)P(Y),其中 P ( Y ∣ X ) P(Y|X) P(YX)是给定特征X下类别Y的条件概率。

2.5.3 代码实例

# -*- coding:utf-8 -*-
# @Time   : 2024-01-21
# @Author : Carl_DJfrom sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split# 加载数据
iris = load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 创建朴素贝叶斯模型并训练
model = GaussianNB()
model.fit(X_train, y_train)# 进行预测
predictions = model.predict(X_test)
print(predictions)

在这里插入图片描述

3、总结

以上介绍的五种机器学习分类算法各有特点和应用场景,如:

  • 逻辑回归朴素贝叶斯适用于小规模数据集
  • 决策树随机森林适用于处理复杂的非线性关系
  • SVM适用于高维数据的分类问题。

选择合适的算法取决于具体问题、数据集的特性以及预期的性能要求。

掌握这些算法的原理和使用方法,可以有效提升机器学习项目的开发效率和效果。

敲黑板:

另一篇,则点击文字即可到达:《【机器学习】一文掌握机器学习十大分类算法(下)。》

我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 企业认证金牌面试官
  • 多个名企认证&特邀讲师等
  • 名企签约职场面试培训、职场规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)测评一、二等奖获得者

关注小鱼,学习【机器学习】&【深度学习】领域的知识。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python大数据分析——一元与多元线性回归模型

Python大数据分析——一元与多元线性回归模型 相关分析概念示例 一元线性回归模型概念理论分析函数示例 多元线性回归模型概念理论分析示例 线性回归模型的假设检验模型的F检验理论分析示例 模型的T检验理论分析示例 相关分析 概念 a 正相关;b 负相关;c…

STM32常见调试工具介绍

STM32的常见调试工具主要包括ST-LINK、USB转TTL、USB转485以及USB转CAN。这些工具在嵌入式系统开发、调试以及通信中发挥着重要的作用。 1.ST-LINK: ST-LINK是STMicroelectronics公司专为其STM32系列微控制器开发的调试和编程工具。既能仿真也能将编译好的程序下载…

软件杯 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习?5.1.2 为什么要迁移学习? 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

如何在MacOS上使用OpenHarmony SDK交叉编译?

本文以cJSON三方库为例介绍如何通过OpenHarmony的SDK在Mac平台进行交叉编译。 环境准备 SDK准备 我们可以通过 openHarmony SDK 官方发布渠道下载对应mac版本的SDK,当前OpenHarmony MAC版本的SDK有2种,一种是x86架构,另一种是arm64&#x…

C语言 函数——断言与防御式编程

目录 如何确定假设的真假? 断言 防御式编程(Defensive programming) 如何确定假设的真假? 程序中的假设 *某个特定点的某个表达式的值一定为真 *某个特定点的某个表达式的值一定位于某个区间等 问题:如何确定这些…

蓝桥杯真题演练:2023B组c/c++

日期统计 小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的范围之内。 数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 …

网络篇08 | 运输层 tcp

网络篇08 | 运输层 tcp 01 简介1)运输层的作用2)与应用层的关系3)两个协议的应用场景4)传输的数据单位 02 功能特性1)面向连接2)停止等待协议3)流水线传输协议4)滑动窗口机制5&#…

卷积神经网络(LeNet5实现对Fashion_MNIST分类

参考6.6. 卷积神经网络(LeNet) — 动手学深度学习 2.0.0 documentation (d2l.ai) ps:在这里预备使用pythorch 1.对 LeNet 的初步认识 总的来看,LeNet主要分为两个部分: 卷积编码器:由两个卷积层组成; …

微服务相关

1. 微服务主要七个模块 中央管理平台:生产者、消费者注册,服务发现,服务治理,调用关系生产者消费者权限管理流量管理自定义传输协议序列化反序列化 2. 中央管理平台 生产者A在中央管理平台注册后,中央管理平台会给他…

【STL详解 —— list的模拟实现】

STL详解 —— list的模拟实现 list接口总览结点类的模拟实现构造函数 迭代器类的模拟实现迭代器类的模板参数说明构造函数运算符的重载--运算符的重载运算符的重载!运算符的重载* 运算符的重载-> 运算符的重载 list的模拟实现默认成员函数构造函数拷贝构造函数赋值运算符重载…

云服务器web环境之mariadb

1.安装mariadb服务 yum install mariadb-server 启动mariadb服务 systemctl start mariadb.service 输入mysql就能使用数据库了。 2.服务相关操作 systemctl stop mariadb.service systemctl restart mariadb.service 2.配置开机自启动 systemctl enable mariadb.serv…

k8s:kubectl 命令设置简写启用自动补全功能

k8s:kubectl 命令设置简写&启用自动补全功能 1、设置kubectl命令简写2、启用kubectl自动补全功能 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes(K8s)是一个强大的容器编排平台&#xff0…

netty

Netty出坑记-CSDN博客 NIO网络编程,高性能 异步事件驱动 短短几句话包含着多少含金量 特点 高并发:异步非阻塞IO模型,事件驱动 高性能:零拷贝 内存池 可定制 线程模型 多协议:http websocket tcp udp 自定义&…

python爬虫-----Selenium (第二十二天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

2024/4/15 AD/DA

AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号 AD/DA转换打开了计算…

下载了恶意软件怎么办,用这个软件可以解决 Mac电脑卸载软件 MacBook查杀病毒

随着苹果电脑在全球市场的普及,它们也日益成为恶意软件制作者的目标。这种趋势打破了许多人认为Mac系统不易受到病毒或恶意软件影响的传统观念。事实上,苹果电脑面临的恶意软件和安全威胁正在不断增多,这要求用户采取更加积极的措施来保护自己…

Flutter第八弹 构建拥有不同项的列表

目标:1)项目中,数据源可能涉及不同的模版,显示不同类型的子项,类似RecycleView的itemType, 有多种类型,列表怎么显示? 2)不同的数据源构建列表 一、创建不同的数据源 采用类似Rec…

苍穹外卖学习记录(一)

1.JWT令牌认证 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 JWT是目前最常用的一种令牌规范,它最…

关于机器学习/深度学习的一些事-答知乎问(三)

可解释人工智能如何进行创新? (1)解释方法结合。现有的研究较少关注如何将不同的解释方法结合起来,未来可以考虑将不同的 解释方法结合在一起,如正反结合,事实解释侧重于 “为什么”,反事实解释…

如何编写易于访问的技术文档 - 最佳实践与示例

当你为项目或工具编写技术文档时,你会希望它易于访问。这意味着它将为全球网络上的多样化受众提供服务并可用。 网络无障碍旨在使任何人都能访问网络内容。设计师、开发人员和撰写人员有共同的无障碍最佳实践。本文将涵盖一些创建技术内容的最佳实践。 &#xff0…