日志

逻辑回归(Logistics Regression)

逻辑回归是一种有监督的分类模型(离散型输出),它将线性函数的线性输出通过 Sigmoid 变换映射到 0~1 的范围,表示对应特征与对应输出的一种概率关系。逻辑回归本质上是一种广义线性模型,Sigmoid 只是非线性激活函数。
Pasted

二分类

例子:根据医学指标特征来判断一个人是否患有癌症。
备注:输入数据服从高斯分布,输出数据服从伯努利分布(0-1分布)。

逻辑回归假设式(hypothesis)

其中z 是线性输出层,即 z = wX+b
Sigmoid 函数的导数可以用自身来表示:h(z)’=h(z)(1-h(z))

最大似然估计(MLE):

逻辑回归利用已知的试验结果,反推最有可能(最大概率)导致这样结果的参数值。
Pasted

逻辑回归以对数似然损失作为损失函数(log loss)

Pasted


即在样本X的前提下,使得真实分类结果Y发生的概率最大时,损失最小。
备注:逻辑回归的平方损失函数为非凸函数,存在多个局部最优解,故不采用。

损失函数(Cost Function):

Pasted


Pasted

当 y=1 时,预测为正例的概率(即h(x))越大,模型的损失就越低,当h(x) = 1,即100%认为是正例时,模型损失最低,cost=0,表示完全预测正确.

Pasted

当 y=0 时,预测为正例的概率越大,模型的损失就越大,当h(x)=1,即100%认为是正例时,模型的损失趋向无穷大,表示完全预测错误。
合并损失函数多行式:

Pasted

最终的损失函数形式为:

除了假设式h(x) 不同,偏导结果与线性回归完全一致。

多分类 – 多个逻辑回归

One vs all (One vs rest):

将多分类问题看成多个独立的二分类问题,例如有A、B、C三个分类,那么训练以下三个分类器:
a) 将训练样本中A分类标记为1,其他标记为0,训练一个能识别是不是A的分类器
b) 将训练样本中B分类标记为1,其他标记为0,训练一个能识别是不是B的分类器
c) 将训练样本中C分类标记为1,其他标记为0,训练一个能识别是不是C的分类器

对于新的输入特征X,通过以上三个分类器进行预测,选择预测概率最大的那个分类器对应的分类作为预测的结果。

转载请注明出处:

© http://hejunhao.me

日志

线性回归(Linear Regression)

线性回归是一种监督学习算法,它是一种回归模型,它的目标是要找到训练样本的最佳拟合直线(回归线),从而使模型可以对新数据进行预测,它的预测结果属于连续型数值。
例如:根据面积、房间数、建筑年龄预测房子的售价。

线性回归模型假设式(hypothesis):

Pasted

以均方误差(MSE)作为损失函数(cost function):

Pasted Pasted

包含L2正则项情况:

Pasted



MSE用于度量预测值与真实值的偏离程度, 以梯度下降法最小化损失函数,从而使得模型学习到合适的权重参数。

权重更新过程:

Repeat until convergence {
Pasted




}
w_(j) 代表第j个权重, i 表示第 i 个样本,α 表示学习率

转载请注明出处:

© http://hejunhao.me

日志

K-Means聚类算法(实践篇)– 基于Spark Mlib的图像压缩案例

Spark Mlib 机器学习库集成了许多常用的机器学习算法,本文以K-Means算法为例结合图像压缩案例,简单介绍K-Means的应用。关于K-Means算法理论可以参考 → K-Means聚类算法(理论篇)

案例介绍

图像压缩

1)一张图由一系列像素组成,每个像素的颜色都由R、G、B值构成(不考虑Alpha),即R、G、B构成了颜色的三个基本特征,例如一个白色的像素点可以表示为(255,255,255)。

2)一张800×600的图片有480000个颜色数据,通过K-Means算法将这些颜色数据归类到K种颜色中,通过训练模型计算原始颜色对应的颜色分类,替换后生成新的图片。

Spark Mlib K-Means应用(Java + Python)

阅读全文

日志

K-Means聚类算法(理论篇)

K-means算法是机器学习/数据挖掘领域广泛使用的聚类算法,它是一个无监督学习算法,即无需对样本进行事先标记。K-means算法通俗来说主要完成一件事:给定一个包含n个点的数据集,把该数据集划分到k个聚类中,使得各个聚类所包含的每个点到各自聚类中心的距离均小于与其他聚类中心的距离。

K-Means算法

(一)算法过程

1)确定要划分的聚类个数(K),从数据集D中任意选出K个点作为聚类中心
2)计算所有点到各个聚类中心的距离,把各个点归类到距离最近的那个聚类集中
3)计算第二步所产生的K个聚类集的中心,将该中心作为数据集D新的K个聚类中心
4)重复2)、3)直到中心点不再变化或迭代次数达到设定的最大迭代值或中心点的变化收敛于某个预定值

(二)算法分析

阅读全文

日志

方差、标准差、均方误差、协方差的区别

简单介绍 方差、标准差、均方误差、协方差的基本概念以及计算公式,以区分它们的作用。

方差(Variance)

用来度量随机变量和其数学期望(即均值)之间的偏离程度


σ^2 = \dfrac{(x_1 - \bar{X})^2 + (x_2 - \bar{X})^2 ... + (x_n - \bar{X})^2}{(n-1)} = \dfrac{\sum_{i=1}^n{(x_i - \bar{X})^2}}{(n-1)}


备注:n-1 原因是无偏估计

标准差(Standard Deviation)

又叫均方差 , 反映一个数据集的离散程度(波动大小).

标准差 = 方差的算术平方根


σ = \sqrt{\dfrac{(x_1 - \bar{X})^2 + (x_2 - \bar{X})^2 ... + (x_n - \bar{X})^2}{(n-1)}} =\sqrt{\dfrac{\sum_{i=1}^n{(x_i - \bar{X})^2}}{(n-1)}}

问:有了方差为何需要标准差?

答:标准差的量纲(单位)与数据集一致,更直观描述波动范围。

均方误差(Mean Squared Error)

用来度量预测值与真实值的偏离程度

y:预测值 , Y:真实值


MSE = \dfrac{(y_1 - Y_1)^2 + (y_2 - Y_2)^2 ... + (y_n - Y_n)^2}{n} = \dfrac{\sum_{i=1}^n{(y_i - Y_i)^2}}{n}

协方差 (Covariance)

两个变量有多大的“可能”朝一个方向改变?协方差用于度量这个“可能”的程度。如果两个变量的变化方向一致,那么协方差为正,反之为负。其中,变化指变量与它的数学期望的差值。


Cov(x,y) = \dfrac{(x_1 - \bar{X})(y_1 - \bar{Y}) + (x_2 - \bar{X})(y_2 - \bar{Y}) ... + (x_n - \bar{X})(y_n - \bar{Y})}{(n-1)}
         = \dfrac{\sum_{i=1}^n{(x_i - \bar{X})(y_i - \bar{Y})}}{(n-1)}


当 cov(x,y)>0 ,则 X 与 Y 正相关;
当 cov(x,y)<0 , 则 X 与 Y 负相关;
当 cov(x,y)=0 ,则 X 与 Y 不相关。

转载请注明出处:

© http://hejunhao.me

第 3 页,共 3 页123