Python + 深度学习从 0 到 1(01 / 99)

news2024/12/24 6:47:09

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持!

⭐ 深度学习之前:机器学习简史

什么要了解其他机器学习算法? 💜

如果你第一次接触的机器学习就是深度学习,那你可能会发现手中握着一把深度学习“锤子”,而所有机器学习问题看起来都像是“钉子”

为了避免陷入这个误区,唯一的方法就是熟悉其他机器学习方法并在适当的时候进行实践

本文将介绍:

  • 💡 朴素贝叶斯算法
  • 💡 logistic 回归
  • 💡 支持向量机 SVM
  • 💡 决策树
  • 💡 随机森林

---- 概率建模(probabilistic modeling)💜 统计学原理在数据分析中的应用

➕ 朴素贝叶斯算法:朴素贝叶斯是一类基于应用贝叶斯定理的机器学习分类器,它假设输入数据的特征都是独立的

贝叶斯定理: P ( C ∣ X ) = P ( X ∣ C ) P ( C ) P ( X ) P(C|X) = \frac{P(X|C)P(C)}{P(X)} P(CX)=P(X)P(XC)P(C)

  • P ( C ∣ X ) P(C|X) P(CX):在已知特征 X X X 的情况下,属于类别 C C C 的概率
  • P ( X ∣ C ) P(X|C) P(XC):在已知类别 C C C 的情况下,特征 X X X 出现的概率
  • P ( C ) P(C) P(C):类别 C C C 的先验概率
  • P ( X ) P(X) P(X):特征 X X X 出现的概率

朴素贝叶斯分类规则: P ( C ∣ X 1 , X 2 , … , X n ) ∝ P ( C ) ∏ i = 1 n P ( X i ∣ C ) P(C|X_1, X_2, \dots, X_n) \propto P(C) \prod_{i=1}^{n} P(X_i|C) P(CX1,X2,,Xn)P(C)i=1nP(XiC)

  • P ( C ∣ X 1 , X 2 , … , X n ) P(C|X_1, X_2, \dots, X_n) P(CX1,X2,,Xn):属于类别 C C C 的条件概率
  • P ( C ) P(C) P(C):类别 C C C 的先验概率
  • P ( X i ∣ C ) P(X_i|C) P(XiC):特征 X i X_i Xi 在给定类别 C C C 下的条件概率
from sklearn.naive_bayes import GaussianNB
nb_model = GaussianNB()
nb_model.fit(X_train, y_train)

➕ logistic 回归:快速入门指路 👉 Logistic Regression 理论

from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
---- 核方法(kernel method)💜

➕ 支持向量机(SVM,support vector machine):通过两步来在属于两个不同类别的两组数据点之间找到良好决策边界

  1. 【利用核技巧映射】将数据映射到一个新的高维表示,这时决策边界可以用一个超平面来表示
    • 核函数(通常是人为选择的)是一个在计算上能够实现的操作,将原始空间中的任意两点映射为这两点在目标表示空间中的距离,完全避免了对新表示进行直接计算
  2. 【间隔最大化】尽量让超平面与每个类别最近的数据点之间的距离最大化
from sklearn.svm import SVC
model = SVC(kernel='linear', random_state=42)
model.fit(X_train_scaled, y_train)
---- 流程图决策 💜

➕ 决策树(decision tree):如下图所示

from sklearn.tree import DecisionTreeClassifier
dt_model = DecisionTreeClassifier(random_state=42)
dt_model.fit(X_train_scaled, y_train)

➕ 随机森林(random forest):引入了一种健壮且实用的决策树学习方法,即首先构建许多决策树,然后将它们的输出集成在一起

from sklearn.ensemble import RandomForestClassifier
rf_model = RandomForestClassifier(n_estimators=100, random_state=42)
rf_model.fit(X_train_scaled, y_train)

完整代码示例 💜 以 鸢尾花数据集 (Iris Dataset) 为例

鸢尾花数据集包含 150 个样本和 4 个特征:sepal_length(萼片长度)、sepal_width(萼片宽度)、petal_length(花瓣长度)和 petal_width(花瓣宽度),目标变量是 species(鸢尾花种类)

import seaborn as sns

from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# ---------------------------------------------------------------------------- 准备数据
# 加载鸢尾花数据集
iris = sns.load_dataset('iris')

# print(iris.isnull().sum())    # 检查数据集是否有缺失值
# print(iris.info())            # 显示数据集的基本信息
# print(iris.head())            # 查看数据集的前几行 
 
