自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 10_感知机

摘要: 感知机是一种二分类模型,通过调整权重和阈值实现逻辑运算。本文介绍了如何使用感知机实现与门、与非门和或门等基本逻辑电路,并说明了单层感知机的局限性——无法实现非线性可分问题(如异或门)。通过叠加多层感知机(组合与非门、或门和与门),可以构建异或门,展示了神经网络通过层级结构解决复杂问题的基本原理。这为理解更复杂的神经网络模型奠定了基础。

2025-10-30 10:44:00 634

原创 09_K-means聚类

聚类分析是一种无监督学习技术,用于将数据样本划分为具有相似特征的组别,广泛用于数据挖掘与模式识别。其核心思想是通过度量样本间的相似性(如欧氏距离、余弦相似度),将高相似度的样本归为同一簇。常见算法包括K-Means、层次聚类、DBSCAN和高斯混合模型。K-Means通过迭代优化簇中心实现高效划分;层次聚类构建树状图以反映多层级簇结构;DBSCAN基于密度识别任意形状簇并排除噪声;GMM则以概率模型描述数据分布。聚类的应用覆盖多个领域,如商业中的客户分群、医学中的基因表达分析、计算机视觉中的图像分割等。

2025-10-30 10:38:28 884

原创 08_集成学习

集成学习是一种通过组合多个基模型来提高预测性能的机器学习方法。其核心思想是结合不同模型的优势,降低偏差和方差,从而提高泛化能力。主要分为并行方法(如Bagging)和串行方法(如Boosting)两大类。Bagging通过自助采样构建多个独立模型(如随机森林),旨在减少方差;Boosting则通过迭代修正错误(如AdaBoost、GBDT),旨在减少偏差。此外,Stacking通过元学习器整合不同模型的预测结果。这些方法能有效提升模型性能,适用于分类和回归任务,广泛应用于实际场景中。

2025-10-30 10:32:42 1042

原创 07_朴素贝叶斯

本文介绍了朴素贝叶斯算法的基本原理和应用。贝叶斯定理通过先验概率和样本数据计算后验概率,实现从已知推断未知。朴素贝叶斯算法基于特征条件独立性假设,极大简化了计算。文章详细阐述了算法流程(训练阶段计算先验/条件概率,预测阶段计算后验概率)和sklearn中的五种实现变体(针对不同特征类型)。最后总结了算法优缺点:优点是简单高效、适合大数据、抗干扰性强;缺点是特征独立性假设在实际应用中可能不成立。文末还提到了一些改进方法如半朴素贝叶斯等。

2025-10-23 22:46:25 485

原创 06_决策树

决策树是一种基于树形结构的机器学习算法,通过特征判断逐步划分数据实现预测。其核心流程包括特征选择(基于信息增益、增益率或基尼指数)、数据分裂和剪枝(预剪枝/后剪枝)三个步骤。决策树具有可解释性强、计算高效的优点,适用于特征明确的中小规模数据。在Sklearn中可通过DecisionTreeClassifier和DecisionTreeRegressor实现分类与回归任务,关键参数包括分裂标准、最大深度、叶节点最小样本数等。决策树常作为基础模型与随机森林等集成方法结合使用以提升性能。

2025-10-23 15:23:43 1012

原创 05_逻辑回归

逻辑回归是一种广泛应用于二分类问题的算法,通过sigmoid函数将线性回归输出映射到[0,1]区间表示概率。其损失函数采用对数损失,基于最大似然估计原理。虽然名为"回归",实为分类算法。Scikit-learn中LogisticRegression类支持L1/L2正则化、多种优化算法及多分类扩展(OvO/OvR/Softmax)。特别地,Softmax回归通过直接计算多类概率分布,在计算效率和分类一致性上表现更优。未来版本将优化多分类实现方式,逐步废弃multi_class参数。

2025-10-23 12:13:22 820

原创 04_线性回归

回归模型概述 回归模型用于预测连续型变量,分为一元线性回归(单特征)和多元线性回归(多特征),分别表示为 ( y = wx + b ) 和 ( y = \boldsymbol{w^Tx} )。 求解方法 正规方程法:通过解析解直接计算参数 (\boldsymbol{w} = (X^TX)^{-1}X^Ty),适合小数据量,但对噪声和多重共线性敏感。 梯度下降法:迭代优化参数,包括批量梯度下降(BGD)、随机梯度下降(SGD)和小批量梯度下降(MBGD)。需注意学习率选择、特征缩放及局部最优问题。 API应用

2025-10-22 23:43:01 622

原创 03_KNN算法

