机器学习总结

1、logistic回归所用的损失函数

逻辑回归中,成本函数为
y^=σ(wT+b)\hat y = \sigma(w^{T}+b) 其中,σ(z)=11+ez\sigma(z) = \frac{1}{1+e^{-z}}即,

y^=11+e(wT+b)=hθ(x) \hat y = \frac{1}{1+e^{-(w^{T}+b)}}=h_\theta(x)
y^=hθ(x)\hat y=h_\theta(x)\ge 0.5时,意味着(wT+b)0(w^{T}+b)\ge 0,此时意味着y^=1\hat y=1
y^=hθ(x)\hat y=h_\theta(x)\le 0.5时,意味着(wT+b)0(w^{T}+b)\le 0,此时意味着y^=0\hat y=0
所以认为(wT+b)=0(w^{T}+b)=0是一个决策边界,当它大于0或小于0时,逻辑回归模型分别预测不同的分类结果。
假设上式就是yy=1时的概率,那么,{P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x) \begin{cases} P(y=1|x;\theta)=h_\theta(x) \\ P(y=0|x;\theta)=1-h_\theta(x) \end{cases} 通常情况,损失函数可为y^\hat yyy的差,或者是他们差的平方的一半,但是实际上一般不这么做,因为当学习这些参数的时候,会发现优化问题变成非凸问题,最后会得到很多的局部最优解,梯度下降算法找不到最优的全局最优解。逻辑回归中的因变量只能取0或者1,因此,构建对数似然损失函数将两段式子整合成一个式子:L(y^,y)=[ylogy^+(1y)log(1y^)]L(\hat y,y) = -[ylog\hat y+(1-y)log(1-\hat y)]yy=1时,损失函数为log(1y^)-log(1-\hat y),损失函数若要达到最小,y^\hat y应尽可能大;
yy=0时,损失函数为log(y^)-log(\hat y),损失函数若要达到最小,y^\hat y应尽可能小;
这跟实际情况相符合

2、常用损失函数有哪些

损失函数、代价函数与目标函数定义:

  • 损失函数(Loss Function):是定义在单个样本上的,是指一个样本的误差。

  • 代价函数(Cost Function):是定义在整个训练集上的,是所有样本误差的平均,也就是所有损失函数值的平均。

  • 目标函数(Object Function):是指最终需要优化的函数,一般来说是经验风险+结构风险,也就是(代价函数+正则化项)。
    损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。通常表示为如下:
    机器学习总结
    其中,前面的均值项表示经验风险函数,L表示损失函数,后面的是正则化项(regularizer)或惩罚项(penalty term),它可以是L1、L2或者其他正则函数。整个式子表示要找到使得目标函数最小的值。

机器学习或者统计机器学习常见的损失函数有如下四种:

  1. 0-1损失函数(0-1 loss function)
    L(y,f(x))={1,yf(x)0,y=f(x) L(y,f(x))=\begin{cases} 1,y \neq f(x) \\ 0,y=f(x) \end{cases} 当预测错误时,损失函数为1,当预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度。只要错误,就是1。
  2. 平方损失函数(quadratic loss function)
    L(y,f(x))=(yf(x))2L(y,f(x))=(y-f(x))^2 预测值与实际值差的平方。
  3. 绝对值损失函数(absolute loss function)
    L(y,f(x))=yf(x)L(y,f(x))=\left | y-f(x) \right | 该损失函数的意义和上面差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大。
  4. 对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)
    L(y,p(yx))=logp(yx)L(y,p(y|x))=-\log p(y|x) 该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。
  5. Hinge loss
    Hinge loss一般分类算法中的损失函数,尤其是SVM,其定义为:
    L(w,b)=max0,1yf(x) L(w,b)=max{0,1-yf(x)}其中 y=+1或y=−1 ,f(x)=wx+b ,当为SVM的线性核时。

