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

十大分类算法

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

代码实例

python 复制代码
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ

from 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. 代码实例

代码实例

python 复制代码
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ

from 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 代码实例

代码实例

python 复制代码
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ

from 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 ∣∣w∣∣2+C∑i=1nξi,其中C是正则化参数, ξ i \xi_i ξi是松弛变量。

2.4.3 代码实例

代码实例

python 复制代码
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ

from 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(Y∣X)=P(X)P(X∣Y)P(Y),其中 P ( Y ∣ X ) P(Y|X) P(Y∣X)是给定特征X下类别Y的条件概率。

2.5.3 代码实例

python 复制代码
# -*- coding:utf-8 -*-
# @Time   : 2024-01-21
# @Author : Carl_DJ

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

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

相关推荐
天云数据6 分钟前
战略契合,落地先行:天云数据AI+能源双向赋能的实战范本
人工智能·能源
用户34577035935713 分钟前
【简单上手】服务器上部署兼容 OpenAI API 的 LLM 的 vLLM 方案
人工智能
青岛前景互联信息技术有限公司17 分钟前
以一体化管控新思路,构建园区全域全维度安全管理体系
大数据·人工智能·物联网
加勒比海带6626 分钟前
目标检测算法——农林行业数据集汇总附下载链接【Plant】
大数据·图像处理·人工智能·算法·目标检测
工业机器人销售服务28 分钟前
法奥协作机器人:智能避障,安全协作
人工智能·机器人
Quz30 分钟前
在 Claude Code中配置DeepSeek:从报错到成功调用【支持DeepSeekV4】
人工智能
搭贝34 分钟前
建筑多分支企业数字化实战:凯驿景澄建设项目管理系统落地案例
大数据·人工智能·低代码·数字化·工程项目技术方案
MediaTea35 分钟前
人工智能通识课:机器学习之监督学习
人工智能·学习·机器学习
这张生成的图像能检测吗44 分钟前
(论文速读)LogInsight:基于大语言模型的准确可解释日志故障诊断
人工智能·计算机视觉·语言模型·自然语言处理·故障诊断
阿里云大数据AI技术1 小时前
使用Skills一句话完成 Milvus 业务落地
人工智能