K近邻算法(KNN)是一种基于实例的非参数分类和回归方法,通过寻找k个最近邻样本进行预测。关键参数包括k值选择(影响过拟合/欠拟合)和距离度量(如欧氏距离、曼哈顿距离)。特征预处理常采用归一化或标准化以消除量纲影响。模型实现包括数据加载、划分、训练及预测,分类任务通过多数表决,回归任务通过均值预测。评估指标涵盖准确率、混淆矩阵及分类报告(精确率、召回率等)。KNN简单直观但计算复杂度高,适用于小规模非线性数据。

2025-10-18 23:05:02 416

原创 02_机器学习基本理论

机器学习方法三要素包括模型、策略和算法,分别对应数据规律描述、评价准则和优化方法。机器学习流程涵盖数据收集、清洗、特征工程、算法选择、训练评估及部署。特征工程是关键环节,包括特征选择(剔除冗余特征)、特征转换(归一化/标准化)、特征构造(创建新特征)和特征降维(PCA等)。常用方法有低方差过滤、相关系数法和主成分分析,通过优化特征提升模型性能。

2025-10-15 16:29:12 911

原创 01_机器学习概览

勾勒出了机器学习领域的基础知识和核心算法。内容涵盖了从绪论(包括基本术语、任务类型、理论基础)到模型评估与选择的理论和方法(误差、过拟合、评估方法、性能度量)。随后,它详细介绍了多种经典的机器学习模型,包括线性模型(回归、逻辑回归)、决策树(划分准则、剪枝)、支持向量机(核函数)、神经网络(万有逼近性、过拟合缓解)和贝叶斯分类器(朴素贝叶斯、极大似然估计)。此外,目录还涉及集成学习(Boosting、Bagging)和聚类(度量、方法概述)等进阶主题,共同构建了一个结构完整、内容丰富的机器学习知识体系,可作

2025-10-15 16:24:29 1018

原创 09_Seaborn基本图表

Seaborn是一个基于Matplotlib的高级数据可视化库,提供更简洁的API和更好的统计图表支持。本文演示了Seaborn的主要绘图功能:1)直方图与核密度图展示数据分布;2)散点图及回归分析;3)箱线图和小提琴图用于数据比较;4)成对关系图展示多变量关系。所有图表都支持通过hue参数分组展示,并可使用内置调色板自定义颜色。示例使用小费数据集,展示了Seaborn与Pandas的无缝整合,能够用少量代码生成专业统计图表。

2025-10-12 14:01:08 419

原创 08_Matplotlib数据可视化

Matplotlib绘图流程包括创建画布、绘制图像和显示图像三个基本步骤。常用图形有折线图、柱形图、条形图、直方图、饼图和散点图,每种图形适用于不同的数据展示场景。图表元素设置包括解决中文显示问题、添加标题与网格线、调整坐标轴范围与刻度,以及显示图例等。此外,通过subplots方法可以实现一图多表的功能,便于对比分析多组数据关系。矢量图设置(svg格式)能提高图像清晰度。

2025-10-11 23:00:39 658

原创 07_Pandas数据操作和清洗

文章摘要: 本文介绍了使用Pandas进行数据操作的两个主要方面:1.数据增加:通过df['新列名']=新列值直接添加列;2.数据合并与连接:包括纵向连接(concat()函数)和横向连接(merge()函数)。其中merge()支持多种连接方式(内连接、左连接等),可通过索引或指定列作为连接键。文中通过学生成绩表的操作示例,展示了如何添加历史科目成绩列,以及如何合并不同表格的数据。

2025-10-03 15:39:02 710

原创 06_Pandas索引运算

摘要: Pandas DataFrame索引操作主要分为基于位置和基于标签两种类型。基于位置使用iloc[行号,列号],基于标签使用loc[行标签,列标签]。DataFrame由列标签、行标签和数据域组成,行和列单独取出为Series对象。推荐使用loc/iloc一次性定位(df.loc[行,列]),避免链式索引(如df[列][行])可能产生的副本问题。实际操作中基于标签的索引更为常用。

2025-10-03 15:38:24 762

原创 05_Pandas数据结构

Pandas 核心数据结构包括 Series(一维数据)和 DataFrame(二维表格),两者都依赖 Index 类提供索引功能。Series 可通过列表/字典创建,支持标量和矢量运算,具有 dtype、size 等属性,并提供 describe()、排序、空值处理等方法。DataFrame 作为多列 Series 的集合,支持通过二维数组/字典创建,是处理异质数据的主要工具。两者均内置统计计算和绘图功能,与 NumPy 兼容实现矢量化运算,形成 Pandas 数据分析的基础框架。(150字)