3、常用的代价函数

  • 均方误差(Mean Squared Error)
    MSE=1Ni=1N(yif(xi))2MSE = \frac{1}{N}\sum_{i = 1} ^N(y^i - f (x^i))^2均方误差是指参数估计值与参数真值之差平方的期望值; MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。( i 表示第 i 个样本,N 表示样本总数)
  • 均方根误差
    RMSE=1Ni=1N(yif(xi))2RMSE =\sqrt{ \frac{1}{N}\sum_{i = 1} ^N(y^i - f (x^i))^2}均方根误差是均方误差的算术平方根,能够直观观测预测值与实际值的离散程度。通常用来作为回归算法的性能指标。
  • 平均绝对误差(Mean Absolute Error)
    MAE=1Ni=1Nyif(xi)MAE = \frac{1}{N}\sum_{i = 1} ^N\left| y^i - f (x^i) \right |平均绝对误差是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况。通常用来作为回归算法的性能指标。
  • 交叉熵代价函数(Cross Entry)
    H(p,q)=i=1Np(xi)logq(xi)H(p,q)=-\sum_{i=1}^Np(x^i)\log q(x^{-i})交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。其中 p(x) 是指真实分布的概率, q(x) 是模型通过数据计算出来的概率估计。
      比如对于二分类模型的交叉熵代价函数(可参考逻辑回归)
    L(y^,y)=1Ni=1N[ylogy^+(1y)log(1y^)]L(\hat y,y) = -\frac {1}{N}\sum_{i=1}^{N}\left [ylog\hat y+(1-y)log(1-\hat y)\right ]其中 f(x) 可以是sigmoid函数。或深度学习中的其它**函数。而 yiy^i∈0,1

4、L1、L2正则化的区别

1.优化角度

1)L1正则化模型的最优化问题等价于:minL(w)=min(ED(w)+λi=1nwi)min L(w)=min(E_D(w)+\lambda \sum_{i=1}^{n} \left| w_i \right|)等价为凸优化问题:{minED(w)i=1nwiC,Cλ\begin{cases} min E_D(w) \\ \sum_{i=1}^{n} \left| w_i \right| \leq C,其中C与正则化参数 \lambda 成反比关系 \end{cases}

机器学习总结
如上图,因为切向量始终指向w2轴,所以L1正则化容易使参数为0,即特征稀疏化。
2)L2正则化模型的最优化问题等价于:minL(w)=min(ED(w)+λi=1nwi2)min L(w)=min(E_D(w)+\lambda \sum_{i=1}^{n} w_i^2)等价为凸优化问题:{minED(w)i=1nwi2C,Cλ\begin{cases} min E_D(w) \\ \sum_{i=1}^{n} w_i^2 \leq C,其中C与正则化参数 \lambda 成反比关系 \end{cases}
机器学习总结
上图所示,红色实线是正则项区域的边界,蓝色实线是ED(w)E_D(w)的等高线,越靠里的等高圆,ED(w)E_D(w)越小,梯度的反方向是ED(w)E_D(w)减小最大的方向,用w\overset{\rightarrow}{w}表示,正则项边界的法向量用实黑色箭头表示。
正则项边界在点P1的切向量有ED(w)E_D(w)负梯度方向的分量,所以该点会有往相邻的等高虚线圆运动的趋势;当P1点移动到P2点,正则项边界在点P2的切向量与ED(w)E_D(w)梯度方向的向量垂直,即该点没有往负梯度方向运动的趋势;所以P2点是ED(w)E_D(w)最小的点。
因此,L2正则化使参数减小到很小的范围,但不为0。

2.先验概率角度

当先验分布是拉普拉斯分布时,正则化项为L1范数;当先验分布是高斯分布时,正则化项为L2范数。
机器学习总结
由上图可知,拉普拉斯分布在参数w=0点的概率最高,因此L1正则化相比于L2正则化更容易使参数为0;高斯分布在零附近的概率较大,因此L2正则化相比于L1正则化更容易使参数分布在一个很小的范围内。

3.图形角度

因为L1正则化在零点附近具有很明显的棱角,L2正则化则在零附近比较平缓。所以L1正则化更容易使参数为零,L2正则化则减小参数值,如下图。
1)L1正则化使参数为零
机器学习总结
2)L2正则化使参数减小
机器学习总结

