监督分类:

什么是人造神经元:

早期的分类机器学习算法:感知器(perceptron)和自适应线性神经元(adaptive liner neuron)

前辈们将神经细胞抽象成有二进制输出的逻辑门,输入段接受的多个输入信号,累加的信号超过某一阈值,就会生成输出信号。

感知器

感知器学习法则:通过自动优化权重系数。

分类算法: - 图1

分类算法: - 图2-%5Chat%20y%5E%5Cleft(i%5Cright))x_j%5E%5Cleft(i%5Cright)%0A#card=math&code=%5CDelta%20w_j%20%3D%20%5Ceta%20%28y%5E%5Cleft%28i%5Cright%29-%5Chat%20y%5E%5Cleft%28i%5Cright%29%29x_j%5E%5Cleft%28i%5Cright%29%0A)

感知器收敛的前提是两个类别必须是线性可分的,且学习速率(learning rate)足够小。如果无法通过一个线性决策边界进行划分,得设置一个迭代次数上限,或者设置一个允许错误分类样本的的阈值。

单层的神经网络:自适应线性神经网络(Adaline)

Adeline算法阐明了代价函数的核心概念,做最小化优化,逻辑斯蒂回归logistic regression ,支持向量机(support vector machine)和回归模型等基于回归分类算法基础。

权重更新是用一个连续的线性激励函数来实现的,Rosenblatt感知器使用的是单位跃阶函数,而Adeline的算法中作用于净输入的激励函数简单的恒等式

分类算法: - 图3%3Dw%5ETx%0A#card=math&code=%5CPhi%20%28w%5ETx%29%3Dw%5ETx%0A)

量化器(quantizer)对标签进行量化

这里使用激励函数的连续性输出值,而不是二分类的类标来计算模型的误差和更新权重。

假设函数 (hypothesis):

分类算法: - 图4%3D%20%5Ctheta0%20%2B%5Ctheta_1%20x%0A#card=math&code=h%5Ctheta%28x%29%3D%20%5Ctheta_0%20%2B%5Ctheta_1%20x%0A)

代价函数对损失的性能进行评估,目标是让代价最小化,

这里用的是误差平方和(sum of squared error,SSE)

分类算法: - 图5%3D%5Cfrac%7B1%7D%7B2%7D%5Csum_i(y%5E%5Cleft(i%5Cright)-%5CPhi(Z%5E%5Cleft(i%5Cright)))%5E2%0A#card=math&code=%5Cmathcal%7BJ%7D%28w%29%3D%5Cfrac%7B1%7D%7B2%7D%5Csum_i%28y%5E%5Cleft%28i%5Cright%29-%5CPhi%28Z%5E%5Cleft%28i%5Cright%29%29%29%5E2%0A)

连续的线性激励函数的主要优点在于:其代价函数是可导的。另外因为这是一个凸函数,可以使用梯度下降算法得到很好的效果。

梯度下降:在每次迭代的过程中,根据给定的学习速率和梯度的斜率,能够确定每次移动的步幅,就是寻求代价函数的局部最优解,或者全局最优解。

分类算法: - 图6

代价函数沿梯度方向做了一次权重更新:

分类算法: - 图7%0A#card=math&code=%5CDelta%20w%20%3D%20-%5Ceta%20%5CDelta%20%5Cmathcal%7BJ%7D%28w%29%0A)

随机梯度下降(SGD)、批量梯度下降(BGD)、小批量梯度下降(MBGD)。

SGD对一个随机样本训练过后趋近一个局部最优解

小批量一般是对50个样本进行训练后得到更为稳定的算法和平滑的代价函数。

逻辑斯蒂回归是典型的分类算法

logistic算法又称做sigmoid函数:

分类算法: - 图8%20%3D%20%5Cfrac%7B1%7D%7B1%2Be%5E%7B-z%7D%7D%0A#card=math&code=%5Cphi%28z%29%20%3D%20%5Cfrac%7B1%7D%7B1%2Be%5E%7B-z%7D%7D%0A)

能将输入转换成平滑的s型曲线。
逻辑斯蒂回归会尽量最大化训练数据集的条件似然,这使得它比支持向量机更易于处理离群点。同时它的模型更新方便,用于流数据处理时优势更大。

支持向量机(SVM) :支持向量指的就是离决策平面最近的训练样本,支持向量机目标是让最大化分类间隔,使超平面间的距离

决策边界间具有的较大间隔说明模型具有较小的泛化误差,较小的间隔会出现过拟合

分类算法: - 图9 公式左侧可以看作是正负超平面的距离,也就是要最大化的间隔。
期中分类算法: - 图10 最小化,可以引入分类算法: - 图11做加罚项。
C值较大时,对应更大的错误罚项。

决策树和随机森林
决策树是典型的树模型,在分类和回归问题上都有应用,
它的代价函数是信息增益或者是不纯度,衡量不纯度使用的三个标准:

  1. 基尼系数(Gini index)
  2. 熵(entropy)
  3. 误分类率(classification error):

分类算法: - 图12 其中 p(i|t)为特定节点t中,类别C占据样本总数的比例。
当样本均匀分布时,不纯度最高,
熵是信息得互的衡量标准(熵代表的就是信息本身的混乱程度)
基尼系数可以看作降低误分类可能性的标准:
误分类率对节点中样本数量变动不敏感,通常用来用作剪枝。

随机森林是使用bootstrp抽样算法对多棵决策树的集成学习模型,使用有放回抽样的N个样本构造n棵决策树,以随机不重复的D个特征来构造决策树,汇总多棵决策树类标结果,进行多数投票表决方式来决定划分

惰性学习方式 k-近邻 (Knn)
knn 不会从训练集中学习一个判别函数,它的判别规则就是基于最近邻居的多数投票来决定分类结果。
正确的k值是其关键。

无监督分类:聚类技术

聚类最常见的有Kmenns 和其改进技术kmeans++
其计算效率相较而言是比较高的一种,
思想在于如何生成中心点,Kmeans++采取特定加权概率分布来决定下一个中心点尽量远离现有点集的K个中心点,基于选定的中心点来执行Kmeans算法。

sklearn中KMeans对象可以通过init参数的值“random”和“kmeans++”

层次聚类 :层次聚类分为凝聚和分裂两种算法,
凝聚层次分类常用全连接,单链接,平均连接和ward 连接
全连接是差异最大样本的距离
单链接是最相似两个样本的距离
平均连接是两个簇之间所有成员距离最小的两个簇
使用Ward连接是选取使sse最小的两个簇合并,

SSE(误差平方和)是一种常用代价函数。

基于密度空间的一种聚类方法:
DBSCAN :
分类算法: - 图13
来确定核心点和边界点,其他在点簇边界外的被称作噪声点

还有图聚类就是从图论的角度进行对图的分割,使得分割后的子图连接不同子图的权重尽量减少,同一子图内的权重尽量高,从另一方面来说,权重即是代表着点集之间的相关性。

下图是sklearn常用的多类分类器:
多类分类器.png