2025-10-03 15:36:28 972

原创 04_Numpy结构化数组

本文介绍了NumPy中结构化 disguise数组的创建和访问方法。主要内容包括:1)使用字典或列表方式创建结构化数组,指定字段名称和数据类型;2)通过字段名和索引访问数组元素,支持布尔索引筛选和聚合计算。3)Numpy数据类型符号表说明。结构化数组支持类似SQL的操作方式,可以方便地处理包含多个字段的数据集。

2025-10-01 15:03:39 254

原创 03_Numpy数组运算和函数

本文介绍了Numpy数组的矢量化运算特性,包括数组与标量、数组之间的运算规则。重点讲解了矩阵乘法的定义和实现方法(@运算符或np.dot函数),以及广播机制在形状不同数组运算中的应用。同时列举了常用的一元函数(如abs、sqrt等)和二元 exponents函数的

2025-10-01 15:02:56 1007

原创 02_Numpy索引和布尔逻辑

本文介绍了NumPy数组的四种索引方法:普通索引、切片索引、花式索引和布尔索引,并分析了accompanied通过图像处理案例展示了索引的实际应用。普通索引类似Python列表索引,支持多维数组;切片索引通过指定起始、结束位置和步长获取子数组,且返回的是视图而非副本;花式索引使用数组作为索引,结果形状与索引数组一致;布尔索引通过布尔掩码筛选元素。文章还比较了不同索引/slice的内存关系,切片索引共享内存,而花式索引创建新数组。最后通过图像反转和裁剪案例示例了索引的实用价值。

2025-09-30 12:46:02 811

原创 01 Numpy基础属性和方法

本文介绍了NumPy数组的创建方法和常用属性。数组创建包括floorkan通过array()、arange()、linspace()、lospace()等方法生成指定范围的数组,以及使用random模块生成随机对应随机数组。数组 Kristin属性包括size(元素个数)、shape(形状)、dtype(数据类型)、ndim(维度)、validatesitemsize(元素字节数)和nbytes(数组总字节数)等,这些属性可以帮助我们 externals了解数组的基本信息并进行进一步操作。

2025-09-30 12:43:30 944

原创 MySQL基础

SQL操作摘要 本文系统介绍了SQL的四大类操作:数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和多表查询。DDL部分详细说明了数据库和表的创建、查询、修改及删除操作。DML涵盖数据记录的增删改操作语法。DQL部分重点解析了基础查询、聚合函数、分组、排序和分页等查询技巧。多表查询章节阐述了连接查询(内连接、外连接)和子查询(标量、多行多列等)的实现方法,特别比较了WHERE和HAVING、IN和EXISTS等关键字的区别与适用场景。全文提供了丰富的SQL语法示例,是数据库操作的实用参

2025-09-27 11:43:56 720

原创 Git使用指南

Git分布式版本控制系统指南摘要 Git作为先进的分布式版本控制系统,支持多平台安装(Linux/macOS/Windows),需配置用户信息(git config)。核心概念包括: 版本库:通过git init创建,由工作区、暂存区、版本库构成,通过add和commit提交文件。 版本管理:git status/diff查看状态,git reset回退版本,git checkout撤销修改或恢复文件。 远程协作:配置SSH密钥后,通过git remote add关联远程仓库,使用git push推送本地提

2025-09-24 20:23:55 669

原创 C++最短路径

本文介绍了四种经典的最短路径算法: Dijkstra算法:适用于边权非负的单源最短路径问题,采用贪心策略,通过不断选择距离最小的未确定节点进行松弛操作。提供邻接矩阵+迭代和递归两种实现方式。 Bellman-Ford算法:能处理带负权边的单源最短路径问题,通过对所有边进行n-1次松弛操作求解,还能检测负环。 SPFA算法:Bellman-Ford的队列优化版本,通过减少冗余松弛操作提升效率,同样适用于含负权边的情况。 Floyd算法:用于求解任意两点间的最短路径问题,采用动态规划思想,通过三重循环实现。 各

2025-09-22 17:30:24 746

原创 13 Python数据结构与算法

本文展示了Python实现的栈和队列数据结构。栈类(Stack)实现了入栈、出栈、取栈顶等基本操作,并提供交互式操作界面。队列类(Queue)实现了入队、出队、获取队首队尾元素等功能,同样包含交互界面。两个类都支持判断空状态、获取大小和可视化输出,通过命令行菜单驱动用户交互,每次操作后显示当前数据结构状态。实现代码简洁规范,包含完善的错误处理机制,适合作为数据结构学习的参考示例。

2025-09-22 11:39:49 502

