决策树算法-ID3算法
一、ID3算法介绍
ID3算法就是一个按照信息增益选择特征的决策树算法,其基本思想为:每次选择一个信息增益最大的特征,逐节点的建立决策树(ID3算法其实是一个递归算法)。
二、ID3算法规定
输入:训练集D,特征集A,阈值ϵ\epsilonϵ
输出:决策树T
如果D中所有样本均属于同一类别C,则T为单节点树,将C作为该节点的类别标志返回T
如果A为空,则T为单节点树,将D 中样本最多的类C作为该节点的类别标志,返回,否则计算 A 中各特征对D的信息增益,选择信息增益最大的特征A
如果AgA_gAg的信息增益小于阈值ϵ\epsilonϵ,则将T视作单节点树,将D中样本最多的类C作为该节点的类别标记,返回T,否则按照AgA_gAg的每个可能取值aia_iai,将D划分为n个子数据集DiD_iDi,作为 D的子节点
对于D的每个子节点D,如果D为空,则视T为单节点树将D的父节点D中样本最多的类作为 D的类别标记,否则以DiD_iDi作为训练集,以 A-[AgA_gAg]为特征集,递归地调用算法的1到 6 步,得到子决策树TiT_iTi,返回TiT_iTi
三、ID3算法举 ...
统计学习方法实现分类和类聚(三)-决策树方法
一、决策树的思想
决策树是一种分类方法
1.1 一些基本概念
1.2 构建决策树的方法
决策树的构建是根据训练集构建的,根据同一个数据集可以构建不同的决策树,即特征可以随机组合。
对于同一训练集构建的不同决策树,我们需要衡量多个决策树的优劣,即评价一个决策树的好坏以及如何建立一个好的决策树是一个待解决的问题。
决策树尽可能与训练集一致,其次决策树应该具有更好的泛化能力。但是,我们不可能建立所有可能的决策树,再从中选择一个最好的。
1.3 启发式方法
由于特征数量的多少,我们不能建立所有的决策树,所以使用启发式的方法构建决策树,即:优先使用分类效果好的特征(当然,特征的效果好坏依赖于数据集)。
二、决策树构建
2.1 特征评价
前面提到,采用启发式方法构建决策树需要按照特征效果依次构建决策树,那么判断特征效果的好坏的过程就叫做特征评价。
这里,首先引入数据集的熵这一概念。熵,是对数据集混乱程度的评价:
H(D)=−∑i=1nPi⋅log(Pi)H(D)=-\sum_{i=1}^{n}{P_i}·log(P_i)
H(D)=−i=1∑nPi⋅log(Pi)
这里熵的引入和信息论 ...
统计学习方法实现分类和类聚(二)-朴素贝叶斯方法
一、朴素贝叶斯方法介绍
朴素贝叶斯方法是一种基于概率的分类方法。其基本思想是:对于一个以若干特征表示的待分类样本,依次计算样本属于每个类别的概率,其中所属概率最大的类别作为分类结果输出。
二、贝叶斯方法
2.1 符号约定
贝叶斯方法确定类别即求满足max[P(yi∣x)]max[P(y_{i}|x)]max[P(yi∣x)]的yiy_iyi的取值,但是直接计算难度很大,所以引入贝叶斯公式计算该概率:
P(yi∣x)=P(x∣yi)P(yi)P(x)P(y_{i}|x)=\frac{P(x|y_i)P(y_i)}{P(x)}
P(yi∣x)=P(x)P(x∣yi)P(yi)
因为xxx的特征已经给定,所以P(x)P(x)P(x)是给定的固定值,那么求P(yi∣x)P(y_{i}|x)P(yi∣x)最大与P(x∣yi)P(yi)P(x|y_i)P(y_i)P(x∣yi)P(yi)最大等价。又因为P(x∣yi)P(yi)=P(x,yi)P(x|y_i)P(y_i)=P(x,y_i)P(x∣yi)P(yi)=P(x,yi),即给定xxx和yiy_iyi求联合概率的大 ...
统计学习方法实现分类和类聚(一)
近期,在B站看到清华大学教授马教授录制的统计学习方法感觉获益良多。之前也看过李航老师的《统计学习方法》有点晦涩难懂,当然这并不是书本的问题,而是我作为本科生在知识深度的掌握上很欠缺引起的。
一、统计学习方法与人工智能
首先了解人工智能的三起三落:
123456789第一次兴盛期:1958 年,美国心理学家 Frank Rosenblatt 提出了第一个可以自动学习权重的神经元模型,一般认为 1943 年~1969 年为人工智能发展的第一次兴盛期。第一次寒冬:1969 年,美国科学家 Marvin Minsky 等人在出版的《Perceptrons》一书中指出了感知机等线性模型的主要缺陷,即无法处理简单的异或 XOR 等线性不可分问题。这直接导致了以感知机为代表的神经网络的相关研究进入了低谷期,一般认为 1969 年~1982 年为人工智能发展的第一次寒冬。第二次兴盛期:1982 年,随着 John Hopfild 的循环连接的 Hopfield 网络的提出,开启了 1982 年~1995年的第二次人工智能复兴的大潮,这段期间相继提出了卷积神经网络、循环神经网络、反向传播算法等算法模型。 ...
Deformable ConvNets-可变形卷积学习
可变形卷积是相对于标准卷积来说的,这个概念出自于Hu han团队在2017年发表的一篇论文《Deformable Convolutional Networks》。既然该概念是相对于标准卷积来说的,那么我们就有必要将两种卷积进行对比学习。
一、标准卷积
首先,对于标准卷积我们可以借用下面的数学表达式理解:
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn)y(p_0) = \sum_{p_n{\in}R}{w(p_n)·x(p_0+p_n)}
y(p0)=pn∈R∑w(pn)⋅x(p0+pn)
这里p0p_0p0代表中心像素的坐标,pnp_npn代表基于窗中的临近元素坐标,它是相对于p0p_0p0的,x(⋅)x(·)x(⋅)代表像素的像素值,w(pn)w(p_n)w(pn)代表卷积权重,RRR是由pnp_npn与p0p_0p0共同构成相对位置坐标的矩阵/集合。在这里RRR定义了卷积尺寸和卷积模式(空洞卷积或者普通卷积)。
卷积的运算,即相乘相加,将尺寸为3x3的感受野中的信息通过卷积的运算聚合到map中的一点。
二、可变形卷积
对于可变形卷积我们可以借用下面的 ...
简单CV识别+Pyautogui制作阴阳师外挂解放双手
阴阳师七周年,有个活动需要刷999次。活动前三天,我十分本分的手动刷了999,但是太累了,于是写了脚本用于自动识别点击(脚本比较拙劣,依赖前端鼠标控制,demo没有做防检测凑合着点吧)。
一、简单训练
12345678910111213141516171819202122232425262728293031323334353637import dlibimport cv2 as cvdef Train(): options = dlib.simple_object_detector_training_options() options.add_left_right_image_flips = True options.C = 5 options.num_threads = 2 options.be_verbose = True dlib.train_simple_object_detector('data.xml', 'data.svm', options)def deteTest(): imgpath ...
服了!我的手机头盖骨又碎了
国庆小长假第一天上课就发生了一件很无奈╮(╯▽╰)╭的事情。事情是这样的,我的K30Pro月慕白后盖在上个学期期末期间摔碎了(′д` )…彡…彡。一直想自己换一个后盖,种种原因一直在拖(大部分原因是原厂后盖太贵,淘宝散装后盖又怕盖不严实)。终于,在国庆期间我刷酷安看见一个老哥推荐一款机甲分格后盖,一眼万年,就买下了(28元,哈哈哈)。
货到了,在国庆最后一天,我换上了崭新的后盖,老高兴了,我的国庆满足o( ̄︶ ̄)o了!!!
就在今天早上,无奈死了。换上不到24小时,它竟然又摔碎了,My God!!!!
24考研人还没考25考研狗已经把持不住了
24考研人还没考25考研狗已经把持不住了。近期,我校遭受考研机构进军,这才开学两周,天天都是某某考研机构的讲师某某来校讲座。发短信通知就算了,还要敲你宿舍门给你发传单,让你加某某的微信。👎🙄
我虽然知道这也是考研机构为我好,早点准备嘛,哈哈哈哈,但是是不是太早了呢。我大三的专业课啥都没学呢,你就让我准备考研,与其现在准备不如在我踏进大学门的一刻就准备考研算了。我是来上大学的,要学习大学应该学习的东西,至于以后的路怎么走,我可以选择考研也可以选择直接就业,但是我认为总是需要把大学的第二、三学期用来学习专业课。
不知道考研机构行业卷成什么样了,但是在我这里贩卖焦虑真的需要骂一骂。
时域采样和频域采样-MATLAB学习
一、采样原理和方法
时域采样定理的要点是:
对模拟信号xa(t)x_a(t)xa(t)以间隔T进行时域等间隔理想采样,形成的采样信号的频谱X(jΩ)X(j\Omega)X(jΩ)是原模拟信号频谱Xa(jΩ)X_a(j\Omega)Xa(jΩ)以采样角频率Ωs=2πT{\Omega}_s=\frac{2\pi}{T}Ωs=T2π为周期进行周期延拓。公式为:
X(jΩ)=FT[xa(t)]=1T∑n=−∞∞Xa(jΩ−jnΩs)X(j\Omega) =FT[x_a(t)]=\frac{1}{T}\sum_{n=-\infty}^{\infty}X_a(j\Omega-jn{\Omega}_s)
X(jΩ)=FT[xa(t)]=T1n=−∞∑∞Xa(jΩ−jnΩs)
奈奎斯特采样定理:采样频率Ωs{\Omega}_sΩs必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频率谱混叠。
上式说明理想采样信号的傅里叶变换可用相应的采样序列的傅里叶变换得到,只要将自变量www用ΩT{\Omega}TΩT替代即可。
结论:时域采样频谱周期延拓,频域采样时 ...
用FFT进行谱分析-MATLAB知识学习
一、谱分析概念
信号的谱分析就是计算信号的频谱(信号的傅里叶变换),通过信号研究分析信号特性。信号频谱是连续的,不能用数字信号处理方法计算,按频域采样定理,序列的DFT完整反映了频谱信息,所以可以通过DFT进行谱分析。
二 DFT对离散序列进行谱分析
2.1 非周期序列进行谱分析
傅里叶变换定义:
X(ejw)=FT[x(n)]=∑n=0N−1x(n)e−jwnX(e^{jw}) = FT[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-jwn}
X(ejw)=FT[x(n)]=n=0∑N−1x(n)e−jwn
DFT定义:
X(k)=DFT[x(n)]=∑n=0N−1x(n)e−j2πNkn(K=0,1,...,N−1)X(k)=DFT[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}kn}(K=0,1,...,N-1)
X(k)=DFT[x(n)]=n=0∑N−1x(n)e−jN2πkn(K=0,1,...,N−1)
有限长序列x(n)x(n)x(n)的N点离散傅里叶变换X(k)X(k)X(k)是x(n)x(n)x(n)的 ...