4.限制条件法

机器学习总结
含L1正则化的损失函数在0点取得极值的条件比相应的L2正则化要宽松的多,所以,L1正则化更容易得到稀疏解(w=0)。
综上,L1和L2的异同点:
相同点:都用于避免过拟合。
不同点:

  • L1可以让一部分特征缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况;
  • L2让所有特征的系数都缩小,但是不会减小到0,它会使得优化求解稳定快速。所以L2适用于特征之间没有关联的情况。

5、聚类有几种?区别?

1.基于划分

1.1 基本思想

基于划分的方法:有一堆散点需要聚类,想要的聚类效果就是“类内的点都足够近,类间的点都足够远”。首先要确定这堆散点最后聚成几类,然后挑选几个点作为初始中心点,再然后给数据点做迭代重置(iterative relocation),直到最后到达“类内的点都足够近,类间的点都足够远”的目标效果。也正是根据所谓的“启发式算法”,形成了k-means算法及其变体包括k-medoids、k-modes、k-medians、kernel k-means等算法。

1.2特点

计算量大,很适合发现中小规模的数据库中小规模的数据库中的球状簇。

1.3主要算法

k-means、k-medoids、k-modes、k-medians、kernel k-means等算法。

1.4算法流程

经典K-means算法流程:

  1. 随机地选择k个对象,每个对象初始地代表了一个簇的中心;
  2. 对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;
  3. 重新计算每个簇的平均值,更新为新的簇中心;
  4. 不断重复2、3,直到准则函数收敛。
1.5算法优缺点

优点:对于大型数据集也是简单高效、时间复杂度、空间复杂度低。
缺点:最重要是数据集大时结果容易局部最优;需要预先设定K值,对最先的K个点选取很敏感;对噪声和离群值非常敏感;只用于numerical类型数据;不能解决非凸(non-convex)数据。

1.6常见的算法及改进

k-means对初始值的设置很敏感,所以有了k-means++、intelligent k-means、genetic k-means。
k-means对噪声和离群值非常敏感,所以有了k-medoids和k-medians。
k-means只用于numerical类型数据,不适用于categorical类型数据,所以k-modes。
k-means不能解决非凸(non-convex)数据,所以有了kernel k-means。
另外,很多教程都告诉我们Partition-based methods聚类多适用于中等体量的数据集,但我们也不知道“中等”到底有多“中”,所以不妨理解成,数据集越大,越有可能陷入局部最小。

2.基于层次

2.1基本思想

层次聚类主要有两种类型:合并的层次聚类和分裂的层次聚类。前者是一种自底向上的层次聚类算法,从最底层开始,每一次通过合并最相似的聚类来形成上一层次中的聚类,整个当全部数据点都合并到一个聚类的时候停止或者达到某个终止条件而结束,大部分层次聚类都是采用这种方法处理。后者是采用自顶向下的方法,从一个包含全部数据点的聚类开始,然后把根节点分裂为一些子聚类,每个子聚类再递归地继续往下分裂,直到出现只包含一个数据点的单节点聚类出现,即每个聚类中仅包含一个数据点。

2.2特点

处理速度很快,通常这是与目标数据库中记录的个数无关的,只与把数据空间分为多少个单元有关。

2.3主要算法

BIRCH算法、CURE算法、CHAMELEON算法

2.4算法流程

以下流程以自下向上为例。

  1. 将每个对象看作一类,计算两两之间的最小距离;
  2. 将距离最小的两个类合并成一个新类;
  3. 重新计算新类与所有类之间的距离;
  4. 重复2、3,直到所有类最后合并成一类
2.5算法优缺点

优点:可解释性好(如当需要创建一种分类法时);还有些研究表明这些算法能产生高质量的聚类,也会应用在上面说的先取K比较大的K-means后的合并阶段;还有对于K-means不能解决的非球形族就可以解决了。
缺点:时间复杂度高啊,o(m3)o(m^3),改进后的算法也有o(m2lgm)o(m^2lgm),m为点的个数;贪心算法的缺点,一步错步步错;同K-means,difficulty handling different sized clusters and convex shapes。