原创 12 Python面向对象高级

本文介绍了Python中三种特殊的类特性:1)__slots__用于限制类实例的属性,防止动态添加属性;2)@property装饰器将方法转换为属性访问,实现数据校验和封装;3)枚举类(Enum)定义固定常量集合,支持迭代和唯一值约束(配合@unique)。这些特性增强了代码的规范性、安全性和可读性。

2025-09-19 20:39:53 432

原创 11 Python网络编程

本文介绍了网络协议基础和Python网络编程应用。内容分为四部分:1) 互联网协议分层原理;2) Python字符编码解码方法,包括encode()/decode()使用;3) 基于TCP的简单网络通信实现,展示服务器和客户端代码;4) 文件传输实例,通过socket实现二进制文件收发。着重讲解了Python中socket模块的应用,包括创建连接、数据传输和资源释放等关键操作,并提供了完整的代码示例来说明网络通信的实现过程。

2025-09-18 21:06:19 375

原创 10 Python正则表达式

本文介绍了正则表达式的匹配规则及Python应用。主要内容包括:1)匹配规则:普通字符、元字符(如. \d \w)、量词(* + ? {})、位置锚点(^ $ \b)、分组捕获和选择符;2)Python中的re模块应用,包括字符串分割、分组提取和预编译优化。正则表达式通过特殊符号组合实现强大的文本匹配功能,适用于字符串处理、数据提取等场景。关键技巧包括使用分组()提取子串、r''避免转义问题、预编译提升效率等。

2025-09-16 11:26:43 792

原创 09 Python多进程和多线程

摘要 本文介绍了多任务处理中的进程与线程概念。进程是操作系统分配资源的基本单位,线程是CPU调度的最小执行单元。多进程通过multiprocessing模块实现,每个进程有独立内存空间,需用Manager实现数据共享;多线程通过threading模块实现,线程共享内存数据。文章详细说明了进程/线程的创建方法、PID获取、参数传递等操作,并对比了串行、并发和并行的执行方式差异。示例代码展示了进程隔离和线程共享的特性,以及如何避免Windows平台下的递归问题。

2025-09-15 16:08:42 630

原创 08 Python函数式编程

本文介绍了Python高阶函数和匿名函数的使用。高阶函数指将函数作为参数或返回值的函数,包括map()、reduce()、filter()和sorted()等内置函数,能够简化数据处理流程。匿名函数通过lambda关键字创建,适用于一次性使用场景。文章还演示了偏函数(functools.partial)的用法,可以固定函数参数生成新函数。这些特性使Python代码更简洁高效,适合函数式编程风格。

2025-09-14 10:56:58 826

原创 07 Python生成器和迭代器

本文介绍了Python中的迭代、推导式和生成器相关概念。迭代是通过for循环遍历可迭代对象的过程。推导式(生成式)提供了一种简洁的语法来生成列表、集合和字典,支持条件过滤和多重循环。生成器通过惰性求值实现按需生成值,包括生成器表达式和生成器函数两种形式,使用yield关键字暂停执行并保存状态。迭代器是可被next()调用的对象,生成器都是迭代器,而列表等可迭代对象可通过iter()转换为迭代器。这些特性特别适合处理大数据流或无限序列的场景。

2025-09-10 12:04:05 649

原创 06 Python赋值与深浅拷贝

本文介绍了Python中可变与不可变对象的区别,赋值、浅拷贝和深拷贝的特点。可变对象(如列表、字典)的内存值可修改,而不可变对象(如数字、字符串)创建后不可修改。Python赋值为引用赋值,变量共享同一对象。浅拷贝(copy.copy())仅复制外层数据,内层仍为引用;深拷贝(copy.deepcopy())递归复制所有嵌套对象,实现完全独立。对于不可变对象,深浅拷贝均只复制引用。文章通过代码示例和图示清晰展示了不同拷贝方式的区别和应用场景。

2025-09-06 20:35:29 474

原创 05 Python面向对象

本文介绍了Python面向对象编程的核心概念,包括类和对象的定义、魔法方法、封装、继承、多态等特性。主要内容如下: 类和对象:类是抽象模板,对象是具体实例。可通过self访问对象属性和方法。 魔法方法:包括构造方法__init__、字符串表示__str__和析构方法__del__,分别在对象创建、打印和销毁时自动调用。 封装:通过双下划线__定义私有属性和方法,建议使用公有方法访问。 继承:支持单继承和多继承,可通过重写和super()扩展父类方法。 多态:Python采用"鸭子类型",

2025-09-04 19:53:31 801

原创 04 Python异常与模块

