![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法入门
文章平均质量分 85
npupengsir
新手程序员
展开
-
einops使用方法
einops(爱因斯坦标记法)用法操作tensor。支持numpypytorchtensorflowjaxcupychainergluontf.kerasmxnet (experimental)官方文档: einops1. 操作符einops让代码可读性更强,例如:传统代码:y = x.transpose(0, 2, 3, 1)einops代码:y = rearrange(x, 'b c h w -> b h w c')相关代码:import numpyf原创 2021-11-23 02:30:41 · 2368 阅读 · 0 评论 -
Mask RCNN详解
论文原文:Mask R-CNN1. RoI Align方法1.1 RoI Pooling局限性分析在常见的两级检测框架(比如Fast-RCNN,Faster-RCNN,RFCN)中,ROI Pooling 的作用是根据预选框的位置坐标在特征图中将相应区域池化为固定尺寸的特征图,以便进行后续的分类和包围框回归操作。由于预选框的位置通常是由模型回归得到的,一般来讲是浮点数,而池化后的特...原创 2018-06-22 00:19:56 · 7275 阅读 · 0 评论 -
主成成分分析(Principal Component Analysis)
PCA是一种无监督的降低数据维度的方法。降维的过程当中,只需要特征X而不需要标签y。1. 为什么需要PCA如果数据的维度很少,则可以将数据直接用于分类计算。但是如果数据量比较大,比如图像处理中,数据的维度常常达到上万甚至更高。这是计算的成本就会很高。对于两个冗余的特征,也需要进行提出。如果特征的数量远远大于样本的数量,也很有可能会形成过拟合问题。因此需要对一些具有强相关性的特征进行剔除。比如学生的成原创 2017-12-17 22:08:03 · 791 阅读 · 0 评论 -
GBDT算法
具体请见论文Greedy Function Approximation: A Gradient Boosting Machine1. GBDT的基本思想单模型情况下预测结果容易产生过拟合,例如普通决策树,要想达到比较好的预测效果,需要将树的深度调得比较深,叶节点的最大样本数目调得小一点等才能达到比较高的准确率。但是这样会带来严重的过拟合问题,针对这些问题,GBDT采用多颗决策树组合的方...原创 2017-12-17 18:03:14 · 512 阅读 · 0 评论 -
Scikit中使用Grid_Search来获取模型的最佳参数
1. grid search是用来寻找模型的最佳参数先导入一些依赖包from sklearn.ensemble import GradientBoostingClassifierfrom sklearn.grid_search import GridSearchCVfrom sklearn import metricsimport numnpy as npimport pandas as p原创 2017-07-11 22:39:28 · 21875 阅读 · 6 评论 -
LeNet详解
鉴于网上很多的LeNet讲解,但是有没有指明这时LeNet的简化版,本文特对Yann Lecun的原文进行一点讲解,原文地址:[Gradient-Based Learning Applied to Document Recognition](“http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf“)1. LeNet的网络结构 以下用Cx代表convo原创 2017-11-19 17:41:21 · 3917 阅读 · 0 评论 -
Scikit-Learn学习笔记
1. svmfrom sklearn import svmclf=svm.SVC(gamma=0.0001, C=100, kernel='linear') #gamma指的是学习率clf.coef_:线性分类器的系数,shape = [n_class-1, n_features] clf.intercept_:分类器的常量w=clf.coef_通过这些系数变化,可求出线性分类器的相关参数2.原创 2017-10-14 17:04:04 · 1768 阅读 · 0 评论 -
C4.5(weka又称为J48)算法原理详解
C4.5(weka又称为J48)算法原理详解1. 信息增益率ID3算法有以下几个缺点: + 1个属性取值越多,则此属性的信息增益率越大,越有可能被ID3选为当前分类属性。然而取值较多的属性并不一定最优。(例如一个属性的每个子节点都只有1个样本,此时信息增益率达到最大,但是用这样的属性却没有任何意义)ID3只能处理离散型属性可以处理缺失数据可以对树进行剪枝针对ID3算法的不足,Quinlan原创 2017-07-11 16:27:05 · 21780 阅读 · 0 评论 -
ID3(Iterative Dichotomiser 3)算法原理详解
1.信息熵熵这个概念最早起源于物理学,在物理学中是用来度量一个热力学系统的无序程度,而在信息学里面,熵是对不确定性的度量。在1948年,香农引入了信息熵,将其定义为离散随机事件出现的概率,一个系统越是有序,信息熵就越低,反之一个系统越是混乱,它的信息熵就越高。所以信息熵可以被认为是系统有序化程度的一个度量。假设变量XXX的随机取值为X=X=X = {x1,x2,...,xnx1,x2,.....原创 2017-07-05 22:42:10 · 5079 阅读 · 0 评论 -
CART(Classification And Regression Tree)算法原理详解
1. Gini指数CART决策树是用”吉尼指数”来选择属性划分。数据集D的纯度可用基尼值来度量: Gini(D)=∑k=1n∑k′≠kpkpk′=1−∑k=1np2kGini(D)=\sum_{k=1}^n\sum_{k'\not=k}p_kp_{k'}=1-\sum_{k=1}^np_k^2 直观来说,Gini(D)Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。原创 2017-07-11 22:11:36 · 8034 阅读 · 1 评论 -
Scikit-learn之Cross_Validation
1. Cross Validation是用来进行交叉验证先导入一些依赖包from sklearn.ensemble import GradientBoostingClassifierfrom sklearn.cross_validation import cross_val_scorefrom sklearn import metricsimport numnpy as npimport p原创 2017-07-11 22:32:32 · 458 阅读 · 0 评论 -
Naive Bayes分类器详解
1. 贝叶斯定理假设随机事件AAA发生的概率是P(A)P(A)P(A),随机事件BBB发生的概率为P(B)P(B)P(B),则在已知事件AAA发生的条件下,事件BBB发生的概率为: P(B|A)=P(A|B)P(B)P(A)P(B|A)=P(A|B)P(B)P(A)P(B|A) = \frac {P(A|B)P(B)}{P(A)} 如果事件AAA和事件BBB相互独立,则P(A|B)p(...原创 2017-07-21 17:21:44 · 1961 阅读 · 1 评论 -
LR(Logistic Regression)算法详解
Logistic Regression本质上还是Linear Regression的一种,只是用了一个Logistic Function将线性回归的连续值映射到了{0,1}{0,1}\{0, 1\}空间。因此Linear Regression只能对具有线性边界的分类问题有很好的预测效果,对于非线性的边界是无能为力的。至于下面这张很经典的大家常用的图,只是做了一个feature mapping,根据...原创 2017-07-18 22:38:23 · 5929 阅读 · 1 评论 -
Linear Regression学习笔记
回归主要分为线性回归和逻辑回归。线性回归主要解决连续值预测问题,逻辑回归主要解决分类问题。但逻辑回归输出的是属于某一类的概率,因此常被用来进行排序。1. 线性回归的原理假定输入χ\chi和输出yy之间有线性相关关系,线性回归就是学习一个映射 f:χ→yf: \chi \to y 然后对于给你的样本xx,预测其输出: y^=f(x)\hat y=f(x)现假定x=(x0,x1…xn)x=(x原创 2017-07-14 22:40:58 · 1293 阅读 · 0 评论 -
SVM(Support Vector Machine)分类器详解
1. 拉格朗日乘子(Lagrange multiplier)法求解条件极值1.1 拉格朗日乘子的简单描述简单的条件极值问题可以描述为:求函数z=f(x,y)z=f(x,y)的最大值,且x,yx,y满足约束条件φ(x,y)=M\varphi (x,y)=M(MM已知)。 拉格朗日乘子的求解步骤为:设置一个联合函数,令: F(x,y,λ)=f(x,y)+λ(M−φ(x,y))F(x,y,\lam原创 2017-07-25 00:14:31 · 732 阅读 · 1 评论 -
BP神经网络入门级简介
1. BP神经网络概述神经网络是一类能够模拟任何函数的一个非线性映射。先简单举个例子,假设有一个神经网络仅由一个神经元构成:神经网络采用的是给每个X1,X2,X3,X4X_1, X_2, X_3, X_4加上一定的权值W1,W2,W3,W4W_1,W_2,W_3,W_4,因此组合的线性输出为: hW,b(x)=WTXW+bh_{W,b}(x) = W^TXW+b hW,b(x)h_{W,b}(原创 2017-08-01 18:32:37 · 3407 阅读 · 0 评论 -
KNN(K-NearestNeighbor)算法
KNN是最简单的分类算法之一。通过测量不同特征值之间的距离进行分类。它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。其算法的描述为: 1. 计算测试数据与各个训练数原创 2017-07-25 15:41:29 · 389 阅读 · 0 评论 -
CNN简介
1. 传统的神经网络和其他方法在图像处理方面的问题灰度图像读入之后,就是一个单通道的矩阵,而彩色图像读入之后,就是一个3通道矩阵。当网络层数增大时,网络中的参数(weightweight和biasesbiases)会急剧增大,给训练带来极大困难。且根据人脑的识图经验,需要识别图像中的局部特征,这些都是传统的神经网络难以做到的。传统的图像处理是提取图像中的特征,即图像的关键点,但是这种方法在图像处理中原创 2017-08-25 17:09:12 · 1864 阅读 · 0 评论 -
RNN简介
1. RNN的提出背景对于序列类型的数据,比如翻译问题,时间序列预测问题,由于前后样本之间有顺序之间的先后关系,而传统的神经网络无法体现这一关系,因此出现了RNN(Recurrent Neural Network)。RNN会记住之前的输入值,因此对于RNN而言,即时后面有相同的输入,输出值也会不同,这是与传统的NN不同的地方。序列数据的类型有: one to one: Vanilla Neural原创 2017-08-28 23:11:40 · 3030 阅读 · 0 评论 -
GAN简介
1. Auto-Encoderauto-encoder是一种无监督学习算法,研究的是将一个高维的向量或者矩阵进行encode,然后再decode,使得输出与输出值越接近越好。 训练过程中,encoder和decoder是无法单独训练的,必须两个一起训练,然后训练完成后可以将encoder和decoder单独拿出来。 传统的PCA的过程为: 因此PCA是通过线性变换,将一个高维向量转换成原创 2017-09-02 23:04:20 · 6558 阅读 · 0 评论