2.6常见的算法及改进

该聚类算法因为计算复杂度比较大适用于小数量级,如对中国省会城市聚类。改进的算法有BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies)主要是在数据体量很大的时候使用,而且数据类型是numerical。
Chameleon(A Hierarchical Clustering Algorithm Using Dynamic Modeling)里用到的linkage是kNN(k-nearest-neighbor)算法,并以此构建一个graph,Chameleon的聚类效果被认为非常强大,比BIRCH好用,但运算复杂还是很高,O(n^2)。看个Chameleon的聚类效果图,其中一个颜色代表一类,可以看出来是可以处理非常复杂的形状的。

3.基于密度

3.1基本思想

基于密度的方法:k-means解决不了不规则形状的聚类。于是就有了Density-based methods来系统解决这个问题。该方法同时也对噪声数据的处理比较好。其原理简单说画圈儿,其中要定义两个参数,一个是圈儿的最大半径,一个是一个圈儿里最少应容纳几个点。只要邻近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类,最后在一个圈里的,就是一个类。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)就是其中的典型.

3.2特点

能克服基于距离的算法只能发现“类圆形”的聚类的缺点。

3.3主要算法

DBSCAN算法、OPTICS算法、DENCLUE算法

3.4算法流程

DBSCAN流程:

  1. 从任一对象点p开始;
  2. 寻找并合并核心p对象直接密度可达(eps)的对象;
  3. 如果p是一个核心点,则找到了一个聚类,如果p是一个边界点(即从p没有密度可达的点)则寻找下一个对象点;
  4. 重复2、3,直到所有点都被处理
3.5算法优缺点

优点:对噪声不敏感;能发现任意形状的聚类。
缺点:聚类的结果与参数有很大的关系;DBSCAN用固定参数识别聚类,但当聚类的稀疏程度不同时,相同的判定标准可能会破坏聚类的自然结构,即较稀的聚类会被划分为多个类或密度较大且离得较近的类会被合并成一个聚类。

3.6常见的算法及改进

DBSCAN对这两个参数的设置非常敏感。DBSCAN的扩展叫OPTICS(Ordering Points To Identify Clustering Structure)通过优先对高密度(high density)进行搜索,然后根据高密度的特点设置参数,改善了DBSCAN的不足。

4.基于网格

4.1基本思想

基于网络的方法:这类方法的原理就是将数据空间划分为网格单元,将数据对象集映射到网格单元中,并计算每个单元的密度。根据预设的阈值判断每个网格单元是否为高密度单元,由邻近的稠密单元组形成”类“。

4.2特点

处理速度很快,通常这是与目标数据库中记录的个数无关的,只与把数据空间分为多少个单元有关。

4.3主要算法

STING算法、CLIQUE算法、WAVE-CLUSTER算法

4.4算法流程

这些算法用不同的网格划分方法,将数据空间划分成为有限个单元(cell)的网格结构,并对网格数据结构进行了不同的处理,但核心步骤是相同的:
1、 划分网格
2、 使用网格单元内数据的统计信息对数据进行压缩表达
3、 基于这些统计信息判断高密度网格单元
4、 最后将相连的高密度网格单元识别为簇

4.5算法优缺点

优点:速度很快,因为其速度与数据对象的个数无关,而只依赖于数据空间中每个维上单元的个数。
缺点:参数敏感、无法处理不规则分布的数据、维数灾难等;这种算法效率的提高是以聚类结果的精确性为代价的。经常与基于密度的算法结合使用。

4.6常见的算法及改进

STING(STatistical INformation Grid)算法、WAVE-CLUSTER算法和CLIQUE(CLustering In QUEst)是该类方法中的代表性算法。

5.基于模型的方法(Model-based methods)
5.1基本思想

