机器学习分类算法原理

(原创)

机器学习之分类算法原理小记:

(1)逻辑回归 Logistic regression

用逻辑函数进行二分类建模,逻辑函数将R->[0,1],代表为Sigmoid函数,构建损失函数(对数似然函数),利用梯度下降去优化参数

(2)朴素贝叶斯

利用贝叶斯公式算某些特征下某分类的概率,进而决定属于哪个分类,算概率的时候naive的认为这些特征是独立的。

拉普拉斯平滑化(Laplace smoothing),引入拉普拉斯系数避免算某些概率的时候算出来0

(3)支持向量机

线性可分的,找margin最大的超平面(hyperplanes),

线性不可分的,寻求非线性的映射φ,将原数据映射到另一个空间下后线性可分,

优化损失函数时,利用核函数(kernel function)算向量间内积,而避免直接运算φ(x)和φ(x')的内积

(4)k邻近算法

由邻近的k个元素的类别来决定分类。k值大小和元素间距离的算法是关键。

(5)决策树算法,随机森林

先算信息熵,条件熵,

ID3:使用 信息增益 最大的特征作为根节点,再递归建立决策树

C4.5:使用 信息增益率 最大的特征作为根节点,再递归建立决策树

CART:使用 基尼系数增益 最大的特征作为根节点,建立 二叉树

随机森林:ensemble的方法,随机bagging训练数据或特征,产生多棵决策树

(6)ANN (artificial neural network)神经网络

结构:输入层,隐含层(一层或多层),输出层

选择合适的激活函数(ReLU,tanh,sigmoid等)来激活非线性。

反向传播算法(Backpropagation Algorithm):核心原理是 偏导链式法则 ,由输出层倒过去算输出对上一层节点的偏导数

(7)CNN (convolutional neural network) 卷积神经网络

结构:输入层,卷积层(kernel,filter),池化层(pooling),全连接层(fully connection),输出层

filter的参数:个数,大小,步长,零填充

非线性激活函数:ReLU,sigmoid等

pooling池化层:常用有max-pooling,mean-pooling等

 dropout:随机移除一些神经元,防过拟合

原文地址:https://www.cnblogs.com/randomstring/p/10426216.html