自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 链表(python版)

链表是数据结构中基础且重要的一环,其主要分为:1.单项链表2. 单项循环链表3. 双向链表4. 双向循环链表单向链表class ListNode(): def __init__(self,val,next=None): "定义节点" self.val = val self.next = nextclass SingelLinkList(): def __init__(self): self.head = None def is_empty(self): "判断链

2022-03-07 22:26:00 829

原创 二分法常见的应用(python版)

二分法介绍二分法作为基础性算法,在实际工程中也得到了广泛的应用。其计算时间复杂度为O(logN),额外空间复杂度O(1)。整体算法由于其每次搜索对半砍的思想,使得其时间复杂度相较于暴力的遍历搜索O(N)变为以2为底的O(logN)。全程搜索只需要记录几个变量值,所需空间复杂度也大大减少变为O(1)。下面首先展示下计算复杂度为O(N)的遍历搜索import random data = sorted(random.sample([i for i in range(50)],20))print(dat

2021-11-17 21:13:57 1518

原创 目标检测评价指标合集

目标检测评价指标混淆矩阵(confusion matrix)可谓是贯穿了整个目标检测评价体系,衍生了一系列的目标检测评价指标,如精确率(precision),准确率(accuracy),召回率(recall),F1-score,Ap(平均正确率),MAp(mean average precisioon),IOU(intersect over union)等一系列常见评价指标。下面将会针对这些评价指标展开一一介绍。混淆矩阵(Confusion matrix)TP:真实为正样本,预测也为正样本。又称(真

2021-11-10 17:00:58 4695

原创 特征选择与降维

特征选择与降维可以说其本质目的是相同的,首要的一个目的就是为了应对维度灾难。随着以后所需处理的数据越来越大,可以直观的感受到样本的特征数呈现直线性的增长。特征选择与降维就是通过一定的算法来选择更为合适的、更具有代表性的的特征来替代原有的高维特征。总的来说,有这样的两个好处1:极大避免维度灾难问题2:往往能够去除一些不相关特征,针对我们的任务可以选择更为合适的特征。(特征选择)特征选择特征选择主流处理方法有三类,其中最为常用的是前两类处理方式1:过滤式2:嵌入式3:包裹式过滤式过滤式首先是针

2021-09-06 20:57:17 2526

原创 为什么样本方差除以n-1

最近和工作的师兄闲聊时,突然被问到当时学习PCA时计算协方差,其中计算样本方差时为什么除以n-1就是无偏估计了,为什么不是n。当时感觉不就是公式是这样吗?定义就这样啊。然后被建议回去再看看原理每个参数的概念,后来找了找,发现是自己对样本方差,总体方差等基础概念的不理解。首先介绍几个基本概念:nnn:样本数量xˉ\bar{x}xˉ:样本的均值uuu:总体真实均值σ2\sigma^2σ2:真实样本方差S2S^2S2:样本实际计算时方差下面举一个栗子来描述下几个参数之间的关系。假设我们要统计全地球男

2021-09-06 20:47:50 877

原创 正则化与L1,L2正则

在过拟合问题与特征选择问题上,正则化都扮演着一个举足轻重的角色。那么随着而来就会有两个问题什么是正则,为什么需要正则?正则化通过对目标函数添加一个参数范数惩罚,进而来限制模型的学习能力,如j(θ:,x,y)j(θ:,x,y)j(θ:,x,y)为目标函数,我们添加一个惩罚项Ω(θ)Ω(θ)Ω(θ),即我们将一个无约束的目标函数转化为了带有约束的目标函数,j‘(θ:x,y)=j(θ:,x,y)+αΩ(θ)j^`(θ:x,y)=j(θ:,x,y)+αΩ(θ)j‘(θ:x,y)=j(θ:,x,y)+αΩ(θ),相

2021-09-06 11:00:29 359

原创 聚类算法与衡量标准

聚类聚类算法聚类性能度量聚类在前面我们所使用的KNN、SVM、DT等算法中,我们就是根据给定数据集的数据和标签来不断的学习模型参数,最终形成一个合适的模型,然后可以通过该模型去对其他的数据进行预测。但现在如果我们的数据中缺失了标签怎么办?从一个带有标签的监督学习转变为一个无标签的无监督学习。那么我们上述的算法就没法发挥作用了,聚类算法变应运而生,专门来应对此类没有标签的无监督学习任务,通过对无标签数据的学习来揭示数据的内在性质与规律。聚类算法一般主要有量大用途:1:作为一些监督学习任务的预处理,

2021-08-26 20:44:51 840

原创 贝叶斯分类器

贝叶斯理论连续、离散特征处理朴素贝叶斯分类器半朴素贝叶斯分类器贝叶斯理论在我们学习概率论课程中,基本上处处暗含着贝叶斯理论的身影。贝叶斯理论简单说可以是一种概率转化的方法,将一种较难求得的相关概率转化为几个较容易求得的概率乘积。现在我们考虑一种分类的任务,现有N种类别,我们将类别为cjc_jcj​的样本误分为cic_ici​的损失定为λijλ_{ij}λij​,后验概率P(ci∣x)P(c_i|x)P(ci​∣x)表示将样本x划分为cic_ici​的概率。则通过上式我们可以计..

2021-08-24 13:50:51 239

原创 集成学习与Stacking

在前面介绍两种集成学习算法后,下面将引入一种新的集成思想。当数据很多时,Stacking学习法变应运而生。将单个的学习器称之为初级学习器,用以结合的学习器称之为元学习器。BaggingStackingStacking总体思想: 前面的Bagging算法中我们通过训练多个弱学习器,最终通过软/硬投票等方式作出最终的预测结果。那么我们是否可以使用同一份大的数据集,划分为多份,训练处多个弱学习器。然后最终我们采用一个模型(元学习器)来代替最后的预测环节(相当于用一个学习器代替软/硬投票这个过程)Stac

2021-08-19 14:29:15 558

原创 集成学习与Boosting

上文中我们讲述了并行的Bagging算法,以及其著名的变形随机森林算法。今天我们对集成学习三大方法的第二种算法进行学习。Boosting:提升算法。主要的算法有以下三类AdaBoostGBDTXgBoostAdaBoost从 前面的Bagging算法可知,Bagging算法采用的是多个基学习器并行学习,彼此之间互不关联,等权重投票。是一种并行的学习方式。而Boosting是一种串行的学习方式,就像我们电路中的串联方式,根据串行的特性,就决定了后续的弱学习器是基于前面学习器的输出进行

2021-08-19 14:28:20 433

原创 集成学习与Bagging

集成学习准确的说,集成学习并不能算是一个真正的机器学习算法,至少其本质上并未引入什么新的学习算法内容。集成学习的总体思想就是通过多个基(弱)学习器共同来完成最终的一个任务。就像以前是一个算法与问题之间的单挑,现在是多个算法(重复或者不重复)群殴一个问题。学术上称之为集成学习或者多分类器系统。集成学习大致可以分为三种学习方式BaggingBoostingStacking这里我们分为了三部分进行介绍,首先介绍Bagging算法思想及其实例,后面文章会分别对Boosting与Stack

2021-08-19 14:26:12 336

原创 SVM 2d/3d多分类案例与可视化

SVM2D可视化SVM多分类SVM3D可视化在前面的几篇小结中,我们对SVM的软硬间隔以及灵魂-核方法基本原理和数学证明进行了推导与解释说明。可以从下列链接中完整了解下SVM的工作机制。下面通过使用sklearn中的接口与现有数据进行SVM的使用以及可视化的展示SVM2D可视化# 分別引入点簇型,环型,月牙型,二分类型,高斯型数据from sklearn.datasets import make_blobs,make_circles,make_moons,make_classi..

2021-08-09 15:04:00 7699 2

原创 SVM之核技巧

核方法可以说是支持向量机的灵魂所在,是SVM中最为关键重要的内容。在面对一些非线性问题时,前面我们所讲的线程处理方式最终的效果差强人意。因此针对于非线性的核方法便应运而生。下面将会从核技巧、正定何证明、核技巧在SVM中的应用三个方面进行主要的介绍,最后会提供几种常用的核函数核技巧首先应明确核函数处理的问题:低维不可分核方法定义:K(x,z)=φ(x).φ(z)K(x,z)=φ(x).φ(z)K(x,z)=φ(x).φ(z)针对一个非线性问题一般不容易进行求解,通常情况下我们会对该问题进行变换,使之成

2021-08-04 16:09:28 1031

原创 SVM与硬/软间隔

SVM/支持向量机SVM Hard MarginSVM Soft MarginSVM支持向量机在神经网络尚未得到广泛的关注与应用之前,在分类与回归问题上,SVM当仁不让的王者。其核心思想就是分为了输入空间与特征空间两个不同的空间。输入空间一般为欧式空间或者离散集合,特征空间是欧式空间或者希尔伯特空间。支持向量机假设二者之间存在一个相互映射的关系,可以通过一种线性或者非线性的方式将输入空间数据映射到特征空间,成为相应的特征向量,因此支持向量机学习的是特征空间中的特征,在特征空间上进行学习的。支持.

2021-08-04 16:06:56 1680

原创 拉格朗日乘子/Slater/KKT

谈起约束优化性问题,高数精湛的话拉格朗日肯定会脱口而出。在看论文以及学习中遇到了拉格朗日乘子,这里简单的对拉格朗日乘子法及其对偶问题进行一个简单的推论与总结。自我感觉,拉格朗日乘子法核心思想就是:将带有约束性的优化性问题转变成无约束的优化问题,进行我们可以利用后续的求导来计算相应的解,再反代入约束求其符合条件的解Lagrange一:无约束的优化问题目标函数:minf0(x)minf_0(x)minf0​(x)求解方式:直接求导,根据目标函数的凹凸性求解极值(最优)问题二:带有等式约束项的优化问题

2021-08-04 14:45:57 262

原创 单例与单例模式

单例概念单例用途单例构造方法单例概念单例:一种创建类型的常见软件设计方式,可以通过单例模式使得我们我们运行的当前进程之中只存在一个实例。通俗点讲就相当于向外提供了一个可供操作的窗口(该实例对象),进而后续所有的操作均在一个实例对象上进行。上述可知,单例模式存在三个关键点:1:单例类中只能存在一个实例对象2:单例类内部自己要实现这个实例对象3:返回创建的实例对象,供外部使用单例用途(cite from baidubaike)一些资源管理器常常设计成单例模式。在计算机系统中,需要管理的资源

2021-07-28 21:47:44 145

原创 元类/元类实例

元类元类属性查找元类实例元类在面向对象编程中,我们使用class关键字创建一个个类对象。python中万物皆对象,那么类本身也可以视为一个对象,由此便引发一个问题,类是由谁创建的呢?究竟是怎样创建的?class People(): """定义一个人物类""" def __init__(self,name,age): self.name = name self.age = age def __repr__(self): ..

2021-07-26 11:43:42 184

原创 闭包与装饰器

闭包与装饰器闭包传参方法修改函数变量方法装饰器无参装饰器带参装饰器多装饰器装饰一个函数类装饰器闭包简单的概括一下就是:函数内部嵌套函数,且最里面的函数用到了外层函数的变量,那么这样的一个结构整体称之为闭包。闭包一句话来概括就是:为我们提供了一种新的、为函数体传参的方法。传参方法假设我们现在 要实现一个y = ax+b的线性拟合功能,我们可以采取的传参方法有:# 1 直接定义变量# 优点:简单直观# 缺点:定义变量多,繁琐。每次x变得,都需要进行改动a,b= 1,2x

2021-07-03 21:03:14 107

原创 深/浅拷贝

浅拷贝深拷贝深/浅拷贝总结浅拷贝拷贝:相当于对数据进行备份(物理内存地址将发生改变)在分析拷贝中,最重要的便是去了解拷贝究竟备份的是什么?是否真的发生的备份的操作?浅拷贝分为两部分: 1:拷贝对象为不可变类型时 2:拷贝对象为可变类型时不可变类型下图所示,当copy对象a为不可变数据类型时(如:整型、浮点型、字符串、元组等),常见的b=a的赋值语句实则就是a,b指向同一块内存空间,就是一个东西,只是多个变量名指向同一个内存地址。采用浅拷贝下,由内存中的物理地址id信息可以,浅拷贝.

2021-06-20 21:07:16 120

原创 网络通信1

网络通信网络结构网络通信流程网络结构目前主流的网络结构主要有五层网络与七层网络之分。网络结构本质上是相同的,只是针对不同的层进行了细致的划分网络层级内容物理层:规定了后续通信设备的一些电气、机械等特性,如信号电平的大小,传输的一些速率,硬件管脚功能信息等。单位:bit(比特). 主要设备:中继器、集线器、适配器等。数据链路层:在物理层传输的比特流基础上,在相邻接点之间建立数据链路连接,在物理介质上进行可靠的数据传输。主要涉及物理地址寻址,流量控制,封装成帧。透明传输、差距检测

2021-06-20 17:19:53 144

原创 决策树算法

决策树决策树简介决策树分割原理ID3ID_3ID3​算法C4.5C4.5C4.5算法CARTCARTCART决策树三种算法总结剪枝处理数据值缺失处理泰坦尼克生存预测实例决策树简介决策树:通俗的来讲就是一种树形结构,由根节点,中间节点,和leaf节点构成。其中根节点包含了整体样本,而中间节点就相当于多个if-else的组合。而leaf节点则相当于我们判定的类别。决策时就像一个不断递归的过程,直到无法再分为止,一种贪婪形式的算法。决策树分割原理ID3ID_3ID3​算法ID3

2021-06-15 23:22:02 175 6

原创 机器学习中的信息熵

机器学习中的信息熵熵的基本概念信息量信息熵香农公式二项分布(伯努利分布)熵常见熵的概念互信息 I(X,Y)条件熵联合熵三者之间的关系熵的基本概念信息量​ 公式:I = -log(p(xix_ixi​)) (bit/比特)​ 借用课本上的例子,信息量的大小就是消除一件事情的不确定程度。也就是说(例如)一句话说阐述的事情发生的可能性越大,那么这句话所包含的信息量就越小。小明告诉小白:“明天太白打东边升起”,其信息量为:I = -log(1) =0,这句话就是句

2021-06-15 23:20:44 5120 2

原创 距离度量----马氏距离

马氏距离由来: 马氏距离是由印度统计学家马哈拉诺比斯提出的,表示数据的协方差距离。是一种基于样本分布式的距离,能够很好地展现样本之间的相似度。实例由上图所示,存两个准正态分布区间,均值分别为a,b。现在我们以欧氏距离度量准则考虑:A点明显更加趋近于b区间,因此A点应该被划分为b类。但目前常用的欧氏距离具有不少的局限性。如:缺少对不同量纲的考虑,没有考虑数据之间的相关性(期望,方差...)但如今我们采用马氏距离角度来考虑数据的分布情况,A点属于a类的概率明显远大于属于b类的概率,换句话说就是属

2021-06-06 14:22:06 1574

原创 K近邻算法(K-NN)

K近邻算法算法简介算法的三要素–K值的选择–距离度量–决策规则鸢尾花分类案例算法简介K近邻算法是一种分类回归算法,于1968年由Cover,Hart提出该算法简单直观,很容易理解,通俗点来讲就是有点随大流,“人以类聚物以群分”的味道,该数据周围是什么类,他也就是什么类。李航大大的统计学习方法中这样定义:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最相邻的K个实例,这K个实例中多数属于哪个类,则该新输入的实例也属于该类。算法的三要素由上述的定义可知:最相邻:

2021-05-30 18:54:41 3246 1

原创 python中包的导入

包的导入包的概念包的使用问题包中的__init__.py文件作用from XXX import *绝对导入与相对导入—:包的概念可以简单的理解为包就是一个包含着__init__.py文件的文件夹,里面包含着多个文件,这些文件中又包含着多个模块,也就是我们的py文件。随着我们代码量以及功能逐渐的多元化与完善,我们再将全部的模块同一放到一个py文件下显然已经不再合适。因此,我们需要根据模块的功能和属性将其分类,分别存放于不同的文件之中,而我们的包就是将这些文件给包裹起

2021-04-25 21:58:20 3534 4

空空如也

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

TA关注的人

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