基于模型的方法:为每簇假定了一个模型,寻找数据对给定模型的最佳拟合,这一类方法主要是指基于概率模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。这里的概率模型主要指概率生成模型(generative Model),同一”类“的数据属于同一种概率分布,即假设数据是根据潜在的概率分布生成的。其中最典型、也最常用的方法就是高斯混合模型(GMM,Gaussian Mixture Models)。基于神经网络模型的方法主要就是指SOM(Self Organized Maps)了,也是我所知的唯一一个非监督学习的神经网络了。下图表现的就是GMM的一个demo,里面用到EM算法来做最大似然估计。

5.2算法流程

【以SOM为例】SOM神经网络是由芬兰神经网络专家Kohonen教授提出的,该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。
SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。
算法流程:
1、 网络初始化,对输出层每个节点权重赋初值;
2、 将输入样本中随机选取输入向量,找到与输入向量距离最小的权重向量;
3、定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;
4、 提供新样本、进行训练;
5、收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。

5.3算法优缺点

优点:对”类“的划分不那么”坚硬“,而是以概率形式表现,每一类的特征也可以用参数来表达。
缺点:执行效率不高,特别是分布数量很多并且数据量很少的时候。

5.4常见的算法及改进

基于概率模型的最典型、也最常用的方法就是高斯混合模型(GMM,Gaussian Mixture Models)。基于神经网络模型的方法主要就是指SOM(Self Organized Maps)了.

6.基于模糊的聚类(FCM模糊聚类)

6.1基本思想

1965年美国加州大学柏克莱分校的扎德教授第一次提出了‘集合’的概念。经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面。为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析。用模糊数学的方法进行聚类分析,就是模糊聚类分析。
基于模糊集理论的聚类方法,样本以一定的概率属于某个类。比较典型的有基于目标函数的模糊聚类方法、基于相似性关系和模糊关系的方法、基于模糊等价关系的传递闭包方法、基于模糊图论的最小支撑树方法,以及基于数据集的凸分解、动态规划和难以辨别关系等方法。FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。

6.2算法流程

FCM模糊聚类算法流程:
1、 标准化数据矩阵;
2、 建立模糊相似矩阵,初始化隶属矩阵;
3、 算法开始迭代,直到目标函数收敛到极小值;
4、 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。
FCM算法需要两个参数一个是聚类数目C,另一个是参数m。一般来讲C要远远小于聚类样本的总个数,同时要保证C>1。对于m,它是一个控制算法的柔性的参数,如果m过大,则聚类效果会很次,而如果m过小则算法会接近HCM聚类算法。
算法的输出是C个聚类中心点向量和C*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。

6.3算法优缺点

优点:从算法的推导过程中我们不难看出,算法对于满足正态分布的数据聚类效果会很好,另外,算法对孤立点是敏感的。
缺点:由于不能确保FCM收敛于一个最优解。算法的性能依赖于初始聚类中心。因此,我们要么用另外的快速算法确定初始聚类中心,要么每次用不同的初始聚类中心启动该算法,多次运行FCM。

6.4常见的算法及改进

模糊C均值(简称FCM)聚类算法是HCM聚类算法的改进

6、模型评估指标?AUC横纵坐标代表什么?

1.分类问题

1.1混淆矩阵
混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。
机器学习总结
真正(True Positive , TP):被模型预测为正的正样本。
假正(False Positive , FP):被模型预测为正的负样本。
假负(False Negative , FN):被模型预测为负的正样本。
真负(True Negative , TN):被模型预测为负的负样本。

真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数。
假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数。
假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数。
真负率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数/2

1.2 准确率(Accuracy)
准确率是最常用的分类性能指标。
Accuracy = (TP+TN)/(TP+FN+FP+TN),即正确预测的正反例数 /总数

1.3 精确率(Precision)
精确率容易和准确率被混为一谈。其实,精确率只是针对预测正确的正样本而不是所有预测正确的样本。表现为预测出是正的里面有多少真正是正的。可理解为查准率。
Precision = TP/(TP+FP),即正确预测的正例数 /预测正例总数

1.4 召回率(Recall)
召回率表现出在实际正样本中,分类器能预测出多少。与真正率相等,可理解为查全率。
Recall = TP/(TP+FN),即正确预测的正例数 /实际正例总数