# 只选择 Setosa 和 Versicolor 两个种类来做二分类任务
iris_binary = iris[iris['species'].isin(['setosa', 'versicolor'])]
# 特征和目标变量
X = iris_binary[['sepal_length', 'sepal_width', 'petal_length', 'petal_width']]
y = iris_binary['species']
# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)  


# ---------------------------------------------------------------------------- 朴素贝叶斯算法
from sklearn.naive_bayes import GaussianNB

# 创建贝叶斯分类器模型
nb_model = GaussianNB()
nb_model.fit(X_train, y_train)

y_pred_nb = nb_model.predict(X_test)  # 预测测试集
accuracy_nb = accuracy_score(y_test, y_pred_nb)  # 计算准确率
print(f"贝叶斯分类器模型的准确率:{accuracy_nb:.2f}")

# ---------------------------------------------------------------------------- Logistic 回归
from sklearn.linear_model import LogisticRegression

# 创建 Logistic 回归模型
model = LogisticRegression()
model.fit(X_train, y_train)

y_pred = model.predict(X_test)  # 预测测试集
accuracy = accuracy_score(y_test, y_pred)  # 计算准确率
print(f"逻辑回归模型的准确率:{accuracy:.2f}")


# ---------------------------------------------------------------------------- SVM

from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler

# 数据标准化:支持向量机对特征尺度非常敏感
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 创建SVM分类器
model = SVC(kernel='linear', random_state=42)
model.fit(X_train_scaled, y_train)

y_pred = model.predict(X_test_scaled)  # 预测测试集
accuracy = accuracy_score(y_test, y_pred)  # 计算准确率
print(f"SVM模型的准确率:{accuracy:.2f}")

# ---------------------------------------------------------------------------- 决策树
from sklearn.tree import DecisionTreeClassifier

# 创建决策树分类器
dt_model = DecisionTreeClassifier(random_state=42)
dt_model.fit(X_train_scaled, y_train)

y_pred_dt = dt_model.predict(X_test_scaled)  # 预测测试集
accuracy_dt = accuracy_score(y_test, y_pred_dt)  # 计算准确率
print(f"决策树模型的准确率:{accuracy_dt:.2f}")

# ---------------------------------------------------------------------------- 随机森林
from sklearn.ensemble import RandomForestClassifier

# 创建随机森林分类器
rf_model = RandomForestClassifier(n_estimators=100, random_state=42)
rf_model.fit(X_train_scaled, y_train)

y_pred_rf = rf_model.predict(X_test_scaled)  # 预测测试集
accuracy_rf = accuracy_score(y_test, y_pred_rf)  # 计算准确率
print(f"随机森林模型的准确率:{accuracy_rf:.2f}")

参考书籍:Python 深度学习

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

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

相关文章

FPGA学习(基于小梅哥Xilinx FPGA)学习笔记

相关资源网站(小梅哥FPGA) https://www.corecourse.cn/forum.php?modviewthread&tid27978 https://www.corecourse.cn/forum.php?modviewthread&tid28730 本篇文章使用的开发板为: 小梅哥 Xilinx FPGA 型号:XC7A35T 芯…

网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析

国内外要闻 Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析 在网络安全的复杂战场中,近期出现了一个值得关注的动态:名为 Rockstar 2FA 的钓鱼即服务(PhaaS)工具包遭遇变故,意外推动了另一个新生服务 Flo…

aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发

aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发 学习内容: 使用本地EC2中部署docker应用使用ECS的EC2模式进行容器开发使用ECS的Fargate模式进行容器开发 1. 使用本地EC2中部署docker应用 docker整体 这里展示了docker的整体流程。 开发阶段 编写dockerfile…

【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换

文章日期:2024.12.23 使用工具:Python 本章知识:制作一款图片下载器_DOS窗口(爬虫专用) 文章难度:低等(没难度) 文章全程已做去敏处理!!! 【需要…

关于博客系统的自动化功能测试报告

1.项目背景 基于 SSM 的个人博客系统测试 博客系统采用前后端分离的方法来实现,同时使用了数据库来存储相关的数据,前端主要有四个页面构成:登录页、列表页、详情页以及编辑页,模拟实现了个人博客列表页面,其结合后端实现了以下的…

计算机的错误计算(一百八十九)

摘要 用大模型计算 tan(12.345) . 自变量取弧度。结果保留10位有效数字。不同于前面两节的大模型,本节调用了新的两个大模型。然而,很遗憾,它们给出的答案似乎仍然是“匹配”出来的,不是计算出来的。当然,均是错误的。…

IP地址数据信息和爬虫拦截的关联

