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

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【深度学习从 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 深度学习

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

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

相关文章

路径规划之启发式算法之二十三:免疫算法(Immune Algorithm,IA)

免疫算法(Immune Algorithm,IA)是基于人工免疫系统的理论,受生物免疫系统的启发而推出的一种新型的智能搜索算法。通过模拟生物免疫系统的工作原理来解决优化问题。 一、定义与原理 免疫算法是以人工免疫系统的理论为基础,实现了类似于生物免疫系统的抗原识别、细胞分化、…

echarts画风向杆

1.安装echarts 2.引入echarts 4.获取数据,转换数据格式 windProfile.title.text ${moment(time.searchTime[0], ‘YYYY-MM-DD HH:mm:ss’).format( ‘YYYY-MM-DD HH:mm’ )}-${moment(time.searchTime[1], ‘YYYY-MM-DD HH:mm:ss’).format(‘YYYY-MM-DD HH:mm’)…

【落羽的落羽 C语言篇】自定义类型——结构体

文章目录 一、结构体1. 结构体类型的概念和声明2. 结构体变量的创建和初始化3. 结构体成员的访问3.1 直接访问3.2 间接访问 4. 结构体的内存对齐4.1 内存对齐的规则4.2 内存对齐的原因4.3 修改默认对齐数 5. 结构体传参6. 结构体实现位段 在C语言中,已经提供了一些基…

CSS盒子模型(溢出隐藏,块级元素和行级元素的居中对齐,元素样式重置)

overflow:值 规定了内容溢出元素框时所发生的事情 visible:内容不会被修剪,会显示在元素框之外,默认值 overflow: visible; hidden:内容会被修剪,溢出内容不可见 overflow: hidden; scroll:内…

Spark-Streaming集成Kafka

Spark Streaming集成Kafka是生产上最多的方式,其中集成Kafka 0.10是较为简单的,即:Kafka分区和Spark分区之间是1:1的对应关系,以及对偏移量和元数据的访问。与高版本的Kafka Consumer API 集成时做了一些调整,下面我们…

【Python】pandas库---数据分析

大学毕业那年,你成了社会底层群众里,受教育程度最高的一批人。 前言 这是我自己学习Python的第四篇博客总结。后期我会继续把Python学习笔记开源至博客上。 上一期笔记有关Python的NumPy数据分析,没看过的同学可以去看看:【Pyt…

数字IC后端设计实现篇之TSMC 12nm TCD cell(Dummy TCD Cell)应该怎么加?

TSMC 12nm A72项目我们需要按照foundary的要求提前在floorplan阶段加好TCD Cell。这个cell是用来做工艺校准的。这个dummy TCD Cell也可以等后续Calibre 插dummy自动插。但咱们项目要求提前在floorplan阶段就先预先规划好位置。 TSCM12nm 1P9M的metal stack结构图如下图所示。…

LiteFlow决策系统的策略模式,顺序、最坏、投票、权重

个人博客:无奈何杨(wnhyang) 个人语雀:wnhyang 共享语雀:在线知识共享 Github:wnhyang - Overview 想必大家都有听过或做过职业和性格测试吧,尤其是现在的毕业生,在投了简历之后经…

YashanDB 23.2 YAC -单库多实例架构多活共享集群安装部署指南

一、概述 1.1 文档目标 ​ 本说明旨在指导技术人员在 CentOS 7 x86_64 操作系统上完成崖山数据库企业版 23.2 的共享集群安装与部署。通过系统架构、集群拓扑及部署需求的精确描述,帮助读者在开始安装前对崖山数据库的架构形成清晰认识。本文以高效、稳定、安全为…

某科技局国产服务器PVE虚拟化技术文档

环境介绍 硬件配置 服务器品牌:黄河 型号:Huanghe 2280 V2 Cpu型号:kunpeng-920 磁盘信息 :480SSD * 2 ,4T*4 网卡:板载四口千兆 如下表 四台服务器同等型号配置,均做单节点虚拟化,数据保护采用底层r…

Gin-vue-admin(4):项目创建前端一级页面和二级页面

目录 创建一级页面创建二级页面 创建一级页面 view目录下新建一个my&#xff0c;Index.vue <template></template><script> export default {name:My, } </script><script setup> import {ref} from vue const myNameref("name") &…

Ubuntu下的tcl/tk编程快速入门

一、Tcl/Tk 简介 接口介绍 https://www.tutorialspoint.com/tcl-tk/tcl_tk_quick_guide.htm GUI Canvas接口 https://www.tutorialspoint.com/tcl-tk/tk_canvas_widgets.htm tcl语言 https://www.tcl-lang.org/ 官方教程 https://www.tcl.tk/man/tcl8.5/tutorial/tcltutoria…

数字化审计咨询服务,企业转型数字化审计的必要条件

人工智能、云计算、大数据、物联网等新兴技术的快速发展&#xff0c;为企业的数字化转型提供了强大的技术支持。这些技术逐渐被应用到企业运营管理的方方面面&#xff0c;推动了企业内部审计工作的变革。随着数字化转型的深化和信息技术的不断发展&#xff0c;数字化审计将成为…

【QT常用技术讲解】发送POST包(两种方式:阻塞方式及非阻塞方式)

前言 http/https(应用层)协议是广泛使用的网络通信协议。在很多与第三方API对接的场景中&#xff0c;通常是通过http/https协议完成&#xff0c;比如API对接时&#xff0c;通常要通过POST包获取access_token进行鉴权&#xff0c;然后再进行数据交互&#xff08;本篇也包含有对接…

重撸设计模式--代理模式

文章目录 定义UML图代理模式主要有以下几种常见类型&#xff1a;代理模式涉及的主要角色有&#xff1a;C 代码示例 定义 代理模式&#xff08;Proxy Pattern&#xff09;属于结构型设计模式&#xff0c;它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象&am…

【Steel Code】 10.5 COMPOSITE COLUMNS

10.5 COMPOSITE COLUMNS 组合柱 10.5.1 General 总则 (1) This clause applies for the design of composite columns and composite compression members with fully encased H sections, partially encased H sections, and infilled rectangular and circular hollow sect…

11.vector的介绍及模拟实现

1.vector的介绍 记得之前我们用C语言实现过顺序表&#xff0c;vector本质上也是顺序表&#xff0c;一个能够动态增长的数组。 vector 的底层实现机制 - 动态数组&#xff1a;vector 的底层实现是动态数组。它在内存中连续存储元素&#xff0c;就像一个可以自动调整大小的数…

封装(2)

大家好&#xff0c;今天我们来介绍一下包的概念&#xff0c;知道包的作用可以更好的面对今后的开发&#xff0c;那么我们就来看看包是什么东西吧。 6.3封装扩展之包 6.3.1包的概念 在面向对象体系中,提出了一个软件包的概念,即:为了更好的管理类,把多个类收集在一起成为一组…

go官方日志库带色彩格式化

go默认的 log 输出的日志样式比较难看&#xff0c;所以通过以下方式进行了美化和格式化&#xff0c;而且加入了 unicode 的ascii码&#xff0c;进行色彩渲染。 package mainimport ("fmt""log""os""runtime""strings""…

0基础学前端系列 -- 深入理解 HTML 布局

在现代网页设计中&#xff0c;布局是至关重要的一环。良好的布局不仅能提升用户体验&#xff0c;还能使内容更具可读性和美观性。HTML&#xff08;超文本标记语言&#xff09;结合 CSS&#xff08;层叠样式表&#xff09;为我们提供了多种布局方式。本文将详细介绍流式布局、Fl…