1.5 F1 score
F值是精确率和召回率的调和值,更接近于两个数较小的那个,所以精确率和召回率接近时,F值最大。很多推荐系统的评测指标就是用F值的。
2/F1 = 1/Precision + 1/Recall

1.6 ROC曲线
逻辑回归里面,对于正负例的界定,通常会设一个阈值,大于阈值的为正类,小于阈值为负类。如果我们减小这个阀值,更多的样本会被识别为正类,提高正类的识别率,但同时也会使得更多的负类被错误识别为正类。为了直观表示这一现象,引入ROC。根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve,横坐标为False Positive Rate(FPR假正率),纵坐标为True Positive Rate(TPR真正率)。一般情况下,这个曲线都应该处于(0,0)和(1,1)连线的上方,如图:
机器学习总结
ROC曲线中的四个点和一条线:
点(0,1):即FPR=0, TPR=1,意味着FN=0且FP=0,将所有的样本都正确分类。
点(1,0):即FPR=1,TPR=0,最差分类器,避开了所有正确答案。
点(0,0):即FPR=TPR=0,FP=TP=0,分类器把每个实例都预测为负类。
点(1,1):分类器把每个实例都预测为正类。
总之:ROC曲线越接近左上角,该分类器的性能越好。而且一般来说,如果ROC是光滑的,那么基本可以判断没有太大的overfitting

1.7 AUC
AUC(Area Under Curve)被定义为ROC曲线下的面积(ROC的积分),通常大于0.5小于1。随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是 AUC 值。AUC值(面积)越大的分类器,性能越好,如图:
机器学习总结
1.8 PR曲线
PR曲线的横坐标是精确率P,纵坐标是召回率R。评价标准和ROC一样,先看平滑不平滑(蓝线明显好些)。一般来说,在同一测试集,上面的比下面的好(绿线比红线好)。当P和R的值接近时,F1值最大,此时画连接(0,0)和(1,1)的线,线和PRC重合的地方的F1是这条线最大的F1(光滑的情况下),此时的F1对于PRC就好像AUC对于ROC一样。一个数字比一条线更方便调型。
机器学习总结
有时候模型没有单纯的谁比谁好(比如图二的蓝线和青线),所以选择模型还是要结合具体的使用场景。下面是两个场景:
1,地震的预测 对于地震的预测,我们希望的是RECALL非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲PRECISION。情愿发出1000次警报,把10次地震都预测正确了,也不要预测100次对了8次漏了两次。
2,嫌疑人定罪 基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。即时有时候放过了一些罪犯(recall低),但也是值得的。

对于分类器来说,本质上是给一个概率,此时,我们再选择一个CUTOFF点(阀值),高于这个点的判正,低于的判负。那么这个点的选择就需要结合你的具体场景去选择。反过来,场景会决定训练模型时的标准,比如第一个场景中,我们就只看RECALL=99.9999%(地震全中)时的PRECISION,其他指标就变得没有了意义。
当正负样本数量差距不大的情况下,ROC和PR的趋势是差不多的,但是在正负样本分布极不均衡的情况下,PRC比ROC更能真实的反映出实际情况,因为此时ROC曲线看起来似乎很好,但是却在PR上效果一般。

2.回归问题

拟合(回归)问题比较简单,所用到的衡量指标也相对直观。假设yi

2.1 平均绝对误差(MAE)
平均绝对误差MAE(Mean Absolute Error)又被称为L1

2.2 平均平方误差(MSE)
平均平方误差MSE(Mean Squared Error)又被称为L2

2.3 均方根误差(RMSE)
RMSE虽然广为使用,但是其存在一些缺点,因为它是使用平均误差,而平均值对异常点(outliers)较敏感,如果回归器对某个点的回归值很不理性,那么它的误差则较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。

2.4解释变异
解释变异( Explained variance)是根据误差的方差计算得到的:
机器学习总结

3.聚类问题

1.1 兰德指数
1.2 互信息
1.3 轮廓系数

7、非参数检验,k-s

8、RNN和LSTM的区别

9、怎么防止过拟合

10、特征选择有哪些方法

11、bagging和boosting的区别