IP地址数据信息和爬虫拦截的关联主要涉及到两方面的内容,也就是数据信息和爬虫。IP 地址数据信息的内容丰富,包括所属地域、所属网络运营商、访问时间序列、访问频率等。 从IP地址信息中可以窥见多样的数据,那么我们应该怎么利用IP地址信息来…

springboot+logback学习文档

目录 1、前提说明2、引入依赖、将logback配置文件打到classes下2.1、引入依赖2.2、将logback配置文件打到classes下 3、使用说明3.1、配置文件名称和位置3.2、常规用法3.2.1、property标签(普通变量)3.2.2、springProperty标签(spring变量&am…

Laya ios接入goole广告,开始接入 2

开始使用 | iOS | Google for Developers 谷歌广告的官网,需要搭梯子,API你说详细吧,也就那样,主要是没接过 一步步来吧 0.laya导包 前端出包原生 screenorientation 全部 portrait,我这个是竖屏的 注意这个&a…

详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用

目录 详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用 一、什么是柯里化? 1、原理解析 2、一个直观的例子 二、如何实现柯里化? 1、底层实现 2、工作原理解析 3…

EDGE浏览器每次关闭时再次打开保存的密码就消失如何解决

文章目录 EDGE浏览器每次重启的时候保存的密码都消失如何解决? 打开EDGE浏览器点击三个点 点击设置 点击隐私、搜索和服务 找到选择每次关闭浏览器时要清除的内容 将开启的关闭即可

数据流图和流程图的区别

在结构化建模中,数据流图和流程图都是非常重要的工具,它们为开发人员提供了强大的手段来分析和设计系统。尽管两者在表面上看起来有些相似,但它们在功能、用途和表达方式上存在显著的区别。本文将详细探讨数据流图和流程图的区别,…

云计算中的容器技术(如Docker)是什么?

今天想和大家聊聊容器技术,特别是Docker这个大家可能经常听到的名词。记得我刚接触容器技术时也觉得挺抽象的,让我用简单的比喻来说明吧。 想象一下你在搬家。传统方式是把所有家具、电器分散装车,到了新家还要重新组装、调试。这就像我们以…

《Opencv》基础操作详解(2)

接上篇:《Opencv》基础操作详解(1)-CSDN博客 目录 Opencv基础操作 11、B、G、R颜色通道提取 12、显示单个通道颜色 13、 合并颜色通道 14、图像添加马赛克 15、图片区域替换 16、图片的缩放(常用) 17、图像运算…

STM32——“SPI Flash”

引入 在给单片机写程序的时候,有时会用到显示屏,就拿市面上的0.96寸单色显示器来说,一张全屏的图片就占用8x1281024个字节,即1kb的空间,这对于单片机来说确实有点奢侈,于是我买了一个8Mb的SPI Flash&#x…

深入浅出:AWT的基本组件及其应用

目录 前言 1. AWT简介 2. AWT基本组件 2.1 Button:按钮 2.2 Label:标签 ​编辑 2.3 TextField:文本框 2.4 Checkbox:复选框 2.5 Choice:下拉菜单 2.6 List:列表 综合案例 注意 3. AWT事件处理 …

Flutter组件————PageView

PageView 可以创建滑动页面效果的widget&#xff0c;它允许用户通过水平或垂直滑动手势在多个子页面&#xff08;child widgets&#xff09;之间切换。每个子页面通常占据屏幕的全部空间。 参数 参数名类型描述childrenList<Widget>包含在 PageView 中的所有子部件&am…

三种电子画册制作方法

今天教大家三种电子画册的制作方法&#xff0c;很容易上手&#xff0c;需要的赶紧收藏起来 一、 利用在线平台--FLBOOK 1.注册并登录在线平台。 2.选择喜欢的模板&#xff0c;根据需求进行修改 3.批量上传PDF文件一键转换H5翻页电子画册 4.添加图片、文字等元素&#xff0c…

以太坊账户详解

文章目录 一、账户基本概念1.1 外部账户1.2 合约账户1.3 差异对比 二、帐户创建2.1 外部账户创建2.2 合约账户创建 三、账户数据结构3.1 账户状态3.2 账户状态结构 对比比特币的 “UTXO” 余额模型&#xff0c;以太坊使用“账户”余额模型。 以太坊丰富了账户内容&#xff0c;除…

AWS Transfer 系列:简化文件传输与管理的云服务

在数字化转型的今天&#xff0c;企业对文件传输、存储和管理的需求日益增长。尤其是对于需要大量数据交换的行业&#xff0c;如何高效、可靠地传输数据成为了一大挑战。为了解决这一难题&#xff0c;AWS 提供了一系列的文件传输服务&#xff0c;统称为 AWS Transfer 系列。这些…