本文介绍了Python异常处理和模块管理的基础知识。异常捕获通过try-except结构实现,支持捕获特定异常、多异常及异常信息输出,并利用异常传递性实现全局捕获。模块部分讲解了模块导入、name__和__all__变量的作用,以及包的创建和使用方法,包括通过__init.py控制模块导入。最后提供了第三方包的安装方法及国内镜像源使用建议。全文涵盖了Python程序错误处理和代码组织的基本技术要点。

2025-09-02 11:05:35 848

原创 03 Python文件操作

本文介绍了Python文件操作的基本方法,包括:1)使用open()函数打开或创建文件,支持不同模式(r/w/a)和编码;2)close()关闭文件;3)读取文件的三种方法(read()/readlines()/readline())及循环读取方式;4)写入文件时缓冲区的flush机制;5)推荐使用with语句自动管理文件资源。文中还提供了各类操作的代码示例,帮助理解文件处理流程。

2025-09-01 16:36:03 255

原创 02 Python数据容器

本文介绍了Python中的主要数据容器:列表、元组、字符串、集合和字典。列表类似数组但支持不同数据类型;元组不可修改;字符串不可变且支持多种格式化方式;集合无序且去重;字典存储键值对。各容器在索引、重复元素和修改特性上存在差异。文章还涵盖了序列切片、常用方法及遍历方式,并对比了各类容器的特性,最后总结了通用操作如len()、max()等。这些基础容器类型是Python编程的重要基础。

2025-09-01 11:56:30 1089

原创 01 Python基础语法

本文介绍了Python编程基础,包括注释、变量、数据类型、运算符、输入输出、分支与循环语句、函数等核心内容。重点讲解了Python特有的语法规则:变量无类型但数据有类型、缩进控制代码块、for循环迭代对象、函数多返回值、函数式编程等特性。同时详细说明了函数的参数传递方式(位置/关键字/缺省/不定长参数)、None类型使用、作用域规则、lambda匿名函数等进阶知识,并强调了Python的代码规范要求。全文通过代码示例直观展示各类语法用法,适合Python初学者系统学习基础语法要点。

2025-09-01 11:42:55 870

原创 Linux基础

Linux系统由林纳斯·托瓦兹于1991年创建,其吉祥物为企鹅,内核完全开源免费。主要发行版包括RedHat、Ubuntu、CentOS和Deepin。Linux采用目录树结构,常用目录如/etc、/opt、/bin等。基础命令包括文件操作(ls、cd、pwd)、增删改(mkdir、touch、cp、mv、rm)和内容查看(cat、more、tail)。搜索命令which查找命令路径,find按条件递归查找文件。Linux是服务器端主流操作系统,支持高性能持续服务。

2025-07-31 13:55:00 623

原创 高精度加减

高精度加法和减法的核心思想是通过字符串处理大整数,避免数值范围限制。高精度加法的步骤包括:输入处理、对齐数字、逐位相加、处理进位、反转结果。代码实现中,使用逆序数组存储数字,逐位相加并处理进位,最后反转输出结果。高精度减法的步骤包括:比较大小、对齐数字、逐位相减、处理借位、移除前导零、反转结果。代码实现中,确保被减数大于减数,逐位相减并处理借位,最后处理负号并反转输出结果。这两种方法都通过字符串操作和逐位计算,实现了对大整数的精确运算。

2025-05-10 14:45:29 391

原创 容器填充函数fill和memset对比总结

fill() 和 memset() 是两种常用的填充函数,分别适用于不同的场景。fill() 是 C++ STL 算法,按元素类型填充,适用于任意类型的容器或数组,具有较高的类型安全性。memset() 是 C 标准库函数,按字节填充,适用于字符数组或内存块的初始化,效率极高但易误用,尤其是对非字节类型(如 int)时可能导致数据错误。fill() 更通用且安全,而 memset() 在特定场景下性能更优。

2025-05-10 11:02:23 344

原创 广度优先搜索

广度优先搜索(Breadth First Search):英文缩写为(BFS),是一种用于搜索树或图的算法。从起始节点开始逐层扩展搜索,直到达到目标节点。它以广度的方式探索图中的节点,即先访问离起始节点最近的节点,然后逐渐扩展到距离更远的节点。

2025-05-04 10:04:55 190

原创 深度优先搜索

深度优先搜索算法(Depth First Search):英文缩写为 DFS,是一种用于搜索树或图的算法。所谓深度优先,就是说每次都尝试向更深的节点走。深度优先搜索采用了回溯思想,该算法沿着树的深度遍历树的节点,会尽可能深的搜索树的分支。

2025-05-04 10:04:31 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除