代价函数python 代价函数是什么意思( 二 )


Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法 , 用于估计某种事物的可能性 。之前在经典之作《数学之美》中也看到了它用于广告预测,也就是根据某广告被用户点击的可能性,把最可能被用户点击的广告摆在用户能看到的地方,然后叫代价函数python他“你点我啊代价函数python!”用户点了,你就有钱收了 。这就是为什么我们的电脑现在广告泛滥的原因了 。
还有类似的某用户购买某商品的可能性,某病人患有某种疾病的可能性啊等等 。这个世界是随机的(当然了,人为的确定性系统除外,但也有可能有噪声或产生错误的结果,只是这个错误发生的可能性太小了,小到千万年不遇,小到忽略不计而已),所以万物的发生都可以用可能性或者几率(Odds)来表达 。“几率”指的是某事物发生的可能性与不发生的可能性的比值 。
Logistic regression可以用来回归 , 也可以用来分类,主要是二分类 。它不像SVM直接给出一个分类的结果,Logistic Regression给出的是这个样本属于正类或者负类的可能性是多少 , 当然在多分类的系统中给出的是属于不同类别的可能性 , 进而通过可能性来分类 。
假设我们的样本是{ x , y},y是0或者1,表示正类或者负类,x 是我们的m维的样本特征向量 。那么这个样本 x 属于正类,也就是y=1的“概率”可以通过下面的逻辑函数来表示:
这里的 θ 是模型参数 , 也就是回归系数,σ是sigmoid函数 。这样y=0的“概率”就是:
考查逻辑斯蒂回归模型的特点 , 一个事件的几率(oods)是指这件事发生的概率与不发生概率的比值 , 如果事件发生的概率是p,那么该事件的几率是p/(1-p),该事件的对数几率(log odds)或者logit函数是
对于逻辑斯蒂回归而言,可以得到如下的对数几率
这就是说,在逻辑斯蒂回归模型中,输出y=1的对数几率是输入x的线性函数,或者说,输出y=1的对数几率是由输入x的线性函数表示的模型,即逻辑斯蒂回归模型 。换句话说,y就是我们的关系变量,例如她喜不喜欢你 , 与多个因素有关,比如你的人品,你的长相,你是否有钱等 。我们把这些因素表示成变量x 1 , x 2 ,…, x m ,那么这个女生是怎么考虑这些因素的呢 , 每个人心理其实都有一杆秤,例如有人比较看重你的人品,人品的权重是0.8,;也有人比较看重你有钱,有钱的权重设置成0.7等等 。我们把这些对应于x 1 , x 2 ,…, x m 的权值叫做回归系数,表达为θ 1 , θ 2 ,…, θ m。他们的加权和就是你在心目中的得分 。
在参数学习时,可以用极大似然估计方法求解 。假设我们有n个独立的训练样本{( x 1, y 1 ) ,( x 2, y 2 ),…, ( x n, y n )},y={0, 1} 。那每一个观察到的样本( x i, y i )出现的概率是
对于整个样本集,每个样本的出现都是独立的,n个样本出现的似然函数为(n个样本的出现概率是他们各自的概率乘积)
那么上述的似然函数就是模型的代价函数(cost function),我们要求的参数就是θ* 。我们稍微对上式进行转换
对L(θ)的极大值,得到θ的估计值 。问题变成了以对数似然函数为木匾函数的最优化问题 。用L(θ)对θ求导,得到
无法解析求解的,所以一般使用迭代的方法求解,通常采用梯度下降法和拟牛顿法 。
上面介绍的是儿分类的模型,用于二类分类 。可以将其推广为多项逻辑斯蒂回归模型(multi-nominal regression model) , 用于多分类,假设离散随机变量Y的取值是{1,2,3,...,K}那么多项逻辑斯蒂回归的模型是

推荐阅读